diff --git a/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php b/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
index 276f559..e34f343 100644
--- a/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
+++ b/core/modules/editor/tests/src/Kernel/QuickEditIntegrationTest.php
@@ -5,6 +5,7 @@
 use Drupal\Component\Serialization\Json;
 use Drupal\Core\EventSubscriber\AjaxResponseSubscriber;
 use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Session\AnonymousUserSession;
 use Drupal\editor\Entity\Editor;
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\quickedit\MetadataGenerator;
@@ -167,7 +168,7 @@ public function testMetadata() {
     $this->editorManager = $this->container->get('plugin.manager.quickedit.editor');
     $this->accessChecker = new MockQuickEditEntityFieldAccessCheck();
     $this->editorSelector = $this->container->get('quickedit.editor.selector');
-    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager);
+    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager, new AnonymousUserSession());
 
     // Create an entity with values for the field.
     $entity = EntityTest::create();
diff --git a/core/modules/quickedit/quickedit.services.yml b/core/modules/quickedit/quickedit.services.yml
index 3d7d934..d4830b4 100644
--- a/core/modules/quickedit/quickedit.services.yml
+++ b/core/modules/quickedit/quickedit.services.yml
@@ -11,4 +11,4 @@ services:
     arguments: ['@plugin.manager.quickedit.editor', '@plugin.manager.field.formatter']
   quickedit.metadata.generator:
     class: Drupal\quickedit\MetadataGenerator
-    arguments: ['@access_check.quickedit.entity_field', '@quickedit.editor.selector', '@plugin.manager.quickedit.editor']
+    arguments: ['@access_check.quickedit.entity_field', '@quickedit.editor.selector', '@plugin.manager.quickedit.editor', '@current_user']
diff --git a/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php
index 5404b04..13c9d48 100644
--- a/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php
+++ b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheck.php
@@ -22,26 +22,26 @@ class QuickEditEntityFieldAccessCheck implements AccessInterface, QuickEditEntit
    * @param string $langcode
    *   The langcode.
    * @param \Drupal\Core\Session\AccountInterface $account
-   *   The currently logged in account.
+   *   (optional) The user for which to check access.
    *
    * @return \Drupal\Core\Access\AccessResultInterface
    *   The access result.
-   *
-   * @todo Use the $account argument: https://www.drupal.org/node/2266809.
    */
