diff --git a/core/modules/entity/config/schema/entity.schema.yml b/core/modules/entity/config/schema/entity.schema.yml
index 0c2d73dd0a25730f4a26f42b5fd524e0e300b845..a6c87f0b6a3dfbed5bef46b52fc3305f42192c6f 100644
--- a/core/modules/entity/config/schema/entity.schema.yml
+++ b/core/modules/entity/config/schema/entity.schema.yml
@@ -152,12 +152,17 @@ entity_form_display.field.*:
       type: integer
       label: 'Weight'
 
-entity_view_display.field.string:
-  type: entity_field_view_display_base
-  label: 'Plain text display format settings'
+entity_form_display.field.string:
+  type: entity_field_form_display_base
+  label: 'Text field display format settings'
   mapping:
     settings:
-      type: sequence
+      type: mapping
       label: 'Settings'
-      sequence:
-        - type: string
+      mapping:
+        size:
+          type: integer
+          label: 'Size of textfield'
+        placeholder:
+          type: label
+          label: 'Placeholder'
diff --git a/core/modules/forum/config/entity.form_display.taxonomy_term.forums.default.yml b/core/modules/forum/config/entity.form_display.taxonomy_term.forums.default.yml
index ff9133f2ab919bff7cf16155a02d0d3b6a6ae0f0..9721a0afa86868fa912a30849442a0cd2543b4f2 100644
--- a/core/modules/forum/config/entity.form_display.taxonomy_term.forums.default.yml
+++ b/core/modules/forum/config/entity.form_display.taxonomy_term.forums.default.yml
@@ -5,9 +5,15 @@ mode: default
 status: true
 content:
   name:
+    type: string
     weight: -5
+    settings:
+      size: 60
+      placeholder: ''
   description:
+    type: text_textfield
     weight: 0
+    settings: { }
 dependencies:
   entity:
     - taxonomy.vocabulary.forums
