diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterBase.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterBase.php
index 5a23fa4..2666409 100644
--- a/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterBase.php
+++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Formatter/FormatterBase.php
@@ -105,7 +105,7 @@ public function view(EntityInterface $entity, $langcode, array $items) {
         '#theme' => 'field',
         '#weight' => $this->weight,
         '#title' => $instance['label'],
-        '#access' => field_access($field, 'view', $entity_type, $entity),
+        '#access' => field_access('view', $field, $entity_type, $entity),
         '#label_display' => $this->label,
         '#view_mode' => $this->viewMode,
         '#language' => $langcode,
diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldAccessTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldAccessTest.php
new file mode 100644
index 0000000..4e19d71
--- /dev/null
+++ b/core/modules/field/lib/Drupal/field/Tests/FieldAccessTest.php
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\field\Tests\FieldAccessTest.
+ */
+
+namespace Drupal\field\Tests;
+
+class FieldAccessTest extends FieldTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('node', 'field_test', 'options');
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Field access tests',
+      'description' => 'Test Field access.',
+      'group' => 'Field API',
+    );
+  }
+
+  function setUp() {
+    parent::setUp();
+
+    $web_user = $this->drupalCreateUser(array('bypass node access', 'view body content'));
+    $this->drupalLogin($web_user);
+
+    // Create content type.
+    $this->content_type_info = $this->drupalCreateContentType();
+    $this->content_type = $this->content_type_info->type;
+  }
+
+  function testFieldAccess() {
+    $body_value = 'This is the body';
+
+    $edit = array(
+      'title' => 'Field view access test',
+      'body[und][0][value]' => $body_value
+    );
+    $this->drupalPost('node/add/' . $this->content_type, $edit, t('Save'));
+
+    // Assert the body value is visible.
+    $this->assertText($body_value);
+    $this->drupalLogout();
+
+    // Assert the body value is not visible for anonymous users.
+    $this->drupalGet('node/1');
+    $this->assertNoText($body_value);
+  }
+}
diff --git a/core/modules/field/tests/modules/field_test/field_test.field.inc b/core/modules/field/tests/modules/field_test/field_test.field.inc
index 44d22c1..6ac2d79 100644
--- a/core/modules/field/tests/modules/field_test/field_test.field.inc
+++ b/core/modules/field/tests/modules/field_test/field_test.field.inc
@@ -188,5 +188,10 @@ function field_test_field_access($op, $field, $entity_type, $entity, $account) {
   if ($field['field_name'] == "field_no_{$op}_access") {
     return FALSE;
   }
+
+  if ($op == 'view' && !user_access('view ' . $field['field_name'] . ' content')) {
+    return FALSE;
+  }
+
   return TRUE;
 }
diff --git a/core/modules/field/tests/modules/field_test/field_test.module b/core/modules/field/tests/modules/field_test/field_test.module
index 8c25b1d..e7b136e 100644
--- a/core/modules/field/tests/modules/field_test/field_test.module
+++ b/core/modules/field/tests/modules/field_test/field_test.module
@@ -28,6 +28,10 @@ function field_test_permission() {
       'title' => t('Access field_test content'),
       'description' => t('View published field_test content.'),
     ),
+    'view body content' => array(
+      'title' => t('View body content'),
+      'description' => t('View published field_test content.'),
+    ),
     'administer field_test content' => array(
       'title' => t('Administer field_test content'),
       'description' => t('Manage field_test content'),