-  public function access(EntityInterface $entity, $field_name, $langcode, AccountInterface $account) {
+  public function access(EntityInterface $entity, $field_name, $langcode, AccountInterface $account = NULL) {
     if (!$this->validateRequestAttributes($entity, $field_name, $langcode)) {
       return AccessResult::forbidden();
     }
 
-    return $this->accessEditEntityField($entity, $field_name);
+    return $this->accessEditEntityField($entity, $field_name, $account);
   }
 
   /**
    * {@inheritdoc}
    */
-  public function accessEditEntityField(EntityInterface $entity, $field_name) {
-    return $entity->access('update', NULL, TRUE)->andIf($entity->get($field_name)->access('edit', NULL, TRUE));
+  public function accessEditEntityField(EntityInterface $entity, $field_name, AccountInterface $account = NULL) {
+    return $entity
+      ->access('update', $account, TRUE)
+      ->andIf($entity->get($field_name)->access('edit', $account, TRUE));
   }
 
   /**
diff --git a/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php
index 1428b48..0a8ca80 100644
--- a/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php
+++ b/core/modules/quickedit/src/Access/QuickEditEntityFieldAccessCheckInterface.php
@@ -3,6 +3,7 @@
 namespace Drupal\quickedit\Access;
 
 use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Session\AccountInterface;
 
 /**
  * Access check for in-place editing entity fields.
@@ -16,10 +17,12 @@
    *   The entity.
    * @param string $field_name
    *   The field name.
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   (optional) The user for which to check access.
    *
    * @return \Drupal\Core\Access\AccessResultInterface
    *   The access result.
    */
-  public function accessEditEntityField(EntityInterface $entity, $field_name);
+  public function accessEditEntityField(EntityInterface $entity, $field_name, AccountInterface $account = NULL);
 
 }
diff --git a/core/modules/quickedit/src/MetadataGenerator.php b/core/modules/quickedit/src/MetadataGenerator.php
index f01256f..653ad4f 100644
--- a/core/modules/quickedit/src/MetadataGenerator.php
+++ b/core/modules/quickedit/src/MetadataGenerator.php
@@ -2,11 +2,13 @@
 
 namespace Drupal\quickedit;
 
+use Drupal;
 use Drupal\Component\Plugin\PluginManagerInterface;
 use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
 use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Session\AccountInterface;
 use Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface;
-use Drupal\Core\Entity\Entity\EntityViewDisplay;
 
 /**
  * Generates in-place editing metadata for an entity field.
@@ -35,6 +37,13 @@ class MetadataGenerator implements MetadataGeneratorInterface {
   protected $editorManager;
 
   /**
+   * The current user.
+   *
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  protected $currentUser;
+
+  /**
    * Constructs a new MetadataGenerator.
    *
    * @param \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface $access_checker
@@ -43,11 +52,14 @@ class MetadataGenerator implements MetadataGeneratorInterface {
    *   An object that determines which editor to attach to a given field.
    * @param \Drupal\Component\Plugin\PluginManagerInterface $editor_manager
    *   The manager for editor plugins.
+   * @param \Drupal\Core\Session\AccountInterface $current_user
+   *   (optional) The current user.
    */
-  public function __construct(QuickEditEntityFieldAccessCheckInterface $access_checker, EditorSelectorInterface $editor_selector, PluginManagerInterface $editor_manager) {
+  public function __construct(QuickEditEntityFieldAccessCheckInterface $access_checker, EditorSelectorInterface $editor_selector, PluginManagerInterface $editor_manager, AccountInterface $current_user = NULL) {
     $this->accessChecker = $access_checker;
     $this->editorSelector = $editor_selector;
     $this->editorManager = $editor_manager;
+    $this->currentUser = $current_user;
   }
 
   /**
@@ -66,8 +78,12 @@ public function generateFieldMetadata(FieldItemListInterface $items, $view_mode)
     $entity = $items->getEntity();
     $field_name = $items->getFieldDefinition()->getName();
 
+    if ($this->currentUser == NULL) {
+      $this->currentUser = Drupal::currentUser();
+    }
+
     // Early-return if user does not have access.
-    $access = $this->accessChecker->accessEditEntityField($entity, $field_name);
+    $access = $this->accessChecker->accessEditEntityField($entity, $field_name, $this->currentUser);
     if (!$access) {
       return ['access' => FALSE];
     }
diff --git a/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php b/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php
index 2459c50..0801768 100644
--- a/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php
+++ b/core/modules/quickedit/tests/modules/src/MockQuickEditEntityFieldAccessCheck.php
@@ -3,6 +3,7 @@
 namespace Drupal\quickedit_test;
 
 use Drupal\Core\Entity\EntityInterface;
+use Drupal\Core\Session\AccountInterface;
 use Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface;
 
 /**
@@ -13,7 +14,7 @@ class MockQuickEditEntityFieldAccessCheck implements QuickEditEntityFieldAccessC
   /**
    * {@inheritdoc}
    */
-  public function accessEditEntityField(EntityInterface $entity, $field_name) {
+  public function accessEditEntityField(EntityInterface $entity, $field_name, AccountInterface $account = NULL) {
     return TRUE;
   }
 
diff --git a/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php b/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
index 9a453fb..be8ab0e 100644
--- a/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
+++ b/core/modules/quickedit/tests/src/Kernel/MetadataGeneratorTest.php
@@ -4,6 +4,7 @@
 
 use Drupal\entity_test\Entity\EntityTest;
 use Drupal\quickedit\EditorSelector;
+use Drupal\Core\Session\AnonymousUserSession;
 use Drupal\quickedit\MetadataGenerator;
 use Drupal\quickedit_test\MockQuickEditEntityFieldAccessCheck;
 use Drupal\filter\Entity\FilterFormat;
@@ -42,6 +43,13 @@ class MetadataGeneratorTest extends QuickEditTestBase {
   protected $editorSelector;
 
   /**
+   * The mocked current user.
+   *
+   * @var \Drupal\Core\Session\AccountInterface
+   */
+  protected $currentUser;
+
+  /**
    * The access checker object to be used by the metadata generator object.
    *
    * @var \Drupal\quickedit\Access\QuickEditEntityFieldAccessCheckInterface
@@ -54,7 +62,8 @@ protected function setUp() {
     $this->editorManager = $this->container->get('plugin.manager.quickedit.editor');
     $this->accessChecker = new MockQuickEditEntityFieldAccessCheck();
     $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter'));
-    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager);
+    $this->currentUser = new AnonymousUserSession();
+    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager, $this->currentUser);
   }
 
   /**
@@ -122,11 +131,11 @@ public function testSimpleEntityType() {
   public function testEditorWithCustomMetadata() {
     $this->editorManager = $this->container->get('plugin.manager.quickedit.editor');
     $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter'));
-    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager);
+    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager, $this->currentUser);
 
     $this->editorManager = $this->container->get('plugin.manager.quickedit.editor');
     $this->editorSelector = new EditorSelector($this->editorManager, $this->container->get('plugin.manager.field.formatter'));
-    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager);
+    $this->metadataGenerator = new MetadataGenerator($this->accessChecker, $this->editorSelector, $this->editorManager, $this->currentUser);
 
     // Create a rich text field.
     $field_name = 'field_rich';
