diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/field/FieldPluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/field/FieldPluginBase.php
index db4a5d8..34c2c30 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/field/FieldPluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/field/FieldPluginBase.php
@@ -410,7 +410,16 @@ public function useStringGroupBy() {
   protected function defineOptions() {
     $options = parent::defineOptions();
 
-    $options['label'] = array('default' => $this->definition['title'], 'translatable' => TRUE);
+    $options['label'] = array('default' => '', 'translatable' => TRUE);
+    // Some styles (for example table) should have field labels enabled by
+    // default.
+    if (!isset($this->view->style_plugin)) {
+      $this->view->initStyle();
+    }
+
+    if (isset($this->view->style_plugin) && $this->view->style_plugin->defaultFieldLabels()) {
+     $options['label']['default'] = $this->definition['title'];
+    }
     $options['exclude'] = array('default' => FALSE, 'bool' => TRUE);
     $options['alter'] = array(
       'contains' => array(
@@ -848,10 +857,10 @@ public function buildOptionsForm(&$form, &$form_state) {
       // Setup the tokens for fields.
       $previous = $this->getPreviousFieldLabels();
       foreach ($previous as $id => $label) {
-        $options[t('Fields')]["[$id]"] = $label;
+        $options[t('Fields')]["[$id]"] = substr(strrchr($label, ":"), 2 );
       }
       // Add the field to the list of options.
-      $options[t('Fields')]["[{$this->options['id']}]"] = $this->label();
+      $options[t('Fields')]["[{$this->options['id']}]"] = substr(strrchr($this->adminLabel(), ":"), 2 );
 
       $count = 0; // This lets us prepare the key as we want it printed.
       foreach ($this->view->display_handler->getHandlers('argument') as $arg => $handler) {
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php
index c3e1be8..a1d53a4 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/StylePluginBase.php
@@ -93,6 +93,13 @@
   protected $groupingTheme = 'views_view_grouping';
 
   /**
+   * Should field labels be enabled by default.
+   *
+   * @var bool
+   */
+  protected $defaultFieldLabels = FALSE;
+
+  /**
    * Overrides \Drupal\views\Plugin\views\PluginBase::init().
    *
    * The style options might come externally as the style can be sourced from at
@@ -178,6 +185,15 @@ public function usesTokens() {
   }
 
   /**
+   * Return TRUE if this style enables field labels by default.
+   *
+   * @return bool
+   */
+  public function defaultFieldLabels() {
+    return $this->defaultFieldLabels;
+  }
+
+  /**
    * Return the token replaced row class for the specified row.
    */
   public function getRowClass($row_index) {
diff --git a/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php b/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php
index d6e6e7a..5be57d0 100644
--- a/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php
+++ b/core/modules/views/lib/Drupal/views/Plugin/views/style/Table.php
@@ -49,6 +49,13 @@ class Table extends StylePluginBase {
   protected $usesRowClass = TRUE;
 
   /**
+   * Should field labels be enabled by default.
+   *
+   * @var bool
+   */
+  protected $defaultFieldLabels = TRUE;
+
+  /**
    * Contains the current active sort column.
    * @var string
    */
diff --git a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldWebTest.php b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldWebTest.php
index 7bf0e89..99cd5a8 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Handler/FieldWebTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Handler/FieldWebTest.php
@@ -330,6 +330,8 @@ public function testFieldClasses() {
     $id_field = $view->field['id'];
 
     $id_field->options['element_default_classes'] = FALSE;
+    // Setup some kind of label by default.
+    $id_field->options['label'] = $this->randomName();
     $output = $view->preview();
     $output = drupal_render($output);
     $this->assertFalse($this->xpathContent($output, '//div[contains(@class, :class)]', array(':class' => 'field-content')));
diff --git a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php
index 57427ca..c4fc0c8 100644
--- a/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/Plugin/StyleTest.php
@@ -127,18 +127,21 @@ function _testGrouping($stripped = FALSE) {
         'table' => 'views_test_data',
         'field' => 'name',
         'relationship' => 'none',
+        'label' => 'Name',
       ),
       'job' => array(
         'id' => 'job',
         'table' => 'views_test_data',
         'field' => 'job',
         'relationship' => 'none',
+        'label' => 'Job',
       ),
       'age' => array(
         'id' => 'age',
         'table' => 'views_test_data',
         'field' => 'age',
         'relationship' => 'none',
+        'label' => 'Age',
       ),
     ));
 
diff --git a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
index 2dfc632..9101617 100644
--- a/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
+++ b/core/modules/views/tests/modules/views_test_config/test_views/views.view.test_click_sort.yml
@@ -10,18 +10,21 @@ display:
           id: id
           table: views_test_data
           field: id
+          label: ID
           plugin_id: numeric
           provider: views_test_data
         name:
           id: name
           table: views_test_data
           field: name
+          label: Name
           plugin_id: string
           provider: views_test_data
         created:
           id: created
           table: views_test_data
           field: created
+          label: created
           plugin_id: date
           provider: views_test_data
       display_options:
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php
index 12d6741..4453e9f 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/FieldUITest.php
@@ -35,14 +35,14 @@ public static function getInfo() {
   public function testFieldUI() {
     // Ensure the field is not marked as hidden on the first run.
     $this->drupalGet('admin/structure/views/view/test_view/edit');
-    $this->assertText('Views test: Name (Name)');
-    $this->assertNoText('Views test: Name (Name) [' . t('hidden') . ']');
+    $this->assertText('Views test: Name');
+    $this->assertNoText('Views test: Name [' . t('hidden') . ']');
 
     // Hides the field and check whether the hidden label is appended.
     $edit_handler_url = 'admin/structure/views/nojs/handler/test_view/default/field/name';
     $this->drupalPostForm($edit_handler_url, array('options[exclude]' => TRUE), t('Apply'));
 
-    $this->assertText('Views test: Name (Name) [' . t('hidden') . ']');
+    $this->assertText('Views test: Name [' . t('hidden') . ']');
 
     // Ensure that the expected tokens appear in the UI.
     $edit_handler_url = 'admin/structure/views/nojs/handler/test_view/default/field/age';
@@ -64,4 +64,26 @@ public function testFieldUI() {
     $this->assertEqual((string) $result[2], '[name] == Name');
   }
 
+  /**
+   * Tests the field labels.
+   */
+  public function testFieldLabel() {
+    // Create a view with unformatted style and make sure the fields have no
+    // labels by default.
+    $view = array();
+    $view['label'] = $this->randomName(16);
+    $view['id'] = strtolower($this->randomName(16));
+    $view['description'] = $this->randomName(16);
+    $view['show[wizard_key]'] = 'node';
+    $view['page[create]'] = TRUE;
+    $view['page[style][style_plugin]'] = 'default';
+    $view['page[title]'] = $this->randomName(16);
+    $view['page[path]'] = $view['id'];
+    $this->drupalPostForm('admin/structure/views/add', $view, t('Save and edit'));
+
+    $view = views_get_view($view['id']);
+    $view->initHandlers();
+    $this->assertEqual($view->field['title']->options['label'], '', 'The field label for normal styles are empty.');
+  }
+
 }
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php
index 08d5673..6b78091 100644
--- a/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/GroupByTest.php
@@ -48,7 +48,7 @@ function testGroupBySave() {
 
     // Change the groupby type in the UI.
     $this->drupalPostForm($edit_groubpy_url, array('options[group_type]' => 'count'), t('Apply'));
-    $this->assertLink('COUNT(Views test: ID) (ID)', 0, 'The count setting is displayed in the UI');
+    $this->assertLink('COUNT(Views test: ID)', 0, 'The count setting is displayed in the UI');
 
     $this->drupalPostForm(NULL, array(), t('Save'));
 
diff --git a/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleTableTest.php b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleTableTest.php
new file mode 100644
index 0000000..32208e4
--- /dev/null
+++ b/core/modules/views_ui/lib/Drupal/views_ui/Tests/StyleTableTest.php
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Tests\UI\StyleTableTest.
+ */
+
+namespace Drupal\views_ui\Tests;
+
+/**
+ * Tests the UI of views when using the table style.
+ *
+ * @see \Drupal\views\Plugin\views\style\Table.
+ */
+class StyleTableTest extends UITestBase {
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Style: Table UI',
+      'description' => 'Tests the UI of views when using the table style.',
+      'group' => 'Views UI',
+    );
+  }
+
+  /**
+   * Tests created a table style view.
+   */
+  public function testWizard() {
+    // Create a new view and check that the first field has a label.
+    $view = array();
+    $view['label'] = $this->randomName(16);
+    $view['id'] = strtolower($this->randomName(16));
+    $view['show[wizard_key]'] = 'node';
+    $view['page[create]'] = TRUE;
+    $view['page[style][style_plugin]'] = 'table';
+    $view['page[title]'] = $this->randomName(16);
+    $view['page[path]'] = $view['id'];
+    $this->drupalPostForm('admin/structure/views/add', $view, t('Save and edit'));
+
+    $view = views_get_view($view['id']);
+    $view->initHandlers();
+    $this->assertEqual($view->field['title']->options['label'], 'Title', 'The field label for table styles is not empty.');
+  }
+
+}
