diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OptionsWidgetBase.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OptionsWidgetBase.php
index baa3067..aebbe03 100644
--- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OptionsWidgetBase.php
+++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OptionsWidgetBase.php
@@ -79,7 +79,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
    *   The form state.
    */
   public static function validateElement(array $element, array &$form_state) {
-    if ($element['#required'] && $element['#value'] == '_none') {
+    if ($element['#required'] && $element['#value'] == NULL) {
       form_error($element, $form_state, t('!name field is required.', array('!name' => $element['#title'])));
     }
 
@@ -97,7 +97,7 @@ public static function validateElement(array $element, array &$form_state) {
 
     // Filter out the 'none' option. Use a strict comparison, because
     // 0 == 'any string'.
-    $index = array_search('_none', $values, TRUE);
+    $index = array_search(NULL, $values, TRUE);
     if ($index !== FALSE) {
       unset($values[$index]);
     }
@@ -136,7 +136,7 @@ protected function getOptions(FieldItemInterface $item) {
             break;
         }
 
-        $options = array('_none' => $label) + $options;
+        $options = array('' => $label) + $options;
       }
 
       $module_handler = \Drupal::moduleHandler();
diff --git a/core/modules/options/lib/Drupal/options/Tests/OptionsSelectDynamicValuesTest.php b/core/modules/options/lib/Drupal/options/Tests/OptionsSelectDynamicValuesTest.php
index 5ddcf0f..83b82e2 100644
--- a/core/modules/options/lib/Drupal/options/Tests/OptionsSelectDynamicValuesTest.php
+++ b/core/modules/options/lib/Drupal/options/Tests/OptionsSelectDynamicValuesTest.php
@@ -36,7 +36,7 @@ function testSelectListDynamic() {
     $this->assertEqual(count($options), count($this->test) + 1);
     foreach ($options as $option) {
       $value = (string) $option['value'];
-      if ($value != '_none') {
+      if ($value !== "") {
         $this->assertTrue(array_search($value, $this->test));
       }
     }
diff --git a/core/modules/options/lib/Drupal/options/Tests/OptionsWidgetsTest.php b/core/modules/options/lib/Drupal/options/Tests/OptionsWidgetsTest.php
index 877148c..1b9ac24 100644
--- a/core/modules/options/lib/Drupal/options/Tests/OptionsWidgetsTest.php
+++ b/core/modules/options/lib/Drupal/options/Tests/OptionsWidgetsTest.php
@@ -148,7 +148,7 @@ function testRadioButtons() {
     $this->assertNoFieldChecked('edit-card-1-2');
 
     // Unselect option.
-    $edit = array('card_1' => '_none');
+    $edit = array('card_1' => '');
     $this->drupalPostForm(NULL, $edit, t('Save'));
     $this->assertFieldValues($entity_init, 'card_1', array());
 
@@ -280,17 +280,17 @@ function testSelectListSingle() {
     // Display form.
     $this->drupalGet('entity_test/manage/' . $entity->id());
     // A required field without any value has a "none" option.
-    $this->assertTrue($this->xpath('//select[@id=:id]//option[@value="_none" and text()=:label]', array(':id' => 'edit-card-1', ':label' => t('- Select a value -'))), 'A required select list has a "Select a value" choice.');
+    $this->assertTrue($this->xpath('//select[@id=:id]//option[@value="" and text()=:label]', array(':id' => 'edit-card-1', ':label' => t('- Select a value -'))), 'A required select list has a "Select a value" choice.');
 
     // With no field data, nothing is selected.
-    $this->assertNoOptionSelected('edit-card-1', '_none');
+    $this->assertNoOptionSelected('edit-card-1', '');
     $this->assertNoOptionSelected('edit-card-1', 0);
     $this->assertNoOptionSelected('edit-card-1', 1);
     $this->assertNoOptionSelected('edit-card-1', 2);
     $this->assertRaw('Some dangerous &amp; unescaped markup', 'Option text was properly filtered.');
 
     // Submit form: select invalid 'none' option.
-    $edit = array('card_1' => '_none');
+    $edit = array('card_1' => '');
     $this->drupalPostForm(NULL, $edit, t('Save'));
     $this->assertRaw(t('!title field is required.', array('!title' => $instance->getFieldName())), 'Cannot save a required field when selecting "none" from the select list.');
 
@@ -302,7 +302,7 @@ function testSelectListSingle() {
     // Display form: check that the right options are selected.
     $this->drupalGet('entity_test/manage/' . $entity->id());
     // A required field with a value has no 'none' option.
-    $this->assertFalse($this->xpath('//select[@id=:id]//option[@value="_none"]', array(':id' => 'edit-card-1')), 'A required select list with an actual value has no "none" choice.');
+    $this->assertFalse($this->xpath('//select[@id=:id]//option[@value=""]', array(':id' => 'edit-card-1')), 'A required select list with an actual value has no "none" choice.');
     $this->assertOptionSelected('edit-card-1', 0);
     $this->assertNoOptionSelected('edit-card-1', 1);
     $this->assertNoOptionSelected('edit-card-1', 2);
@@ -314,9 +314,9 @@ function testSelectListSingle() {
     // Display form.
     $this->drupalGet('entity_test/manage/' . $entity->id());
     // A non-required field has a 'none' option.
-    $this->assertTrue($this->xpath('//select[@id=:id]//option[@value="_none" and text()=:label]', array(':id' => 'edit-card-1', ':label' => t('- None -'))), 'A non-required select list has a "None" choice.');
+    $this->assertTrue($this->xpath('//select[@id=:id]//option[@value="" and text()=:label]', array(':id' => 'edit-card-1', ':label' => t('- None -'))), 'A non-required select list has a "None" choice.');
     // Submit form: Unselect the option.
-    $edit = array('card_1' => '_none');
+    $edit = array('card_1' => '');
     $this->drupalPostForm('entity_test/manage/' . $entity->id(), $edit, t('Save'));
     $this->assertFieldValues($entity_init, 'card_1', array());
 
@@ -346,7 +346,7 @@ function testSelectListSingle() {
     $this->assertNoOptionSelected('edit-card-1', 2);
 
     // Submit form: Unselect the option.
-    $edit = array('card_1' => '_none');
+    $edit = array('card_1' => '');
     $this->drupalPostForm('entity_test/manage/' . $entity->id(), $edit, t('Save'));
     $this->assertFieldValues($entity_init, 'card_1', array());
   }
@@ -419,12 +419,12 @@ function testSelectListMultiple() {
 
     // Check that the 'none' option has no efect if actual options are selected
     // as well.
-    $edit = array('card_2[]' => array('_none' => '_none', 0 => 0));
+    $edit = array('card_2[]' => array('' => '', 0 => 0));
     $this->drupalPostForm('entity_test/manage/' . $entity->id(), $edit, t('Save'));
     $this->assertFieldValues($entity_init, 'card_2', array(0));
 
     // Check that selecting the 'none' option empties the field.
-    $edit = array('card_2[]' => array('_none' => '_none'));
+    $edit = array('card_2[]' => array('' => ''));
     $this->drupalPostForm('entity_test/manage/' . $entity->id(), $edit, t('Save'));
     $this->assertFieldValues($entity_init, 'card_2', array());
 
@@ -466,7 +466,7 @@ function testSelectListMultiple() {
     $this->assertNoOptionSelected('edit-card-2', 2);
 
     // Submit form: Unselect the option.
-    $edit = array('card_2[]' => array('_none' => '_none'));
+    $edit = array('card_2[]' => array('' => ''));
     $this->drupalPostForm('entity_test/manage/' . $entity->id(), $edit, t('Save'));
     $this->assertFieldValues($entity_init, 'card_2', array());
   }
diff --git a/core/modules/options/options.api.php b/core/modules/options/options.api.php
index 20010ac..e14163f 100644
--- a/core/modules/options/options.api.php
+++ b/core/modules/options/options.api.php
@@ -13,8 +13,7 @@
  * @param array $options
  *   The array of options for the field, as returned by
  *   \Drupal\Core\TypedData\AllowedValuesInterface::getSettableOptions(). An
- *   empty option (_none) might have been added, depending on the field
- *   properties.
+ *   empty option () might have been added, depending on the field properties.
  *
  * @param array $context
  *   An associative array containing:
@@ -29,6 +28,6 @@ function hook_options_list_alter(array &$options, array $context) {
   // Check if this is the field we want to change.
   if ($context['field']->id() == 'field_option') {
     // Change the label of the empty option.
-    $options['_none'] = t('== Empty ==');
+    $options[''] = t('== Empty ==');
   }
 }