diff --git a/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php b/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
index c7d8b64a650c985069188cc48b4918106b450ad6..35a4bd1e1f3da2a1a4ec08eb7042cd9dead0f269 100644
--- a/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
+++ b/core/modules/forum/lib/Drupal/forum/Tests/ForumTest.php
@@ -368,8 +368,8 @@ function createForum($type, $parent = 0) {
     $description = $this->randomName(100);
 
     $edit = array(
-      'name' => $name,
-      'description[value]' => $description,
+      'name[0][value]' => $name,
+      'description[0][value]' => $description,
       'parent[0]' => $parent,
       'weight' => '0',
     );
diff --git a/core/modules/path/lib/Drupal/path/Tests/PathTaxonomyTermTest.php b/core/modules/path/lib/Drupal/path/Tests/PathTaxonomyTermTest.php
index c483d9e96325b3d9084d64094b4c97ec58775633..d2fd278a0cb469bf5dd0f840cf6a5b8e228c23f2 100644
--- a/core/modules/path/lib/Drupal/path/Tests/PathTaxonomyTermTest.php
+++ b/core/modules/path/lib/Drupal/path/Tests/PathTaxonomyTermTest.php
@@ -50,12 +50,12 @@ function testTermAlias() {
     $vocabulary = entity_load('taxonomy_vocabulary', 'tags');
     $description = $this->randomName();
     $edit = array(
-      'name' => $this->randomName(),
-      'description[value]' => $description,
+      'name[0][value]' => $this->randomName(),
+      'description[0][value]' => $description,
       'path[alias]' => $this->randomName(),
     );
     $this->drupalPostForm('admin/structure/taxonomy/manage/' . $vocabulary->id() . '/add', $edit, t('Save'));
-    $tid = db_query("SELECT tid FROM {taxonomy_term_data} WHERE name = :name", array(':name' => $edit['name']))->fetchField();
+    $tid = db_query("SELECT tid FROM {taxonomy_term_data} WHERE name = :name", array(':name' => $edit['name[0][value]']))->fetchField();
 
     // Confirm that the alias works.
     $this->drupalGet($edit['path[alias]']);
diff --git a/core/modules/taxonomy/css/taxonomy.module.css b/core/modules/taxonomy/css/taxonomy.module.css
index 1f80d5252c053698865175a6d64a70b1911713c2..543666a1e9052713a457ae1317fa51e1cf6fc892 100644
--- a/core/modules/taxonomy/css/taxonomy.module.css
+++ b/core/modules/taxonomy/css/taxonomy.module.css
@@ -8,6 +8,3 @@
 .taxonomy-term-divider-bottom {
   border-top: 1px dotted #ccc;
 }
-.taxonomy-term-description {
-  margin: 5px 0 20px;
-}
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php
index 207f08b824c18a219b7d4b8d1e6527ed769fd2a0..bbbed9c303712fb4cad37d8df572d59fce9e57f0 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Entity/Term.php
@@ -132,12 +132,33 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
       ->setLabel(t('Name'))
       ->setDescription(t('The term name.'))
       ->setRequired(TRUE)
-      ->setSetting('max_length', 255);
+      ->setSetting('max_length', 255)
+      ->setDisplayOptions('view', array(
+        'label' => 'hidden',
+        'type' => 'string',
+        'weight' => -5,
+      ))
+      ->setDisplayOptions('form', array(
+        'type' => 'string',
+        'weight' => -5,
+      ))
+      ->setDisplayConfigurable('form', TRUE);
 
     $fields['description'] = FieldDefinition::create('text_long')
       ->setLabel(t('Description'))
       ->setDescription(t('A description of the term.'))
-      ->setSetting('text_processing', 1);
+      ->setSetting('text_processing', 1)
+      ->setDisplayOptions('view', array(
+        'label' => 'hidden',
+        'type' => 'text_default',
+        'weight' => 0,
+      ))
+      ->setDisplayConfigurable('view', TRUE)
+      ->setDisplayOptions('form', array(
+        'type' => 'text_textfield',
+        'weight' => 0,
+      ))
+      ->setDisplayConfigurable('form', TRUE);
 
     $fields['weight'] = FieldDefinition::create('integer')
       ->setLabel(t('Weight'))
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/TermFormController.php b/core/modules/taxonomy/lib/Drupal/taxonomy/TermFormController.php
index 580638667fb0a2e9ae48aeaba5906426edf7679c..33c4fa7d464983a3ab699e54c3a65e95264bb6ae 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/TermFormController.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/TermFormController.php
@@ -61,22 +61,6 @@ public function form(array $form, array &$form_state) {
     $form_state['taxonomy']['parent'] = $parent;
     $form_state['taxonomy']['vocabulary'] = $vocabulary;
 
-    $form['name'] = array(
-      '#type' => 'textfield',
-      '#title' => $this->t('Name'),
-      '#default_value' => $term->getName(),
-      '#maxlength' => 255,
-      '#required' => TRUE,
-      '#weight' => -5,
-    );
-
-    $form['description'] = array(
-      '#type' => 'text_format',
-      '#title' => $this->t('Description'),
-      '#default_value' => $term->getDescription(),
-      '#format' => $term->getFormat(),
-      '#weight' => 0,
-    );
     $language_configuration = $this->moduleHandler->moduleExists('language') ? language_get_default_configuration('taxonomy_term', $vocabulary->id()) : FALSE;
     $form['langcode'] = array(
       '#type' => 'language_select',
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php b/core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php
index a8e26707e37cfcb99eab0b9f5c804659a0ba7a07..64edd9a05a8b73ce81dfaa1191465acd560b5ead 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/TermViewBuilder.php
@@ -16,33 +16,11 @@
  */
 class TermViewBuilder extends EntityViewBuilder {
 
-  /**
-   * {@inheritdoc}
-   */
-  public function buildContent(array $entities, array $displays, $view_mode, $langcode = NULL) {
-    parent::buildContent($entities, $displays, $view_mode, $langcode);
-
-    foreach ($entities as $entity) {
-      // Add the description if enabled.
-      // @todo Remove this when base fields are able to use formatters.
-      // https://drupal.org/node/2144919
-      $display = $displays[$entity->bundle()];
-      if ($entity->getDescription() && $display->getComponent('description')) {
-        $entity->content['description'] = array(
-          '#markup' => $entity->description->processed,
-          '#prefix' => '<div class="taxonomy-term-description">',
-          '#suffix' => '</div>',
-        );
-      }
-    }
-  }
-
   /**
    * {@inheritdoc}
    */
   protected function alterBuild(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display, $view_mode, $langcode = NULL) {
     parent::alterBuild($build, $entity, $display, $view_mode, $langcode);
-    $build['#attached']['css'][] = drupal_get_path('module', 'taxonomy') . '/css/taxonomy.module.css';
     $build['#contextual_links']['taxonomy_term'] = array(
       'route_parameters' => array('taxonomy_term' => $entity->id()),
       'metadata' => array('changed' => $entity->getChangedTime()),
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyImageTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyImageTest.php
index 52becaa6317ee5b9e9a910521d98f3616a35a6d4..576b9d1ad8f8fdce5390dd6bc6288d3e1309ad3a 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyImageTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TaxonomyImageTest.php
@@ -79,10 +79,10 @@ public function testTaxonomyImageAccess() {
     // Create a term and upload the image.
     $files = $this->drupalGetTestFiles('image');
     $image = array_pop($files);
-    $edit['name'] = $this->randomName();
+    $edit['name[0][value]'] = $this->randomName();
     $edit['files[field_test_0]'] = drupal_realpath($image->uri);
     $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id()  . '/add', $edit, t('Save'));
-    $terms = entity_load_multiple_by_properties('taxonomy_term', array('name' => $edit['name']));
+    $terms = entity_load_multiple_by_properties('taxonomy_term', array('name' => $edit['name[0][value]']));
     $term = reset($terms);
     $this->assertText(t('Created new term @name.', array('@name' => $term->getName())));
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php
index c74efbe658c360d6b3a88d7ffe64a4c7bdefb77d..8287b99d356c74b2f1ecf2b2497f2b65dbe46b46 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermLanguageTest.php
@@ -57,11 +57,11 @@ function testTermLanguage() {
     $this->assertField('edit-langcode', t('The language selector field was found on the page.'));
     // Submit the term.
     $edit = array(
-      'name' => $this->randomName(),
+      'name[0][value]' => $this->randomName(),
       'langcode' => 'aa',
     );
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
+    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
     $term = reset($terms);
     $this->assertEqual($term->language()->id, $edit['langcode'], 'The term contains the correct langcode.');
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTest.php
index 23c0781a81fd500e8a66477701828f4eddbe93bd..4394ab0a703e6628371d58b4e47cc777cace8dbb 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTest.php
@@ -296,8 +296,8 @@ function testTermAutocompletion() {
    */
   function testTermInterface() {
     $edit = array(
-      'name' => $this->randomName(12),
-      'description[value]' => $this->randomName(100),
+      'name[0][value]' => $this->randomName(12),
+      'description[0][value]' => $this->randomName(100),
     );
     // Explicitly set the parents field to 'root', to ensure that
     // TermFormController::save() handles the invalid term ID correctly.
@@ -306,7 +306,7 @@ function testTermInterface() {
     // Create the term to edit.
     $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', $edit, t('Save'));
 
-    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
+    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
     $term = reset($terms);
     $this->assertNotNull($term, 'Term found in database.');
 
@@ -318,12 +318,12 @@ function testTermInterface() {
     // the first edit link found on the listing page is to our term.
     $this->clickLink(t('edit'));
 
-    $this->assertRaw($edit['name'], 'The randomly generated term name is present.');
-    $this->assertText($edit['description[value]'], 'The randomly generated term description is present.');
+    $this->assertRaw($edit['name[0][value]'], 'The randomly generated term name is present.');
+    $this->assertText($edit['description[0][value]'], 'The randomly generated term description is present.');
 
     $edit = array(
-      'name' => $this->randomName(14),
-      'description[value]' => $this->randomName(102),
+      'name[0][value]' => $this->randomName(14),
+      'description[0][value]' => $this->randomName(102),
     );
 
     // Edit the term.
@@ -331,25 +331,25 @@ function testTermInterface() {
 
     // Check that the term is still present at admin UI after edit.
     $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview');
-    $this->assertText($edit['name'], 'The randomly generated term name is present.');
+    $this->assertText($edit['name[0][value]'], 'The randomly generated term name is present.');
     $this->assertLink(t('edit'));
 
     // Check the term link can be clicked through to the term page.
-    $this->clickLink($edit['name']);
+    $this->clickLink($edit['name[0][value]']);
     $this->assertResponse(200, 'Term page can be accessed via the listing link.');
 
     // View the term and check that it is correct.
     $this->drupalGet('taxonomy/term/' . $term->id());
-    $this->assertText($edit['name'], 'The randomly generated term name is present.');
-    $this->assertText($edit['description[value]'], 'The randomly generated term description is present.');
+    $this->assertText($edit['name[0][value]'], 'The randomly generated term name is present.');
+    $this->assertText($edit['description[0][value]'], 'The randomly generated term description is present.');
 
     // Did this page request display a 'term-listing-heading'?
-    $this->assertPattern('|class="taxonomy-term-description"|', 'Term page displayed the term description element.');
+    $this->assertTrue($this->xpath('//div[contains(@class, "field-taxonomy-term--description")]'), 'Term page displayed the term description element.');
     // Check that it does NOT show a description when description is blank.
     $term->setDescription(NULL);
     $term->save();
     $this->drupalGet('taxonomy/term/' . $term->id());
-    $this->assertNoPattern('|class="taxonomy-term-description"|', 'Term page did not display the term description when description was blank.');
+    $this->assertFalse($this->xpath('//div[contains(@class, "field-taxonomy-term--description")]'), 'Term page did not display the term description when description was blank.');
 
     // Check that the description value is processed.
     $value = $this->randomName();
@@ -437,19 +437,19 @@ function testTermMultipleParentsInterface() {
 
     // Add a new term with multiple parents.
     $edit = array(
-      'name' => $this->randomName(12),
-      'description[value]' => $this->randomName(100),
+      'name[0][value]' => $this->randomName(12),
+      'description[0][value]' => $this->randomName(100),
       'parent[]' => array(0, $parent->id()),
     );
     // Save the new term.
     $this->drupalPostForm('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add', $edit, t('Save'));
 
     // Check that the term was successfully created.
-    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
+    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
     $term = reset($terms);
     $this->assertNotNull($term, 'Term found in database.');
-    $this->assertEqual($edit['name'], $term->getName(), 'Term name was successfully saved.');
-    $this->assertEqual($edit['description[value]'], $term->getDescription(), 'Term description was successfully saved.');
+    $this->assertEqual($edit['name[0][value]'], $term->getName(), 'Term name was successfully saved.');
+    $this->assertEqual($edit['description[0][value]'], $term->getDescription(), 'Term description was successfully saved.');
     // Check that the parent tid is still there. The other parent (<root>) is
     // not added by taxonomy_term_load_parents().
     $parents = taxonomy_term_load_parents($term->id());
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTranslationUITest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTranslationUITest.php
index 6063e94a9e24e181a4caebefa66f2b6b259768cb..a027ade04b0974fa25b61c9d8b1b99dace694a84 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTranslationUITest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TermTranslationUITest.php
@@ -81,6 +81,25 @@ protected function getNewEntityValues($langcode) {
     return array('name' => $this->name) + parent::getNewEntityValues($langcode);
   }
 
+  /**
+   * Returns an edit array containing the values to be posted.
+   */
+  protected function getEditValues($values, $langcode, $new = FALSE) {
+    $edit = parent::getEditValues($values, $langcode, $new);
+
+    // To be able to post values for the configurable base fields (name,
+    // description) have to be suffixed with [0][value].
+    foreach ($edit as $property => $value) {
+      foreach (array('name', 'description') as $key) {
+        if ($property == $key) {
+          $edit[$key . '[0][value]'] = $value;
+          unset($edit[$property]);
+        }
+      }
+    }
+    return $edit;
+  }
+
   /**
    * Overrides \Drupal\content_translation\Tests\ContentTranslationUITest::testTranslationUI().
    */
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TokenReplaceTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TokenReplaceTest.php
index d3a938b54017afa19cfc9f971caed101658a0e4e..18cbdd8af15e24e39ed883c35c16c7264448ee21 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TokenReplaceTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/TokenReplaceTest.php
@@ -75,7 +75,7 @@ function testTaxonomyTokenReplacement() {
 
     // Edit $term2, setting $term1 as parent.
     $edit = array();
-    $edit['name'] = '<blink>Blinking Text</blink>';
+    $edit['name[0][value]'] = '<blink>Blinking Text</blink>';
     $edit['parent[]'] = array($term1->id());
     $this->drupalPostForm('taxonomy/term/' . $term2->id() . '/edit', $edit, t('Save'));
 
diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyPermissionsTest.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyPermissionsTest.php
index b97a092ef03671d6d149f78b7b625268a98991e0..7b898020f7f6dd31472e97e04873763ba9126ded 100644
--- a/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyPermissionsTest.php
+++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Tests/VocabularyPermissionsTest.php
@@ -37,34 +37,34 @@ function testVocabularyPermissionsTaxonomyTerm() {
     // Visit the main taxonomy administration page.
     $this->drupalGet('admin/structure/taxonomy/manage/' . $vocabulary->id() . '/add');
     $this->assertResponse(200);
-    $this->assertField('edit-name', 'Add taxonomy term form opened successfully.');
+    $this->assertField('edit-name-0-value', 'Add taxonomy term form opened successfully.');
 
     // Submit the term.
     $edit = array();
-    $edit['name'] = $this->randomName();
+    $edit['name[0][value]'] = $this->randomName();
 
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertRaw(t('Created new term %name.', array('%name' => $edit['name'])), 'Term created successfully.');
+    $this->assertRaw(t('Created new term %name.', array('%name' => $edit['name[0][value]'])), 'Term created successfully.');
 
-    $terms = taxonomy_term_load_multiple_by_name($edit['name']);
+    $terms = taxonomy_term_load_multiple_by_name($edit['name[0][value]']);
     $term = reset($terms);
 
     // Edit the term.
     $this->drupalGet('taxonomy/term/' . $term->id() . '/edit');
     $this->assertResponse(200);
-    $this->assertText($edit['name'], 'Edit taxonomy term form opened successfully.');
+    $this->assertText($edit['name[0][value]'], 'Edit taxonomy term form opened successfully.');
 
-    $edit['name'] = $this->randomName();
+    $edit['name[0][value]'] = $this->randomName();
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name'])), 'Term updated successfully.');
+    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name[0][value]'])), 'Term updated successfully.');
 
     // Delete the vocabulary.
     $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
-    $this->assertRaw(t('Are you sure you want to delete the term %name?', array('%name' => $edit['name'])), 'Delete taxonomy term form opened successfully.');
+    $this->assertRaw(t('Are you sure you want to delete the term %name?', array('%name' => $edit['name[0][value]'])), 'Delete taxonomy term form opened successfully.');
 
     // Confirm deletion.
     $this->drupalPostForm(NULL, NULL, t('Delete'));
-    $this->assertRaw(t('Deleted term %name.', array('%name' => $edit['name'])), 'Term deleted.');
+    $this->assertRaw(t('Deleted term %name.', array('%name' => $edit['name[0][value]'])), 'Term deleted.');
 
     // Test as user with "edit" permissions.
     $user = $this->drupalCreateUser(array("edit terms in {$vocabulary->id()}"));
@@ -82,9 +82,9 @@ function testVocabularyPermissionsTaxonomyTerm() {
     $this->assertResponse(200);
     $this->assertText($term->getName(), 'Edit taxonomy term form opened successfully.');
 
-    $edit['name'] = $this->randomName();
+    $edit['name[0][value]'] = $this->randomName();
     $this->drupalPostForm(NULL, $edit, t('Save'));
-    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name'])), 'Term updated successfully.');
+    $this->assertRaw(t('Updated term %name.', array('%name' => $edit['name[0][value]'])), 'Term updated successfully.');
 
     // Delete the vocabulary.
     $this->drupalGet('taxonomy/term/' . $term->id() . '/delete');
diff --git a/core/modules/taxonomy/taxonomy.module b/core/modules/taxonomy/taxonomy.module
index f7dceca326fd3fa70410089ff770b9bd5c699c7b..703a4a7cb7c1e0d8e0745422f32016774c5caa56 100644
--- a/core/modules/taxonomy/taxonomy.module
+++ b/core/modules/taxonomy/taxonomy.module
@@ -132,38 +132,6 @@ function taxonomy_term_uri($term) {
   ));
 }
 
-/**
- * Implements hook_entity_extra_field_info().
- */
-function taxonomy_entity_extra_field_info() {
-  $return = array();
-  foreach (entity_get_bundles('taxonomy_term') as $bundle => $bundle_info) {
-    $return['taxonomy_term'][$bundle] = array(
-      'form' => array(
-        'name' => array(
-          'label' => t('Name'),
-          'description' => t('Term name textfield'),
-          'weight' => -5,
-        ),
-        'description' => array(
-          'label' => t('Description'),
-          'description' => t('Term description textarea'),
-          'weight' => 0,
-        ),
-      ),
-      'display' => array(
-        'description' => array(
-          'label' => t('Description'),
-          'description' => t('Term description'),
-          'weight' => 0,
-        ),
-      ),
-    );
-  }
-
-  return $return;
-}
-
 /**
  * Return nodes attached to a term across all field instances.
  *
@@ -349,7 +317,8 @@ function template_preprocess_taxonomy_term(&$variables) {
 
   $variables['url'] = $term->url();
   // We use name here because that is what appears in the UI.
-  $variables['name'] = String::checkPlain($term->getName());
+  $variables['name'] = $variables['elements']['name'];
+  unset($variables['elements']['name']);
   $variables['page'] = $variables['view_mode'] == 'full' && taxonomy_term_is_page($term);
 
   // Helpful $content variable for templates.
diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
index ba8550613710833045aca3cb42614ab42ccca1b0..f2c55e77af11cea9c9bcd55da443a488500e74ea 100644
--- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
+++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
@@ -19,7 +19,7 @@
  *   field_types = {
  *     "text",
  *     "text_long",
- *     "text_with_summary"
+ *     "text_with_summary",
  *   },
  *   edit = {
  *     "editor" = "plain_text"
diff --git a/core/profiles/standard/config/entity.form_display.node.article.default.yml b/core/profiles/standard/config/entity.form_display.node.article.default.yml
index 32fcba1caf26a4b1bfd546f2d4a694c4843378a8..ebdf6ed2c6b487259fb81b9f9d305e56d907000d 100644
--- a/core/profiles/standard/config/entity.form_display.node.article.default.yml
+++ b/core/profiles/standard/config/entity.form_display.node.article.default.yml
@@ -4,7 +4,7 @@ bundle: article
 mode: default
 content:
   title:
-    type: text_textfield
+    type: string
     weight: 0
     settings:
       size: 60