diff --git a/core/lib/Drupal/Core/Field/FieldItemInterface.php b/core/lib/Drupal/Core/Field/FieldItemInterface.php
index 8577a04..93da51e 100644
--- a/core/lib/Drupal/Core/Field/FieldItemInterface.php
+++ b/core/lib/Drupal/Core/Field/FieldItemInterface.php
@@ -249,7 +249,7 @@ public static function defaultInstanceSettings();
    *
    * An example of a conversion between representations might be an
    * "allowed_values" setting that's structured by the field type as a
-   * \Drupal\Core\TypedData\AllowedValuesInterface::getPossibleOptions()
+   * \Drupal\Core\TypedData\OptionsProviderInterface::getPossibleOptions()
    * result (i.e., values as keys and labels as values). For such a use case,
    * in order to comply with the above, this method could convert that
    * representation to a numerically indexed array whose values are sub-arrays
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
index 6819f79..abae6b3 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
@@ -11,7 +11,7 @@
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 use Drupal\Core\TypedData\DataDefinition;
 
 /**
@@ -25,7 +25,7 @@
  *   default_formatter = "boolean",
  * )
  */
-class BooleanItem extends FieldItemBase implements AllowedValuesInterface {
+class BooleanItem extends FieldItemBase implements OptionsProviderInterface {
 
   /**
    * {@inheritdoc}
diff --git a/core/lib/Drupal/Core/TypedData/AllowedValuesInterface.php b/core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php
similarity index 86%
rename from core/lib/Drupal/Core/TypedData/AllowedValuesInterface.php
rename to core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php
index 5c782ae..5434dcb 100644
--- a/core/lib/Drupal/Core/TypedData/AllowedValuesInterface.php
+++ b/core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Core\TypedData\AllowedValuesInterface.
+ * Contains \Drupal\Core\TypedData\OptionsProviderInterface.
  */
 
 namespace Drupal\Core\TypedData;
@@ -10,9 +10,13 @@
 use Drupal\Core\Session\AccountInterface;
 
 /**
- * Interface for retrieving all possible and settable values.
+ * Interface for retrieving options for all possible and settable values.
  *
- * While possible values specify which values existing data might have, settable
+ * Lists of both settable and possible values are provided as structured options
+ * arrays that can be used in an Options widget such as a select box or
+ * checkboxes.
+ *
+ * Possible values specify which values existing data might have, settable
  * values define the values that are allowed to be set by a user.
  *
  * For example, in an workflow scenario, the settable values for a state field
@@ -20,18 +24,14 @@
  * states. Thus settable values would be used in an editing context, while
  * possible values would be used for presenting filtering options in a search.
  *
- * For convenience, lists of both settable and possible values are also provided
- * as structured options arrays that can be used in an Options widget such as a
- * select box or checkboxes.
- *
  * Note that this interface is mostly applicable for primitive data values, but
  * can be used on complex data structures if a (primitive) main property is
- * specified. In that case, the allowed values and options apply to the main
- * property only.
+ * specified. In that case, the values and options apply to the main property
+ * only.
  *
  * @see \Drupal\options\Plugin\Field\FieldWidget\OptionsWidgetBase
  */
-interface AllowedValuesInterface {
+interface OptionsProviderInterface {
 
   /**
    * Returns an array of possible values.
diff --git a/core/lib/Drupal/Core/TypedData/TypedDataManager.php b/core/lib/Drupal/Core/TypedData/TypedDataManager.php
index c9afe86..99b3b9c 100644
--- a/core/lib/Drupal/Core/TypedData/TypedDataManager.php
+++ b/core/lib/Drupal/Core/TypedData/TypedDataManager.php
@@ -376,8 +376,8 @@ public function getDefaultConstraints(DataDefinitionInterface $definition) {
     if ($definition->isRequired()) {
       $constraints['NotNull'] = array();
     }
-    // Check if the class provides allowed values.
-    if (is_subclass_of($definition->getClass(),'Drupal\Core\TypedData\AllowedValuesInterface')) {
+    // Check if the class provides options if so, validate them.
+    if (is_subclass_of($definition->getClass(), 'Drupal\Core\TypedData\OptionsProviderInterface')) {
       $constraints['AllowedValues'] = array();
     }
     // Add any constraints about referenced data.
diff --git a/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraint.php b/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraint.php
index 34b652d..939fbab 100644
--- a/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraint.php
+++ b/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraint.php
@@ -17,7 +17,7 @@
  *   label = @Translation("Allowed values", context = "Validation")
  * )
  *
- * @see \Drupal\Core\TypedData\AllowedValuesInterface
+ * @see \Drupal\Core\TypedData\OptionsProviderInterface
  */
 class AllowedValuesConstraint extends Choice {
 
diff --git a/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraintValidator.php b/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraintValidator.php
index da5263a..efc6906 100644
--- a/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraintValidator.php
+++ b/core/lib/Drupal/Core/Validation/Plugin/Validation/Constraint/AllowedValuesConstraintValidator.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\Core\Validation\Plugin\Validation\Constraint;
 
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 use Drupal\Core\TypedData\ComplexDataInterface;
 use Symfony\Component\Validator\Constraint;
 use Symfony\Component\Validator\Constraints\ChoiceValidator;
@@ -23,7 +23,7 @@ class AllowedValuesConstraintValidator extends ChoiceValidator {
   public function validate($value, Constraint $constraint) {
     $typed_data = $this->context->getMetadata()->getTypedData();
 
-    if ($typed_data instanceof AllowedValuesInterface) {
+    if ($typed_data instanceof OptionsProviderInterface) {
       $account = \Drupal::currentUser();
       $allowed_values = $typed_data->getSettableValues($account);
       $constraint->choices = $allowed_values;
diff --git a/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php b/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php
index 954fbde..8ce348c 100644
--- a/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php
+++ b/core/modules/entity_reference/src/ConfigurableEntityReferenceItem.php
@@ -13,7 +13,7 @@
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Form\OptGroup;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\Core\Validation\Plugin\Validation\Constraint\AllowedValuesConstraint;
 use Drupal\field\FieldStorageConfigInterface;
@@ -29,7 +29,7 @@
  *
  * @see entity_reference_field_info_alter().
  */
-class ConfigurableEntityReferenceItem extends EntityReferenceItem implements AllowedValuesInterface {
+class ConfigurableEntityReferenceItem extends EntityReferenceItem implements OptionsProviderInterface {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/filter/src/Plugin/DataType/FilterFormat.php b/core/modules/filter/src/Plugin/DataType/FilterFormat.php
index f842896..31ab7f7 100644
--- a/core/modules/filter/src/Plugin/DataType/FilterFormat.php
+++ b/core/modules/filter/src/Plugin/DataType/FilterFormat.php
@@ -8,7 +8,7 @@
 namespace Drupal\filter\Plugin\DataType;
 
 use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 use Drupal\Core\TypedData\Plugin\DataType\String;
 
 /**
@@ -19,7 +19,7 @@
  *   label = @Translation("Filter format")
  * )
  */
-class FilterFormat extends String implements AllowedValuesInterface {
+class FilterFormat extends String implements OptionsProviderInterface {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/filter/src/Tests/FilterAPITest.php b/core/modules/filter/src/Tests/FilterAPITest.php
index 7c513a4..2cde55e 100644
--- a/core/modules/filter/src/Tests/FilterAPITest.php
+++ b/core/modules/filter/src/Tests/FilterAPITest.php
@@ -8,7 +8,7 @@
 namespace Drupal\filter\Tests;
 
 use Drupal\Core\Session\AnonymousUserSession;
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\filter\Plugin\DataType\FilterFormat;
 use Drupal\filter\Plugin\FilterInterface;
@@ -267,7 +267,7 @@ function testTypedDataAPI() {
     $definition = DataDefinition::create('filter_format');
     $data = \Drupal::typedDataManager()->create($definition);
 
-    $this->assertTrue($data instanceof AllowedValuesInterface, 'Typed data object implements \Drupal\Core\TypedData\AllowedValuesInterface');
+    $this->assertTrue($data instanceof OptionsProviderInterface, 'Typed data object implements \Drupal\Core\TypedData\OptionsProviderInterface');
 
     $filtered_html_user = $this->createUser(array('uid' => 2), array(
       entity_load('filter_format', 'filtered_html')->getPermissionName(),
diff --git a/core/modules/options/options.api.php b/core/modules/options/options.api.php
index 20010ac..648d2dd 100644
--- a/core/modules/options/options.api.php
+++ b/core/modules/options/options.api.php
@@ -12,7 +12,7 @@
  *
  * @param array $options
  *   The array of options for the field, as returned by
- *   \Drupal\Core\TypedData\AllowedValuesInterface::getSettableOptions(). An
+ *   \Drupal\Core\TypedData\OptionsProviderInterface::getSettableOptions(). An
  *   empty option (_none) might have been added, depending on the field
  *   properties.
  *
diff --git a/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php b/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
index 26dd91c..c64676c 100644
--- a/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
+++ b/core/modules/options/src/Plugin/Field/FieldType/ListItemBase.php
@@ -11,12 +11,12 @@
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Form\OptGroup;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 
 /**
  * Plugin base class inherited by the options field types.
  */
-abstract class ListItemBase extends FieldItemBase implements AllowedValuesInterface {
+abstract class ListItemBase extends FieldItemBase implements OptionsProviderInterface {
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/options/src/Plugin/Field/FieldWidget/OptionsWidgetBase.php b/core/modules/options/src/Plugin/Field/FieldWidget/OptionsWidgetBase.php
index aa42e81..ce868d5 100644
--- a/core/modules/options/src/Plugin/Field/FieldWidget/OptionsWidgetBase.php
+++ b/core/modules/options/src/Plugin/Field/FieldWidget/OptionsWidgetBase.php
@@ -18,10 +18,10 @@
  *
  * Field types willing to enable one or several of the widgets defined in
  * options.module (select, radios/checkboxes, on/off checkbox) need to
- * implement the AllowedValuesInterface to specify the list of options to
+ * implement the OptionsProviderInterface to specify the list of options to
  * display in the widgets.
  *
- * @see \Drupal\Core\TypedData\AllowedValuesInterface
+ * @see \Drupal\Core\TypedData\OptionsProviderInterface
  */
 abstract class OptionsWidgetBase extends WidgetBase {
 
diff --git a/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php b/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php
index c58a631..2cdc521 100644
--- a/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php
+++ b/core/modules/taxonomy/src/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Form\OptGroup;
 use Drupal\Core\Session\AccountInterface;
-use Drupal\Core\TypedData\AllowedValuesInterface;
+use Drupal\Core\TypedData\OptionsProviderInterface;
 
 /**
  * Plugin implementation of the 'term_reference' field type.
@@ -26,7 +26,7 @@
  *   list_class = "\Drupal\Core\Field\EntityReferenceFieldItemList"
  * )
  */
-class TaxonomyTermReferenceItem extends EntityReferenceItem implements AllowedValuesInterface {
+class TaxonomyTermReferenceItem extends EntityReferenceItem implements OptionsProviderInterface {
 
   /**
    * {@inheritdoc}
