diff --git a/core/includes/common.inc b/core/includes/common.inc
index 8444244..dbceb0e 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -799,7 +799,7 @@ function drupal_process_attached(array $elements) {
  *   '#title' => t('Tick this box to type'),
  * );
  * $form['settings'] = array(
- *   '#type' => 'textfield',
+ *   '#type' => 'text',
  *   '#states' => array(
  *     // Only show this field when the 'toggle_me' checkbox is enabled.
  *     'visible' => array(
diff --git a/core/lib/Drupal/Core/Block/BlockBase.php b/core/lib/Drupal/Core/Block/BlockBase.php
index b8a7999..157f7cd 100644
--- a/core/lib/Drupal/Core/Block/BlockBase.php
+++ b/core/lib/Drupal/Core/Block/BlockBase.php
@@ -175,7 +175,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
       '#markup' => String::checkPlain($definition['admin_label']),
     );
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Title'),
       '#maxlength' => 255,
       '#default_value' => $this->label(),
diff --git a/core/lib/Drupal/Core/Database/Install/Tasks.php b/core/lib/Drupal/Core/Database/Install/Tasks.php
index 024bf5a..1f272c3 100644
--- a/core/lib/Drupal/Core/Database/Install/Tasks.php
+++ b/core/lib/Drupal/Core/Database/Install/Tasks.php
@@ -213,7 +213,7 @@ protected function checkEngineVersion() {
    */
   public function getFormOptions(array $database) {
     $form['database'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Database name'),
       '#default_value' => empty($database['database']) ? '' : $database['database'],
       '#size' => 45,
@@ -226,7 +226,7 @@ public function getFormOptions(array $database) {
     );
 
     $form['username'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Database username'),
       '#default_value' => empty($database['username']) ? '' : $database['username'],
       '#size' => 45,
@@ -255,7 +255,7 @@ public function getFormOptions(array $database) {
     $profile = drupal_get_profile();
     $db_prefix = ($profile == 'standard') ? 'drupal_' : $profile . '_';
     $form['advanced_options']['prefix'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Table name prefix'),
       '#default_value' => empty($database['prefix']) ? '' : $database['prefix'],
       '#size' => 45,
@@ -264,7 +264,7 @@ public function getFormOptions(array $database) {
     );
 
     $form['advanced_options']['host'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Host'),
       '#default_value' => empty($database['host']) ? 'localhost' : $database['host'],
       '#size' => 45,
diff --git a/core/lib/Drupal/Core/Datetime/Element/Datelist.php b/core/lib/Drupal/Core/Datetime/Element/Datelist.php
index c330a4f..cab792b 100644
--- a/core/lib/Drupal/Core/Datetime/Element/Datelist.php
+++ b/core/lib/Drupal/Core/Datetime/Element/Datelist.php
@@ -258,7 +258,7 @@ public static function processDatelist(&$element, FormStateInterface $form_state
 
       $element['#attributes']['title'] = $title;
       $element[$part] = array(
-        '#type' => in_array($part, $text_parts) ? 'textfield' : 'select',
+        '#type' => in_array($part, $text_parts) ? 'text' : 'select',
         '#title' => $title,
         '#title_display' => 'invisible',
         '#value' => $value,
diff --git a/core/lib/Drupal/Core/Display/VariantBase.php b/core/lib/Drupal/Core/Display/VariantBase.php
index c4c8c65..65ccb23 100644
--- a/core/lib/Drupal/Core/Display/VariantBase.php
+++ b/core/lib/Drupal/Core/Display/VariantBase.php
@@ -108,7 +108,7 @@ public function calculateDependencies() {
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#description' => $this->t('The label for this display variant.'),
       '#default_value' => $this->label(),
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php
index b1d2d8b..21be18c 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/BooleanFormatter.php
@@ -90,7 +90,7 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       '#options' => $formats,
     ];
     $form['format_custom_true'] = [
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Custom output for TRUE'),
       '#default_value' => $this->getSetting('format_custom_true'),
       '#states' => [
@@ -100,7 +100,7 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       ],
     ];
     $form['format_custom_false'] = [
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Custom output for FALSE'),
       '#default_value' => $this->getSetting('format_custom_false'),
       '#states' => [
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 563da20..2d6a5c4 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/BooleanItem.php
@@ -70,13 +70,13 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
     $element = array();
 
     $element['on_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('"On" label'),
       '#default_value' => $this->getSetting('on_label'),
       '#required' => TRUE,
     );
     $element['off_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('"Off" label'),
       '#default_value' => $this->getSetting('off_label'),
       '#required' => TRUE,
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
index 9f9bd0b..a08c950 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php
@@ -47,14 +47,14 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
       '#description' => t('The maximum value that should be allowed in this field. Leave blank for no maximum.'),
     );
     $element['prefix'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Prefix'),
       '#default_value' => $settings['prefix'],
       '#size' => 60,
       '#description' => t("Define a string that should be prefixed to the value, like '$ ' or '&euro; '. Leave blank for none. Separate singular and plural values with a pipe ('pound|pounds')."),
     );
     $element['suffix'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Suffix'),
       '#default_value' => $settings['suffix'],
       '#size' => 60,
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
index ce60ebc..66c22a9 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
@@ -38,7 +38,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EntityReferenceAutocompleteWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EntityReferenceAutocompleteWidget.php
index 2d99619..163bae6 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EntityReferenceAutocompleteWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EntityReferenceAutocompleteWidget.php
@@ -60,7 +60,7 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       '#required' => TRUE,
     );
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php
index 50f8006..8c3d9ef 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php
@@ -41,7 +41,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextareaWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextareaWidget.php
index 8658dd0..64b6431 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextareaWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextareaWidget.php
@@ -46,7 +46,7 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       '#min' => 1,
     );
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextfieldWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextfieldWidget.php
index 0ed4239..e6ee8d1 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextfieldWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringTextfieldWidget.php
@@ -46,7 +46,7 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       '#min' => 1,
     );
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
@@ -74,7 +74,7 @@ public function settingsSummary() {
    */
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
     $element['value'] = $element + array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => isset($items[$delta]->value) ? $items[$delta]->value : NULL,
       '#size' => $this->getSetting('size'),
       '#placeholder' => $this->getSetting('placeholder'),
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php
index 8be947c..827140a 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/UriWidget.php
@@ -46,7 +46,7 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
       '#min' => 1,
     );
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => $this->t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/lib/Drupal/Core/FileTransfer/FileTransfer.php b/core/lib/Drupal/Core/FileTransfer/FileTransfer.php
index d64624b..d6ab880 100644
--- a/core/lib/Drupal/Core/FileTransfer/FileTransfer.php
+++ b/core/lib/Drupal/Core/FileTransfer/FileTransfer.php
@@ -394,7 +394,7 @@ function setChroot() {
    */
   public function getSettingsForm() {
     $form['username'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Username'),
     );
     $form['password'] = array(
@@ -407,13 +407,13 @@ public function getSettingsForm() {
       '#title' => t('Advanced settings'),
     );
     $form['advanced']['hostname'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Host'),
       '#default_value' => 'localhost',
       '#description' => t('The connection will be created between your web server and the machine hosting the web server files. In the vast majority of cases, this will be the same machine, and "localhost" is correct.'),
     );
     $form['advanced']['port'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Port'),
       '#default_value' => NULL,
     );
diff --git a/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php b/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php
index 0354e25..4f3c652 100644
--- a/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php
+++ b/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php
@@ -150,7 +150,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#title' => $this->t('Site information'),
     );
     $form['site_information']['site_name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Site name'),
       '#required' => TRUE,
       '#weight' => -20,
@@ -169,7 +169,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#title' => $this->t('Site maintenance account'),
     );
     $form['admin_account']['account']['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Username'),
       '#maxlength' => USERNAME_MAX_LENGTH,
       '#description' => $this->t('Spaces are allowed; punctuation is not allowed except for periods, hyphens, and underscores.'),
diff --git a/core/lib/Drupal/Core/Render/Element/Item.php b/core/lib/Drupal/Core/Render/Element/Item.php
index 145b904..73264a6 100644
--- a/core/lib/Drupal/Core/Render/Element/Item.php
+++ b/core/lib/Drupal/Core/Render/Element/Item.php
@@ -24,7 +24,7 @@ class Item extends FormElement {
   public function getInfo() {
     return array(
       // Forms that show author fields to both anonymous and authenticated users
-      // need to dynamically switch between #type 'textfield' and #type 'item'
+      // need to dynamically switch between #type 'text' and #type 'item'
       // to automatically take over the authenticated user's information.
       // Therefore, we allow #type 'item' to receive input, which is internally
       // assigned by Form API based on the #default_value or #value properties.
diff --git a/core/lib/Drupal/Core/Render/Element/RenderElement.php b/core/lib/Drupal/Core/Render/Element/RenderElement.php
index 0283333..7184b05 100644
--- a/core/lib/Drupal/Core/Render/Element/RenderElement.php
+++ b/core/lib/Drupal/Core/Render/Element/RenderElement.php
@@ -198,7 +198,7 @@ public static function preRenderAjaxForm($element) {
           break;
 
         case 'password':
-        case 'textfield':
+        case 'text':
         case 'number':
         case 'tel':
         case 'textarea':
diff --git a/core/lib/Drupal/Core/Render/Element/Table.php b/core/lib/Drupal/Core/Render/Element/Table.php
index d61c110..6018db8 100644
--- a/core/lib/Drupal/Core/Render/Element/Table.php
+++ b/core/lib/Drupal/Core/Render/Element/Table.php
@@ -263,14 +263,14 @@ public static function validateTable(&$element, FormStateInterface $form_state,
    *   $form['table'][$row]['#weight'] = $thing['weight'];
    *
    *   $form['table'][$row]['title'] = array(
-   *     '#type' => 'textfield',
+   *     '#type' => 'text',
    *     '#default_value' => $thing['title'],
    *   );
    *
    *   // Optionally, to add tableDrag support:
    *   $form['table'][$row]['#attributes']['class'][] = 'draggable';
    *   $form['table'][$row]['weight'] = array(
-   *     '#type' => 'textfield',
+   *     '#type' => 'text',
    *     '#title' => t('Weight for @title', array('@title' => $thing['title'])),
    *     '#title_display' => 'invisible',
    *     '#size' => 4,
diff --git a/core/lib/Drupal/Core/Render/Element/Textfield.php b/core/lib/Drupal/Core/Render/Element/Textfield.php
index f6d9a5d..f9e70f5 100644
--- a/core/lib/Drupal/Core/Render/Element/Textfield.php
+++ b/core/lib/Drupal/Core/Render/Element/Textfield.php
@@ -13,7 +13,7 @@
 /**
  * Provides a one-line text field form element.
  *
- * @FormElement("textfield")
+ * @FormElement("text")
  */
 class Textfield extends FormElement {
 
@@ -54,7 +54,7 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
   }
 
   /**
-   * Prepares a #type 'textfield' render element for input.html.twig.
+   * Prepares a #type 'text' render element for input.html.twig.
    *
    * @param array $element
    *   An associative array containing the properties of the element.
diff --git a/core/modules/action/src/ActionFormBase.php b/core/modules/action/src/ActionFormBase.php
index 96bb63d..e3450ae 100644
--- a/core/modules/action/src/ActionFormBase.php
+++ b/core/modules/action/src/ActionFormBase.php
@@ -64,7 +64,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    */
   public function form(array $form, FormStateInterface $form_state) {
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#default_value' => $this->entity->label(),
       '#maxlength' => '255',
diff --git a/core/modules/action/src/Plugin/Action/EmailAction.php b/core/modules/action/src/Plugin/Action/EmailAction.php
index e56a887..6591a90 100644
--- a/core/modules/action/src/Plugin/Action/EmailAction.php
+++ b/core/modules/action/src/Plugin/Action/EmailAction.php
@@ -166,14 +166,14 @@ public function defaultConfiguration() {
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
     $form['recipient'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Recipient'),
       '#default_value' => $this->configuration['recipient'],
       '#maxlength' => '254',
       '#description' => t('The email address to which the message should be sent OR enter [node:author:mail], [comment:author:mail], etc. if you would like to send an email to the author of the original post.'),
     );
     $form['subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Subject'),
       '#default_value' => $this->configuration['subject'],
       '#maxlength' => '254',
diff --git a/core/modules/action/src/Plugin/Action/GotoAction.php b/core/modules/action/src/Plugin/Action/GotoAction.php
index 770f424..7ce9f02 100644
--- a/core/modules/action/src/Plugin/Action/GotoAction.php
+++ b/core/modules/action/src/Plugin/Action/GotoAction.php
@@ -99,7 +99,7 @@ public function defaultConfiguration() {
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
     $form['url'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('URL'),
       '#description' => t('The URL to which the user should be redirected. This can be an internal URL like node/1234 or an external URL like @url.', array('@url' => 'http://example.com')),
       '#default_value' => $this->configuration['url'],
diff --git a/core/modules/aggregator/src/Form/SettingsForm.php b/core/modules/aggregator/src/Form/SettingsForm.php
index 69c5ed6..c8a8efe 100644
--- a/core/modules/aggregator/src/Form/SettingsForm.php
+++ b/core/modules/aggregator/src/Form/SettingsForm.php
@@ -111,7 +111,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
     // Global aggregator settings.
     $form['aggregator_allowed_html_tags'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Allowed HTML tags'),
       '#size' => 80,
       '#maxlength' => 255,
diff --git a/core/modules/ban/src/Form/BanAdmin.php b/core/modules/ban/src/Form/BanAdmin.php
index 1690b91..d1a73fd 100644
--- a/core/modules/ban/src/Form/BanAdmin.php
+++ b/core/modules/ban/src/Form/BanAdmin.php
@@ -79,7 +79,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $default_
 
     $form['ip'] = array(
       '#title' => $this->t('IP address'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 48,
       '#maxlength' => 40,
       '#default_value' => $default_ip,
diff --git a/core/modules/block/src/Tests/BlockInterfaceTest.php b/core/modules/block/src/Tests/BlockInterfaceTest.php
index 08980c5..879c79b 100644
--- a/core/modules/block/src/Tests/BlockInterfaceTest.php
+++ b/core/modules/block/src/Tests/BlockInterfaceTest.php
@@ -79,7 +79,7 @@ public function testBlockInterface() {
         '#markup' => String::checkPlain($definition['admin_label']),
       ),
       'label' => array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => 'Title',
         '#maxlength' => 255,
         '#default_value' => 'Custom Display Message',
@@ -115,7 +115,7 @@ public function testBlockInterface() {
         ),
       ),
       'display_message' => array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => t('Display message'),
         '#default_value' => 'My custom display message.',
       ),
diff --git a/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestBlockInstantiation.php b/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestBlockInstantiation.php
index e9b4144..c2da9a6 100644
--- a/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestBlockInstantiation.php
+++ b/core/modules/block/tests/modules/block_test/src/Plugin/Block/TestBlockInstantiation.php
@@ -42,7 +42,7 @@ protected function blockAccess(AccountInterface $account) {
    */
   public function blockForm($form, FormStateInterface $form_state) {
     $form['display_message'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Display message'),
       '#default_value' => $this->configuration['display_message'],
     );
diff --git a/core/modules/block_content/src/BlockContentTypeForm.php b/core/modules/block_content/src/BlockContentTypeForm.php
index c0f9ec5..30208a0 100644
--- a/core/modules/block_content/src/BlockContentTypeForm.php
+++ b/core/modules/block_content/src/BlockContentTypeForm.php
@@ -29,7 +29,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $block_type = $this->entity;
 
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Label'),
       '#maxlength' => 255,
       '#default_value' => $block_type->label(),
diff --git a/core/modules/book/src/Form/BookAdminEditForm.php b/core/modules/book/src/Form/BookAdminEditForm.php
index 29fad42..00ff2d9 100644
--- a/core/modules/book/src/Form/BookAdminEditForm.php
+++ b/core/modules/book/src/Form/BookAdminEditForm.php
@@ -226,7 +226,7 @@ protected function bookAdminTableTree(array $tree, array &$form) {
 
       $form[$id]['title'] = [
         '#prefix' => !empty($indentation) ? drupal_render($indentation) : '',
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $data['link']['title'],
         '#maxlength' => 255,
         '#size' => 40,
diff --git a/core/modules/color/color.module b/core/modules/color/color.module
index 98678f7..ea00d4a 100644
--- a/core/modules/color/color.module
+++ b/core/modules/color/color.module
@@ -249,7 +249,7 @@ function color_scheme_form($complete_form, FormStateInterface $form_state, $them
   foreach ($palette as $name => $value) {
     if (isset($names[$name])) {
       $form['palette'][$name] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => String::checkPlain($names[$name]),
         '#value_callback' => 'color_palette_color_value',
         '#default_value' => $value,
diff --git a/core/modules/comment/src/CommentForm.php b/core/modules/comment/src/CommentForm.php
index 95629b2..086511b 100644
--- a/core/modules/comment/src/CommentForm.php
+++ b/core/modules/comment/src/CommentForm.php
@@ -141,7 +141,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     // Add the author name field depending on the current user.
     $form['author']['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Your name'),
       '#default_value' => $author,
       '#required' => ($this->currentUser->isAnonymous() && $anonymous_contact == COMMENT_ANONYMOUS_MUST_CONTACT),
diff --git a/core/modules/comment/src/CommentTypeForm.php b/core/modules/comment/src/CommentTypeForm.php
index 3c7ef6a..af0d49d 100644
--- a/core/modules/comment/src/CommentTypeForm.php
+++ b/core/modules/comment/src/CommentTypeForm.php
@@ -78,7 +78,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $comment_type = $this->entity;
 
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Label'),
       '#maxlength' => 255,
       '#default_value' => $comment_type->label(),
diff --git a/core/modules/comment/src/Plugin/views/field/Link.php b/core/modules/comment/src/Plugin/views/field/Link.php
index 70c5c0e..d7cc25f 100644
--- a/core/modules/comment/src/Plugin/views/field/Link.php
+++ b/core/modules/comment/src/Plugin/views/field/Link.php
@@ -75,7 +75,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['text'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Text to display'),
       '#default_value' => $this->options['text'],
     );
diff --git a/core/modules/config/src/Form/ConfigSingleImportForm.php b/core/modules/config/src/Form/ConfigSingleImportForm.php
index ee1dfde..d53893c 100644
--- a/core/modules/config/src/Form/ConfigSingleImportForm.php
+++ b/core/modules/config/src/Form/ConfigSingleImportForm.php
@@ -141,7 +141,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['config_name'] = array(
       '#title' => $this->t('Configuration name'),
       '#description' => $this->t('Enter the name of the configuration file without the <em>.yml</em> extension. (e.g. <em>system.site</em>)'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#states' => array(
         'required' => array(
           ':input[name="config_type"]' => array('value' => 'system.simple'),
@@ -163,7 +163,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
     $form['advanced']['custom_entity_id'] = array(
       '#title' => $this->t('Custom Entity ID'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#description' => $this->t('Specify a custom entity ID. This will override the entity ID in the configuration above.'),
     );
     $form['actions'] = array('#type' => 'actions');
diff --git a/core/modules/config/tests/config_test/src/ConfigTestForm.php b/core/modules/config/tests/config_test/src/ConfigTestForm.php
index e77ddb0..f0cf5b2 100644
--- a/core/modules/config/tests/config_test/src/ConfigTestForm.php
+++ b/core/modules/config/tests/config_test/src/ConfigTestForm.php
@@ -23,7 +23,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     $entity = $this->entity;
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Label',
       '#default_value' => $entity->label(),
       '#required' => TRUE,
diff --git a/core/modules/config_translation/src/FormElement/DateFormat.php b/core/modules/config_translation/src/FormElement/DateFormat.php
index 729afee..62a5762 100644
--- a/core/modules/config_translation/src/FormElement/DateFormat.php
+++ b/core/modules/config_translation/src/FormElement/DateFormat.php
@@ -26,7 +26,7 @@ public function getTranslationElement(LanguageInterface $translation_language, $
     $format = $this->t('Displayed as %date_format', array('%date_format' => \Drupal::service('date.formatter')->format(REQUEST_TIME, 'custom', $translation_config)));
 
     return array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#description' => $description,
       '#field_suffix' => ' <div class="edit-date-format-suffix"><small id="edit-date-format-suffix">' . $format . '</small></div>',
       '#ajax' => array(
diff --git a/core/modules/config_translation/src/FormElement/Textfield.php b/core/modules/config_translation/src/FormElement/Textfield.php
index 87632f4..5d7bb71 100644
--- a/core/modules/config_translation/src/FormElement/Textfield.php
+++ b/core/modules/config_translation/src/FormElement/Textfield.php
@@ -19,7 +19,7 @@ class Textfield extends FormElementBase {
    */
   public function getTranslationElement(LanguageInterface $translation_language, $source_config, $translation_config) {
     return array(
-      '#type' => 'textfield',
+      '#type' => 'text',
     ) + parent::getTranslationElement($translation_language, $source_config, $translation_config);
   }
 
diff --git a/core/modules/contact/src/ContactFormEditForm.php b/core/modules/contact/src/ContactFormEditForm.php
index 3300c59..89a9059 100644
--- a/core/modules/contact/src/ContactFormEditForm.php
+++ b/core/modules/contact/src/ContactFormEditForm.php
@@ -65,7 +65,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $default_form = $this->config('contact.settings')->get('default_form');
 
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#maxlength' => 255,
       '#default_value' => $contact_form->label(),
diff --git a/core/modules/contact/src/MessageForm.php b/core/modules/contact/src/MessageForm.php
index 908ed17..730a84d 100644
--- a/core/modules/contact/src/MessageForm.php
+++ b/core/modules/contact/src/MessageForm.php
@@ -98,7 +98,7 @@ public function form(array $form, FormStateInterface $form_state) {
     }
 
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Your name'),
       '#maxlength' => 255,
       '#required' => TRUE,
diff --git a/core/modules/content_translation/src/ContentTranslationHandler.php b/core/modules/content_translation/src/ContentTranslationHandler.php
index eab020f..69db9e7 100644
--- a/core/modules/content_translation/src/ContentTranslationHandler.php
+++ b/core/modules/content_translation/src/ContentTranslationHandler.php
@@ -410,7 +410,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En
 
       $date = $new_translation ? REQUEST_TIME : $metadata->getCreatedTime();
       $form['content_translation']['created'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => t('Authored on'),
         '#maxlength' => 25,
         '#description' => t('Format: %time. The date format is YYYY-MM-DD and %timezone is the time zone offset from UTC. Leave blank to use the time of form submission.', array('%time' => format_date(REQUEST_TIME, 'custom', 'Y-m-d H:i:s O'), '%timezone' => format_date(REQUEST_TIME, 'custom', 'O'))),
@@ -494,7 +494,7 @@ protected function addTranslatabilityClue(&$element) {
     // Elements which can have a #title attribute according to FAPI Reference.
     if (!isset($suffix)) {
       $suffix = ' <span class="translation-entity-all-languages">(' . t('all languages') . ')</span>';
-      $fapi_title_elements = array_flip(array('checkbox', 'checkboxes', 'date', 'details', 'fieldset', 'file', 'item', 'password', 'password_confirm', 'radio', 'radios', 'select', 'text_format', 'textarea', 'textfield', 'weight'));
+      $fapi_title_elements = array_flip(array('checkbox', 'checkboxes', 'date', 'details', 'fieldset', 'file', 'item', 'password', 'password_confirm', 'radio', 'radios', 'select', 'text_format', 'textarea', 'text', 'weight'));
     }
 
     // Update #title attribute for all elements that are allowed to have a
diff --git a/core/modules/content_translation/src/Plugin/views/field/TranslationLink.php b/core/modules/content_translation/src/Plugin/views/field/TranslationLink.php
index a084dfe..ff6f07e 100644
--- a/core/modules/content_translation/src/Plugin/views/field/TranslationLink.php
+++ b/core/modules/content_translation/src/Plugin/views/field/TranslationLink.php
@@ -35,7 +35,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['text'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Text to display'),
       '#default_value' => $this->options['text'],
     );
diff --git a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php
index 50febe5..e56bbff 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php
@@ -49,7 +49,7 @@ public function defaultValuesForm(array &$form, FormStateInterface $form_state)
           '#empty_value' => '',
         ),
         'default_date' => array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => t('Relative default value'),
           '#description' => t("Describe a time by reference to the current day, like '+90 days' (90 days from the day the field is created) or '+1 Saturday' (the next Saturday). See <a href=\"@url\">@strtotime</a> for more details.", array('@strtotime' => 'strtotime', '@url' => 'http://www.php.net/manual/en/function.strtotime.php')),
           '#default_value' => (isset($default_value[0]['default_date_type']) && $default_value[0]['default_date_type'] == static::DEFAULT_VALUE_CUSTOM) ? $default_value[0]['default_date'] : '',
diff --git a/core/modules/editor/editor.admin.inc b/core/modules/editor/editor.admin.inc
index 83bc2cf..1c64fb7 100644
--- a/core/modules/editor/editor.admin.inc
+++ b/core/modules/editor/editor.admin.inc
@@ -70,7 +70,7 @@ function editor_image_upload_settings_form(Editor $editor) {
   }
 
   $form['directory'] = array(
-    '#type' => 'textfield',
+    '#type' => 'text',
     '#default_value' => $image_upload['directory'],
     '#title' => t('Upload directory'),
     '#description' => t("A directory relative to Drupal's files directory where uploaded images will be stored."),
@@ -79,7 +79,7 @@ function editor_image_upload_settings_form(Editor $editor) {
 
   $default_max_size = format_size(file_upload_max_size());
   $form['max_size'] = array(
-    '#type' => 'textfield',
+    '#type' => 'text',
     '#default_value' => $image_upload['max_size'],
     '#title' => t('Maximum file size'),
     '#description' => t('If this is left empty, then the file size will be limited by the PHP maximum upload size of @size.', array('@size' => $default_max_size)),
diff --git a/core/modules/editor/src/Form/EditorImageDialog.php b/core/modules/editor/src/Form/EditorImageDialog.php
index b2fed13..722c53d 100644
--- a/core/modules/editor/src/Form/EditorImageDialog.php
+++ b/core/modules/editor/src/Form/EditorImageDialog.php
@@ -78,7 +78,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FilterFor
 
     $form['attributes']['src'] = array(
       '#title' => $this->t('URL'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => isset($image_element['src']) ? $image_element['src'] : '',
       '#maxlength' => 2048,
       '#required' => TRUE,
@@ -109,7 +109,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FilterFor
     $form['attributes']['alt'] = array(
       '#title' => $this->t('Alternative text'),
       '#placeholder' => $this->t('Short description for the visually impaired'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#required' => TRUE,
       '#required_error' => $this->t('Alternative text is required.<br />(Only in rare cases should this be left empty. To create empty alternative text, enter <code>""</code> — two double quotes without any content).'),
       '#default_value' => $alt,
diff --git a/core/modules/editor/src/Form/EditorLinkDialog.php b/core/modules/editor/src/Form/EditorLinkDialog.php
index c576389..ec0a246 100644
--- a/core/modules/editor/src/Form/EditorLinkDialog.php
+++ b/core/modules/editor/src/Form/EditorLinkDialog.php
@@ -48,7 +48,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FilterFor
     // generated link tag's attributes.
     $form['attributes']['href'] = array(
       '#title' => $this->t('URL'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => isset($input['href']) ? $input['href'] : '',
       '#maxlength' => 2048,
     );
diff --git a/core/modules/field/src/Tests/FieldAttachOtherTest.php b/core/modules/field/src/Tests/FieldAttachOtherTest.php
index f3b0f67..d847f67 100644
--- a/core/modules/field/src/Tests/FieldAttachOtherTest.php
+++ b/core/modules/field/src/Tests/FieldAttachOtherTest.php
@@ -261,11 +261,11 @@ function testEntityFormDisplayBuildForm() {
     $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->field_2->getLabel(), "Second field's form title is {$this->fieldTestData->field_2->getLabel()}");
     for ($delta = 0; $delta < $this->fieldTestData->field_storage->getCardinality(); $delta++) {
       // field_test_widget uses 'textfield'
-      $this->assertEqual($form[$this->fieldTestData->field_name]['widget'][$delta]['value']['#type'], 'textfield', "First field's form delta $delta widget is textfield");
+      $this->assertEqual($form[$this->fieldTestData->field_name]['widget'][$delta]['value']['#type'], 'text', "First field's form delta $delta widget is textfield");
     }
     for ($delta = 0; $delta < $this->fieldTestData->field_storage_2->getCardinality(); $delta++) {
       // field_test_widget uses 'textfield'
-      $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget'][$delta]['value']['#type'], 'textfield', "Second field's form delta $delta widget is textfield");
+      $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget'][$delta]['value']['#type'], 'text', "Second field's form delta $delta widget is textfield");
     }
 
     // Test generating widgets for all fields.
@@ -283,7 +283,7 @@ function testEntityFormDisplayBuildForm() {
     $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget']['#title'], $this->fieldTestData->field_2->getLabel(), "Second field's form title is {$this->fieldTestData->field_2->getLabel()}");
     for ($delta = 0; $delta < $this->fieldTestData->field_storage_2->getCardinality(); $delta++) {
       // field_test_widget uses 'textfield'
-      $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget'][$delta]['value']['#type'], 'textfield', "Second field's form delta $delta widget is textfield");
+      $this->assertEqual($form[$this->fieldTestData->field_name_2]['widget'][$delta]['value']['#type'], 'text', "Second field's form delta $delta widget is textfield");
     }
   }
 
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php
index d195a31..895cb72 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php
@@ -41,7 +41,7 @@ public static function defaultSettings() {
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['test_formatter_setting'] = array(
       '#title' => t('Setting'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 20,
       '#default_value' => $this->getSetting('test_formatter_setting'),
       '#required' => TRUE,
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php
index 84938ec..b95ed2d 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php
@@ -40,7 +40,7 @@ public static function defaultSettings() {
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['field_empty_setting'] = array(
       '#title' => t('Setting'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 20,
       '#default_value' => $this->getSetting('field_empty_setting'),
       '#required' => TRUE,
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php
index ca47572..32aba95 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php
@@ -42,7 +42,7 @@ public static function defaultSettings() {
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['test_formatter_setting_multiple'] = array(
       '#title' => t('Setting'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 20,
       '#default_value' => $this->getSetting('test_formatter_setting_multiple'),
       '#required' => TRUE,
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php
index 211c1cd..bd88670 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php
@@ -41,7 +41,7 @@ public static function defaultSettings() {
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['test_formatter_setting_additional'] = array(
       '#title' => t('Setting'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 20,
       '#default_value' => $this->getSetting('test_formatter_setting_additional'),
       '#required' => TRUE,
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php
index 9886b03..daa0672 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldType/TestItem.php
@@ -78,7 +78,7 @@ public static function schema(FieldStorageDefinitionInterface $field_definition)
    */
   public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
     $form['test_field_storage_setting'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Field test field storage setting'),
       '#default_value' => $this->getSetting('test_field_storage_setting'),
       '#required' => FALSE,
@@ -93,7 +93,7 @@ public function storageSettingsForm(array &$form, FormStateInterface $form_state
    */
   public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
     $form['test_field_setting'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Field test field setting'),
       '#default_value' => $this->getSetting('test_field_setting'),
       '#required' => FALSE,
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php
index 71b8afa..44dc0b9 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidget.php
@@ -41,7 +41,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['test_widget_setting'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Field test field widget setting'),
       '#description' => t('A dummy form element to simulate field widget setting.'),
       '#default_value' => $this->getSetting('test_widget_setting'),
@@ -64,7 +64,7 @@ public function settingsSummary() {
    */
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
     $element += array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => isset($items[$delta]->value) ? $items[$delta]->value : '',
     );
     return array('value' => $element);
diff --git a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php
index b8a0dd2..f06933d 100644
--- a/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php
+++ b/core/modules/field/tests/modules/field_test/src/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php
@@ -44,7 +44,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['test_widget_setting_multiple'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Field test field widget setting'),
       '#description' => t('A dummy form element to simulate field widget setting.'),
       '#default_value' => $this->getSetting('test_widget_setting_multiple'),
@@ -71,7 +71,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       $values[] = $item->value;
     }
     $element += array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => implode(', ', $values),
       '#element_validate' => array(array(get_class($this), 'multipleValidate')),
     );
diff --git a/core/modules/field/tests/modules/field_third_party_test/field_third_party_test.module b/core/modules/field/tests/modules/field_third_party_test/field_third_party_test.module
index 8726b18..e620df5 100644
--- a/core/modules/field/tests/modules/field_third_party_test/field_third_party_test.module
+++ b/core/modules/field/tests/modules/field_third_party_test/field_third_party_test.module
@@ -7,7 +7,7 @@
  */
 function field_third_party_test_field_widget_third_party_settings_form(\Drupal\Core\Field\WidgetInterface $plugin, \Drupal\Core\Field\FieldDefinitionInterface $field_definition, $form_mode, $form, FormStateInterface $form_state) {
   $element['field_test_widget_third_party_settings_form'] = array(
-    '#type' => 'textfield',
+    '#type' => 'text',
     '#title' => t('3rd party widget settings form'),
     '#default_value' => $plugin->getThirdPartySetting('field_third_party_test', 'field_test_widget_third_party_settings_form'),
   );
@@ -27,7 +27,7 @@ function field_third_party_test_field_widget_settings_summary_alter(&$summary, $
  */
 function field_third_party_test_field_formatter_third_party_settings_form(\Drupal\Core\Field\FormatterInterface $plugin, \Drupal\Core\Field\FieldDefinitionInterface $field_definition, $view_mode, $form, FormStateInterface $form_state) {
   $element['field_test_field_formatter_third_party_settings_form'] = array(
-    '#type' => 'textfield',
+    '#type' => 'text',
     '#title' => t('3rd party formatter settings form'),
     '#default_value' => $plugin->getThirdPartySetting('field_third_party_test', 'field_test_field_formatter_third_party_settings_form'),
   );
diff --git a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
index 94feeff..9293938 100644
--- a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
+++ b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
@@ -293,7 +293,7 @@ protected function buildFieldRow(FieldDefinitionInterface $field_definition, arr
         '#markup' => String::checkPlain($label),
       ),
       'weight' => array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Weight for @title', array('@title' => $label)),
         '#title_display' => 'invisible',
         '#default_value' => $display_options ? $display_options['weight'] : '0',
@@ -472,7 +472,7 @@ protected function buildExtraFieldRow($field_id, $extra_field) {
         '#markup' => $extra_field['label'],
       ),
       'weight' => array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Weight for @title', array('@title' => $extra_field['label'])),
         '#title_display' => 'invisible',
         '#default_value' => $display_options ? $display_options['weight'] : 0,
diff --git a/core/modules/field_ui/src/Form/EntityDisplayModeFormBase.php b/core/modules/field_ui/src/Form/EntityDisplayModeFormBase.php
index 0bdce49..7e487a5 100644
--- a/core/modules/field_ui/src/Form/EntityDisplayModeFormBase.php
+++ b/core/modules/field_ui/src/Form/EntityDisplayModeFormBase.php
@@ -75,7 +75,7 @@ protected function init(FormStateInterface $form_state) {
    */
   public function form(array $form, FormStateInterface $form_state) {
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Name'),
       '#maxlength' => 100,
       '#default_value' => $this->entity->label(),
diff --git a/core/modules/field_ui/src/Form/FieldEditForm.php b/core/modules/field_ui/src/Form/FieldEditForm.php
index 9abf3d5..47cb77e 100644
--- a/core/modules/field_ui/src/Form/FieldEditForm.php
+++ b/core/modules/field_ui/src/Form/FieldEditForm.php
@@ -116,7 +116,7 @@ public function buildForm(array $form, FormStateInterface $form_state, FieldConf
 
     // Build the configurable field values.
     $form['field']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#default_value' => $this->field->getLabel() ?: $field_storage->getName(),
       '#required' => TRUE,
diff --git a/core/modules/field_ui/src/Form/FieldStorageAddForm.php b/core/modules/field_ui/src/Form/FieldStorageAddForm.php
index 1c95aa6..46fcb06 100644
--- a/core/modules/field_ui/src/Form/FieldStorageAddForm.php
+++ b/core/modules/field_ui/src/Form/FieldStorageAddForm.php
@@ -170,7 +170,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t
       ),
     );
     $form['new_storage_wrapper']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#size' => 15,
     );
@@ -198,7 +198,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $entity_t
     // are displayed inline.
     if ($existing_field_storage_options) {
       $form['existing_storage_label'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Label'),
         '#size' => 15,
         '#states' => array(
diff --git a/core/modules/file/config/install/file.settings.yml b/core/modules/file/config/install/file.settings.yml
index e652277..736715d 100644
--- a/core/modules/file/config/install/file.settings.yml
+++ b/core/modules/file/config/install/file.settings.yml
@@ -1,5 +1,5 @@
 description:
-  type: 'textfield'
+  type: 'text'
   length: 128
 icon:
   directory: 'core/modules/file/icons'
diff --git a/core/modules/file/src/Plugin/Field/FieldType/FileItem.php b/core/modules/file/src/Plugin/Field/FieldType/FileItem.php
index 6677db2..6a0df8a 100644
--- a/core/modules/file/src/Plugin/Field/FieldType/FileItem.php
+++ b/core/modules/file/src/Plugin/Field/FieldType/FileItem.php
@@ -154,7 +154,7 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
     $settings = $this->getSettings();
 
     $element['file_directory'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('File directory'),
       '#default_value' => $settings['file_directory'],
       '#description' => t('Optional subdirectory within the upload destination where files will be stored. Do not include preceding or trailing slashes.'),
@@ -165,7 +165,7 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
     // Make the extension list a little more human-friendly by comma-separation.
     $extensions = str_replace(' ', ', ', $settings['file_extensions']);
     $element['file_extensions'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Allowed file extensions'),
       '#default_value' => $extensions,
       '#description' => t('Separate extensions with a space or comma and do not include the leading dot.'),
@@ -178,7 +178,7 @@ public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
     );
 
     $element['max_filesize'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Maximum upload size'),
       '#default_value' => $settings['max_filesize'],
       '#description' => t('Enter a value like "512" (bytes), "80 KB" (kilobytes) or "50 MB" (megabytes) in order to restrict the allowed file size. If left empty the file sizes will be limited only by PHP\'s maximum post and file upload sizes (current limit <strong>%limit</strong>).', array('%limit' => format_size(file_upload_max_size()))),
diff --git a/core/modules/file/tests/file_module_test/src/Form/FileModuleTestForm.php b/core/modules/file/tests/file_module_test/src/Form/FileModuleTestForm.php
index 0529090..c924b28 100644
--- a/core/modules/file/tests/file_module_test/src/Form/FileModuleTestForm.php
+++ b/core/modules/file/tests/file_module_test/src/Form/FileModuleTestForm.php
@@ -55,8 +55,8 @@ public function buildForm(array $form, FormStateInterface $form_state, $tree = T
       $form['nested']['file']['#default_value'] = $extended ? array('fids' => $default_fids) : $default_fids;
     }
 
-    $form['textfield'] = array(
-      '#type' => 'textfield',
+    $form['text'] = array(
+      '#type' => 'text',
       '#title' => $this->t('Type a value and ensure it stays'),
     );
 
diff --git a/core/modules/file/tests/file_test/src/Form/FileTestForm.php b/core/modules/file/tests/file_test/src/Form/FileTestForm.php
index f903bf0..ece419c 100644
--- a/core/modules/file/tests/file_test/src/Form/FileTestForm.php
+++ b/core/modules/file/tests/file_test/src/Form/FileTestForm.php
@@ -40,13 +40,13 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#default_value' => FILE_EXISTS_RENAME,
     );
     $form['file_subdir'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Subdirectory for test file'),
       '#default_value' => '',
     );
 
     $form['extensions'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Allowed extensions.'),
       '#default_value' => '',
     );
diff --git a/core/modules/filter/src/FilterFormatFormBase.php b/core/modules/filter/src/FilterFormatFormBase.php
index c370279..760ef02 100644
--- a/core/modules/filter/src/FilterFormatFormBase.php
+++ b/core/modules/filter/src/FilterFormatFormBase.php
@@ -56,7 +56,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $form['#attached']['library'][] = 'filter/drupal.filter.admin';
 
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Name'),
       '#default_value' => $format->label(),
       '#required' => TRUE,
diff --git a/core/modules/filter/src/Plugin/Filter/FilterHtml.php b/core/modules/filter/src/Plugin/Filter/FilterHtml.php
index b76933e..3dfc540 100644
--- a/core/modules/filter/src/Plugin/Filter/FilterHtml.php
+++ b/core/modules/filter/src/Plugin/Filter/FilterHtml.php
@@ -34,7 +34,7 @@ class FilterHtml extends FilterBase {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $form['allowed_html'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Allowed HTML tags'),
       '#default_value' => $this->settings['allowed_html'],
       '#maxlength' => 1024,
diff --git a/core/modules/filter/src/Tests/TextFormatElementFormTest.php b/core/modules/filter/src/Tests/TextFormatElementFormTest.php
index b889c4a..208e55d 100644
--- a/core/modules/filter/src/Tests/TextFormatElementFormTest.php
+++ b/core/modules/filter/src/Tests/TextFormatElementFormTest.php
@@ -84,7 +84,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#type' => 'text_format',
       '#required' => TRUE,
       '#title' => 'Text',
-      '#base_type' => 'textfield',
+      '#base_type' => 'text',
       '#format' => NULL,
       '#default_value' => 'test value',
     ];
diff --git a/core/modules/image/src/Form/ImageStyleFormBase.php b/core/modules/image/src/Form/ImageStyleFormBase.php
index f5e432c..a89070f 100644
--- a/core/modules/image/src/Form/ImageStyleFormBase.php
+++ b/core/modules/image/src/Form/ImageStyleFormBase.php
@@ -56,7 +56,7 @@ public static function create(ContainerInterface $container) {
   public function form(array $form, FormStateInterface $form_state) {
 
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Image style name'),
       '#default_value' => $this->entity->label(),
       '#required' => TRUE,
diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
index 7358f10..b430d92 100644
--- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
+++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
@@ -424,14 +424,14 @@ protected function defaultImageForm(array &$element, array $settings) {
       '#upload_validators' => $this->getUploadValidators(),
     );
     $element['default_image']['alt'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Alternative text'),
       '#description' => t('This text will be used by screen readers, search engines, and when the image cannot be loaded.'),
       '#default_value' => $settings['default_image']['alt'],
       '#maxlength' => 512,
     );
     $element['default_image']['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Title'),
       '#description' => t('The title attribute is used as a tooltip when the mouse hovers over the image.'),
       '#default_value' => $settings['default_image']['title'],
diff --git a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
index e2b6816..15c1fcd 100644
--- a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
+++ b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
@@ -226,7 +226,7 @@ public static function process($element, FormStateInterface $form_state, $form)
     // Add the additional alt and title fields.
     $element['alt'] = array(
       '#title' => t('Alternative text'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => isset($item['alt']) ? $item['alt'] : '',
       '#description' => t('This text will be used by screen readers, search engines, or when the image cannot be loaded.'),
       // @see https://drupal.org/node/465106#alt-text
@@ -237,7 +237,7 @@ public static function process($element, FormStateInterface $form_state, $form)
       '#element_validate' => $element['#alt_field_required'] == 1 ? array(array(get_called_class(), 'validateRequiredFields')) : array(),
     );
     $element['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Title'),
       '#default_value' => isset($item['title']) ? $item['title'] : '',
       '#description' => t('The title is used as a tool tip when the user hovers the mouse over the image.'),
diff --git a/core/modules/image/src/Plugin/ImageEffect/RotateImageEffect.php b/core/modules/image/src/Plugin/ImageEffect/RotateImageEffect.php
index 9964886..f57bdfd 100644
--- a/core/modules/image/src/Plugin/ImageEffect/RotateImageEffect.php
+++ b/core/modules/image/src/Plugin/ImageEffect/RotateImageEffect.php
@@ -94,7 +94,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
       '#required' => TRUE,
     );
     $form['bgcolor'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->configuration['bgcolor'],
       '#title' => t('Background color'),
       '#description' => t('The background color to use for exposed areas of the image. Use web-style hex colors (#FFFFFF for white, #000000 for black). Leave blank for transparency on image types that support it.'),
diff --git a/core/modules/language/src/Form/LanguageFormBase.php b/core/modules/language/src/Form/LanguageFormBase.php
index a272166..c226ee4 100644
--- a/core/modules/language/src/Form/LanguageFormBase.php
+++ b/core/modules/language/src/Form/LanguageFormBase.php
@@ -64,7 +64,7 @@ public function commonForm(array &$form) {
     }
     else {
       $form['langcode'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Language code'),
         '#maxlength' => 12,
         '#required' => TRUE,
@@ -74,7 +74,7 @@ public function commonForm(array &$form) {
       );
     }
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Language name in English'),
       '#maxlength' => 64,
       '#default_value' => $language->label(),
diff --git a/core/modules/language/src/Form/NegotiationBrowserForm.php b/core/modules/language/src/Form/NegotiationBrowserForm.php
index 14ebb62..db3c15a 100644
--- a/core/modules/language/src/Form/NegotiationBrowserForm.php
+++ b/core/modules/language/src/Form/NegotiationBrowserForm.php
@@ -98,7 +98,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         'browser_langcode' => array(
           '#title' => $this->t('Browser language code'),
           '#title_display' => 'invisible',
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $browser_langcode,
           '#size' => 20,
           '#required' => TRUE,
@@ -121,7 +121,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#tree' => TRUE,
     );
     $form['new_mapping']['browser_langcode'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Browser language code'),
       '#description' => $this->t('Use language codes as <a href="@w3ctags">defined by the W3C</a> for interoperability. <em>Examples: "en", "en-gb" and "zh-hant".</em>', array('@w3ctags' => 'http://www.w3.org/International/articles/language-tags/')),
       '#size' => 20,
diff --git a/core/modules/language/src/Form/NegotiationSessionForm.php b/core/modules/language/src/Form/NegotiationSessionForm.php
index fff1dd5..ef4f662 100644
--- a/core/modules/language/src/Form/NegotiationSessionForm.php
+++ b/core/modules/language/src/Form/NegotiationSessionForm.php
@@ -36,7 +36,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $config = $this->config('language.negotiation');
     $form['language_negotiation_session_param'] = array(
       '#title' => $this->t('Request/session parameter'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $config->get('session.parameter'),
       '#description' => $this->t('Name of the request/session parameter used to determine the desired language.'),
     );
diff --git a/core/modules/language/src/Form/NegotiationUrlForm.php b/core/modules/language/src/Form/NegotiationUrlForm.php
index 49110a3..44808fc 100644
--- a/core/modules/language/src/Form/NegotiationUrlForm.php
+++ b/core/modules/language/src/Form/NegotiationUrlForm.php
@@ -116,14 +116,14 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     foreach ($languages as $langcode => $language) {
       $t_args = array('%language' => $language->getName(), '%langcode' => $language->getId());
       $form['prefix'][$langcode] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $language->isDefault() ? $this->t('%language (%langcode) path prefix (Default language)', $t_args) : $this->t('%language (%langcode) path prefix', $t_args),
         '#maxlength' => 64,
         '#default_value' => isset($prefixes[$langcode]) ? $prefixes[$langcode] : '',
         '#field_prefix' => $base_url . '/',
       );
       $form['domain'][$langcode] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('%language (%langcode) domain', array('%language' => $language->getName(), '%langcode' => $language->getId())),
         '#maxlength' => 128,
         '#default_value' => isset($domains[$langcode]) ? $domains[$langcode] : '',
diff --git a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
index c402f76..b7e14b8 100644
--- a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
@@ -210,7 +210,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
     }
 
     $element['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Link text'),
       '#placeholder' => $this->getSetting('placeholder_title'),
       '#default_value' => isset($items[$delta]->title) ? $items[$delta]->title : NULL,
@@ -282,13 +282,13 @@ public function settingsForm(array $form, FormStateInterface $form_state) {
     $elements = parent::settingsForm($form, $form_state);
 
     $elements['placeholder_url'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Placeholder for URL'),
       '#default_value' => $this->getSetting('placeholder_url'),
       '#description' => $this->t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
     );
     $elements['placeholder_title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Placeholder for link text'),
       '#default_value' => $this->getSetting('placeholder_title'),
       '#description' => $this->t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 971b47d..3c65f72 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -705,7 +705,7 @@ function locale_translate_english() {
  */
 function locale_form_system_file_system_settings_alter(&$form, FormStateInterface $form_state) {
   $form['translation_path'] = array(
-    '#type' => 'textfield',
+    '#type' => 'text',
     '#title' => t('Interface translations directory'),
     '#default_value' => \Drupal::configFactory()->getEditable('locale.settings')->get('translation.path'),
     '#maxlength' => 255,
diff --git a/core/modules/menu_ui/menu_ui.module b/core/modules/menu_ui/menu_ui.module
index 95c9e3e..0ae3f03 100644
--- a/core/modules/menu_ui/menu_ui.module
+++ b/core/modules/menu_ui/menu_ui.module
@@ -309,7 +309,7 @@ function menu_ui_form_node_form_alter(&$form, FormStateInterface $form_state) {
   }
 
   $form['menu']['link']['title'] = array(
-    '#type' => 'textfield',
+    '#type' => 'text',
     '#title' => t('Menu link title'),
     '#default_value' => $defaults['title'],
   );
diff --git a/core/modules/menu_ui/src/MenuForm.php b/core/modules/menu_ui/src/MenuForm.php
index fd38c02..dfe3d75 100644
--- a/core/modules/menu_ui/src/MenuForm.php
+++ b/core/modules/menu_ui/src/MenuForm.php
@@ -104,7 +104,7 @@ public function form(array $form, FormStateInterface $form_state) {
     }
 
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Title'),
       '#default_value' => $menu->label(),
       '#required' => TRUE,
@@ -125,7 +125,7 @@ public function form(array $form, FormStateInterface $form_state) {
       '#disabled' => !$menu->isNew() || $menu->isLocked(),
     );
     $form['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Administrative summary'),
       '#maxlength' => 512,
       '#default_value' => $menu->getDescription(),
diff --git a/core/modules/migrate_drupal/src/Tests/Table/d6/ProfileFields.php b/core/modules/migrate_drupal/src/Tests/Table/d6/ProfileFields.php
index 7ff0a4c..8fc7155 100644
--- a/core/modules/migrate_drupal/src/Tests/Table/d6/ProfileFields.php
+++ b/core/modules/migrate_drupal/src/Tests/Table/d6/ProfileFields.php
@@ -120,7 +120,7 @@ public function load() {
       'explanation' => 'List your favorite color',
       'category' => 'Personal information',
       'page' => 'Peole whose favorite color is %value',
-      'type' => 'textfield',
+      'type' => 'text',
       'weight' => '-10',
       'required' => '0',
       'register' => '1',
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php
index 04fa228..b9db9cf 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileConfigsTest.php
@@ -47,7 +47,7 @@ protected function setUp() {
    */
   public function testFileSettings() {
     $config = $this->config('file.settings');
-    $this->assertIdentical($config->get('description.type'), 'textfield');
+    $this->assertIdentical($config->get('description.type'), 'text');
     $this->assertIdentical($config->get('description.length'), 128);
     $this->assertIdentical($config->get('icon.directory'), 'sites/default/files/icons');
     $this->assertConfigSchema(\Drupal::service('config.typed'), 'file.settings', $config->get());
diff --git a/core/modules/migrate_drupal/tests/src/Unit/source/d6/ProfileFieldTest.php b/core/modules/migrate_drupal/tests/src/Unit/source/d6/ProfileFieldTest.php
index b66c3c9..6bfb28a 100644
--- a/core/modules/migrate_drupal/tests/src/Unit/source/d6/ProfileFieldTest.php
+++ b/core/modules/migrate_drupal/tests/src/Unit/source/d6/ProfileFieldTest.php
@@ -42,7 +42,7 @@ class ProfileFieldTest extends MigrateSqlSourceTestCase {
       'explanation' => 'First name user',
       'category' => 'profile',
       'page' => '',
-      'type' => 'textfield',
+      'type' => 'text',
       'weight' => 0,
       'required' => 1,
       'register' => 0,
@@ -57,7 +57,7 @@ class ProfileFieldTest extends MigrateSqlSourceTestCase {
       'explanation' => 'Last name user',
       'category' => 'profile',
       'page' => '',
-      'type' => 'textfield',
+      'type' => 'text',
       'weight' => 0,
       'required' => 0,
       'register' => 0,
diff --git a/core/modules/node/src/NodeTypeForm.php b/core/modules/node/src/NodeTypeForm.php
index b5c4674..ee17390 100644
--- a/core/modules/node/src/NodeTypeForm.php
+++ b/core/modules/node/src/NodeTypeForm.php
@@ -72,7 +72,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     $form['name'] = array(
       '#title' => t('Name'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $type->label(),
       '#description' => t('The human-readable name of this content type. This text will be displayed as part of the list on the <em>Add content</em> page. This name must be unique.'),
       '#required' => TRUE,
@@ -115,7 +115,7 @@ public function form(array $form, FormStateInterface $form_state) {
     );
     $form['submission']['title_label'] = array(
       '#title' => t('Title field label'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $fields['title']->getLabel(),
       '#required' => TRUE,
     );
diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php
index 83140c1..f6c6ceb 100644
--- a/core/modules/node/src/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/src/Plugin/Search/NodeSearch.php
@@ -457,19 +457,19 @@ public function searchFormAlter(array &$form, FormStateInterface $form_state) {
       '#suffix' => '</div>',
     );
     $form['advanced']['keywords-fieldset']['keywords']['or'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Containing any of the words'),
       '#size' => 30,
       '#maxlength' => 255,
     );
     $form['advanced']['keywords-fieldset']['keywords']['phrase'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Containing the phrase'),
       '#size' => 30,
       '#maxlength' => 255,
     );
     $form['advanced']['keywords-fieldset']['keywords']['negative'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Containing none of the words'),
       '#size' => 30,
       '#maxlength' => 255,
diff --git a/core/modules/node/src/Plugin/views/field/Link.php b/core/modules/node/src/Plugin/views/field/Link.php
index 54b51ae..504b58f 100644
--- a/core/modules/node/src/Plugin/views/field/Link.php
+++ b/core/modules/node/src/Plugin/views/field/Link.php
@@ -41,7 +41,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['text'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Text to display'),
       '#default_value' => $this->options['text'],
     );
diff --git a/core/modules/path/src/Form/PathFormBase.php b/core/modules/path/src/Form/PathFormBase.php
index c064a00..acdd987 100644
--- a/core/modules/path/src/Form/PathFormBase.php
+++ b/core/modules/path/src/Form/PathFormBase.php
@@ -89,7 +89,7 @@ public static function create(ContainerInterface $container) {
   public function buildForm(array $form, FormStateInterface $form_state, $pid = NULL) {
     $this->path = $this->buildPath($pid);
     $form['source'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Existing system path'),
       '#default_value' => $this->path['source'],
       '#maxlength' => 255,
@@ -99,7 +99,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $pid = NU
       '#required' => TRUE,
     );
     $form['alias'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Path alias'),
       '#default_value' => $this->path['alias'],
       '#maxlength' => 255,
diff --git a/core/modules/path/src/Plugin/Field/FieldWidget/PathWidget.php b/core/modules/path/src/Plugin/Field/FieldWidget/PathWidget.php
index 03f15b3..13e4f4e 100644
--- a/core/modules/path/src/Plugin/Field/FieldWidget/PathWidget.php
+++ b/core/modules/path/src/Plugin/Field/FieldWidget/PathWidget.php
@@ -53,7 +53,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       '#element_validate' => array(array(get_class($this), 'validateFormElement')),
     );
     $element['alias'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $element['#title'],
       '#default_value' => $path['alias'],
       '#required' => $element['#required'],
diff --git a/core/modules/responsive_image/src/ResponsiveImageStyleForm.php b/core/modules/responsive_image/src/ResponsiveImageStyleForm.php
index 365f7a5..8ab1a3a 100644
--- a/core/modules/responsive_image/src/ResponsiveImageStyleForm.php
+++ b/core/modules/responsive_image/src/ResponsiveImageStyleForm.php
@@ -66,7 +66,7 @@ public function form(array $form, FormStateInterface $form_state) {
     /** @var \Drupal\responsive_image\ResponsiveImageStyleInterface $responsive_image_style */
     $responsive_image_style = $this->entity;
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#maxlength' => 255,
       '#default_value' => $responsive_image_style->label(),
diff --git a/core/modules/rest/src/Plugin/views/row/DataFieldRow.php b/core/modules/rest/src/Plugin/views/row/DataFieldRow.php
index 71502f5..30f6b0b 100644
--- a/core/modules/rest/src/Plugin/views/row/DataFieldRow.php
+++ b/core/modules/rest/src/Plugin/views/row/DataFieldRow.php
@@ -94,7 +94,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['field_options'][$id]['alias'] = array(
           '#title' => $this->t('Alias for @id', array('@id' => $id)),
           '#title_display' => 'invisible',
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => isset($options[$id]['alias']) ? $options[$id]['alias'] : '',
           '#element_validate' => array(array($this, 'validateAliasName')),
         );
diff --git a/core/modules/search/src/Form/SearchPageFormBase.php b/core/modules/search/src/Form/SearchPageFormBase.php
index 95afb4b..27e74ba 100644
--- a/core/modules/search/src/Form/SearchPageFormBase.php
+++ b/core/modules/search/src/Form/SearchPageFormBase.php
@@ -90,7 +90,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    */
   public function form(array $form, FormStateInterface $form_state) {
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#description' => $this->t('The label for this search page.'),
       '#default_value' => $this->entity->label(),
@@ -107,7 +107,7 @@ public function form(array $form, FormStateInterface $form_state) {
       ),
     );
     $form['path'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Path'),
       '#field_prefix' => 'search/',
       '#default_value' => $this->entity->getPath(),
diff --git a/core/modules/search/src/Plugin/views/filter/Search.php b/core/modules/search/src/Plugin/views/filter/Search.php
index c5665cb..e5d1310 100644
--- a/core/modules/search/src/Plugin/views/filter/Search.php
+++ b/core/modules/search/src/Plugin/views/filter/Search.php
@@ -88,7 +88,7 @@ protected function operatorForm(&$form, FormStateInterface $form_state) {
    */
   protected function valueForm(&$form, FormStateInterface $form_state) {
     $form['value'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 15,
       '#default_value' => $this->value,
       '#attributes' => array('title' => $this->t('Search keywords')),
diff --git a/core/modules/search/tests/modules/search_embedded_form/src/Form/SearchEmbeddedForm.php b/core/modules/search/tests/modules/search_embedded_form/src/Form/SearchEmbeddedForm.php
index 3bb04e0..90d2143 100644
--- a/core/modules/search/tests/modules/search_embedded_form/src/Form/SearchEmbeddedForm.php
+++ b/core/modules/search/tests/modules/search_embedded_form/src/Form/SearchEmbeddedForm.php
@@ -29,7 +29,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $count = \Drupal::state()->get('search_embedded_form.submit_count');
 
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Your name'),
       '#maxlength' => 255,
       '#default_value' => '',
diff --git a/core/modules/shortcut/src/Form/SwitchShortcutSet.php b/core/modules/shortcut/src/Form/SwitchShortcutSet.php
index 0efa824..1035749 100644
--- a/core/modules/shortcut/src/Form/SwitchShortcutSet.php
+++ b/core/modules/shortcut/src/Form/SwitchShortcutSet.php
@@ -103,7 +103,7 @@ public function buildForm(array $form, FormStateInterface $form_state, UserInter
       );
 
       $form['label'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Label'),
         '#description' => $this->t('The new set is created by copying items from your default shortcut set.'),
         '#access' => $add_access,
diff --git a/core/modules/shortcut/src/ShortcutSetForm.php b/core/modules/shortcut/src/ShortcutSetForm.php
index 9708aee..1281274 100644
--- a/core/modules/shortcut/src/ShortcutSetForm.php
+++ b/core/modules/shortcut/src/ShortcutSetForm.php
@@ -23,7 +23,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     $entity = $this->entity;
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Set name'),
       '#description' => t('The new set is created by copying items from your default shortcut set.'),
       '#required' => TRUE,
diff --git a/core/modules/simpletest/src/Form/SimpletestSettingsForm.php b/core/modules/simpletest/src/Form/SimpletestSettingsForm.php
index e6d4d4d..ea76511 100644
--- a/core/modules/simpletest/src/Form/SimpletestSettingsForm.php
+++ b/core/modules/simpletest/src/Form/SimpletestSettingsForm.php
@@ -73,7 +73,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $username = $config->get('httpauth.username');
     $password = $config->get('httpauth.password');
     $form['httpauth']['simpletest_httpauth_username'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Username'),
       '#default_value' => $username,
     );
diff --git a/core/modules/syslog/syslog.module b/core/modules/syslog/syslog.module
index 61873f9..5270491 100644
--- a/core/modules/syslog/syslog.module
+++ b/core/modules/syslog/syslog.module
@@ -36,7 +36,7 @@ function syslog_form_system_logging_settings_alter(&$form, FormStateInterface $f
   $config = \Drupal::configFactory()->getEditable('syslog.settings');
   $help = \Drupal::moduleHandler()->moduleExists('help') ? ' ' . \Drupal::l(t('More information'), new Url('help.page', ['name' => 'syslog'])) . '.' : NULL;
   $form['syslog_identity'] = array(
-    '#type'          => 'textfield',
+    '#type'          => 'text',
     '#title'         => t('Syslog identity'),
     '#default_value' => $config->get('identity'),
     '#description'   => t('A string that will be prepended to every message logged to Syslog. If you have multiple sites logging to the same Syslog log file, a unique identity per site makes it easy to tell the log entries apart.') . $help,
diff --git a/core/modules/system/src/Form/DateFormatFormBase.php b/core/modules/system/src/Form/DateFormatFormBase.php
index c843ba2..4011a7e 100644
--- a/core/modules/system/src/Form/DateFormatFormBase.php
+++ b/core/modules/system/src/Form/DateFormatFormBase.php
@@ -108,7 +108,7 @@ public static function dateTimeLookup(array $form, FormStateInterface $form_stat
    */
   public function form(array $form, FormStateInterface $form_state) {
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Name',
       '#maxlength' => 100,
       '#description' => t('Name of the date format'),
@@ -128,7 +128,7 @@ public function form(array $form, FormStateInterface $form_state) {
     );
 
     $form['date_format_pattern'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Format string'),
       '#maxlength' => 100,
       '#description' => $this->t('A user-defined date format. See the <a href="@url">PHP manual</a> for available options.', array('@url' => 'http://php.net/manual/function.date.php')),
diff --git a/core/modules/system/src/Form/FileSystemForm.php b/core/modules/system/src/Form/FileSystemForm.php
index 40bd937..0a04bd5 100644
--- a/core/modules/system/src/Form/FileSystemForm.php
+++ b/core/modules/system/src/Form/FileSystemForm.php
@@ -98,7 +98,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
 
     $form['file_temporary_path'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Temporary directory'),
       '#default_value' => $config->get('path.temporary'),
       '#maxlength' => 255,
diff --git a/core/modules/system/src/Form/SiteInformationForm.php b/core/modules/system/src/Form/SiteInformationForm.php
index 71a0fbd..16f919a 100644
--- a/core/modules/system/src/Form/SiteInformationForm.php
+++ b/core/modules/system/src/Form/SiteInformationForm.php
@@ -91,13 +91,13 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#open' => TRUE,
     );
     $form['site_information']['site_name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Site name'),
       '#default_value' => $site_config->get('name'),
       '#required' => TRUE,
     );
     $form['site_information']['site_slogan'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Slogan'),
       '#default_value' => $site_config->get('slogan'),
       '#description' => t("How this is used depends on your site's theme."),
@@ -116,7 +116,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
     $front_page = $site_config->get('page.front') != 'user/login' ? $this->aliasManager->getAliasByPath($site_config->get('page.front')) : '';
     $form['front_page']['site_frontpage'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Default front page'),
       '#default_value' => $front_page,
       '#size' => 40,
@@ -129,7 +129,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#open' => TRUE,
     );
     $form['error_page']['site_403'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Default 403 (access denied) page'),
       '#default_value' => $site_config->get('page.403'),
       '#size' => 40,
@@ -137,7 +137,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#field_prefix' => $this->url('<none>', [], ['absolute' => TRUE]),
     );
     $form['error_page']['site_404'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Default 404 (not found) page'),
       '#default_value' => $site_config->get('page.404'),
       '#size' => 40,
diff --git a/core/modules/system/src/Form/ThemeSettingsForm.php b/core/modules/system/src/Form/ThemeSettingsForm.php
index fd8b777..15dec44 100644
--- a/core/modules/system/src/Form/ThemeSettingsForm.php
+++ b/core/modules/system/src/Form/ThemeSettingsForm.php
@@ -212,7 +212,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $theme =
         ),
       );
       $form['logo']['settings']['logo_path'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => t('Path to custom logo'),
         '#default_value' => theme_get_setting('logo.path', $theme),
       );
@@ -253,7 +253,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $theme =
         ),
       );
       $form['favicon']['settings']['favicon_path'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => t('Path to custom icon'),
         '#default_value' => theme_get_setting('favicon.path', $theme),
       );
diff --git a/core/modules/system/src/Plugin/views/field/BulkForm.php b/core/modules/system/src/Plugin/views/field/BulkForm.php
index f4a2545..7075d22 100644
--- a/core/modules/system/src/Plugin/views/field/BulkForm.php
+++ b/core/modules/system/src/Plugin/views/field/BulkForm.php
@@ -96,7 +96,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['action_title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Action title'),
       '#default_value' => $this->options['action_title'],
       '#description' => $this->t('The title shown above the actions dropdown.'),
diff --git a/core/modules/system/src/Tests/Ajax/DialogTest.php b/core/modules/system/src/Tests/Ajax/DialogTest.php
index 37bf06c..b7108ff 100644
--- a/core/modules/system/src/Tests/Ajax/DialogTest.php
+++ b/core/modules/system/src/Tests/Ajax/DialogTest.php
@@ -105,7 +105,7 @@ public function testDialog() {
     // dialog options are sent.
     $ajax_result = $this->drupalPostAjaxForm('ajax-test/dialog', array(
         // We have to mock a form element to make drupalPost submit from a link.
-        'textfield' => 'test',
+        'text' => 'test',
       ), array(), 'ajax-test/dialog-contents', array(), array('Accept: application/vnd.drupal-dialog'), NULL, array(
       'submit' => array(
         'dialogOptions[target]' => 'ajax-test-dialog-wrapper-1',
@@ -118,7 +118,7 @@ public function testDialog() {
     // dialog options are sent.
     $ajax_result = $this->drupalPostAjaxForm('ajax-test/dialog', array(
         // We have to mock a form element to make drupalPost submit from a link.
-        'textfield' => 'test',
+        'text' => 'test',
       ), array(), 'ajax-test/dialog-contents', array(), array('Accept: application/vnd.drupal-dialog'), NULL, array(
       // Don't send a target.
       'submit' => array()
diff --git a/core/modules/system/src/Tests/Common/RenderWebTest.php b/core/modules/system/src/Tests/Common/RenderWebTest.php
index 4bdb996..f3bd374 100644
--- a/core/modules/system/src/Tests/Common/RenderWebTest.php
+++ b/core/modules/system/src/Tests/Common/RenderWebTest.php
@@ -38,7 +38,7 @@ function testDrupalRenderFormElements() {
     $this->assertRenderedElement($element, '//input[@type=:type]', array(':type' => 'submit'));
 
     $element = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->randomMachineName(),
       '#value' => $this->randomMachineName(),
     );
diff --git a/core/modules/system/src/Tests/Form/ElementTest.php b/core/modules/system/src/Tests/Form/ElementTest.php
index 9fa7eca..6516428 100644
--- a/core/modules/system/src/Tests/Form/ElementTest.php
+++ b/core/modules/system/src/Tests/Form/ElementTest.php
@@ -30,7 +30,7 @@ function testPlaceHolderText() {
     $this->drupalGet('form-test/placeholder-text');
     $expected = 'placeholder-text';
     // Test to make sure non-textarea elements have the proper placeholder text.
-    foreach (array('textfield', 'tel', 'url', 'password', 'email', 'number') as $type) {
+    foreach (array('text', 'tel', 'url', 'password', 'email', 'number') as $type) {
       $element = $this->xpath('//input[@id=:id and @placeholder=:expected]', array(
         ':id' => 'edit-' . $type,
         ':expected' => $expected,
diff --git a/core/modules/system/src/Tests/Form/FormTest.php b/core/modules/system/src/Tests/Form/FormTest.php
index 0197e8a..184559d 100644
--- a/core/modules/system/src/Tests/Form/FormTest.php
+++ b/core/modules/system/src/Tests/Form/FormTest.php
@@ -57,8 +57,8 @@ function testRequiredFields() {
     $empty_arrays = array('array()' => array());
     $empty_checkbox = array(NULL);
 
-    $elements['textfield']['element'] = array('#title' => $this->randomMachineName(), '#type' => 'textfield');
-    $elements['textfield']['empty_values'] = $empty_strings;
+    $elements['text']['element'] = array('#title' => $this->randomMachineName(), '#type' => 'text');
+    $elements['text']['empty_values'] = $empty_strings;
 
     $elements['telephone']['element'] = array('#title' => $this->randomMachineName(), '#type' => 'tel');
     $elements['telephone']['empty_values'] = $empty_strings;
@@ -175,7 +175,7 @@ function testRequiredCheckboxesRadio() {
     // The only error messages that should appear are the relevant 'required'
     // messages for each field.
     $expected = array();
-    foreach (array('textfield', 'checkboxes', 'select', 'radios') as $key) {
+    foreach (array('text', 'checkboxes', 'select', 'radios') as $key) {
       if (isset($form[$key]['#required_error'])) {
         $expected[] = $form[$key]['#required_error'];
       }
@@ -207,7 +207,7 @@ function testRequiredCheckboxesRadio() {
     }
 
     // Verify that input elements are still empty.
-    $this->assertFieldByName('textfield', '');
+    $this->assertFieldByName('text', '');
     $this->assertNoFieldChecked('edit-checkboxes-foo');
     $this->assertNoFieldChecked('edit-checkboxes-bar');
     $this->assertOptionSelected('edit-select', '');
@@ -221,7 +221,7 @@ function testRequiredCheckboxesRadio() {
     // Submit again with required fields set and verify that there are no
     // error messages.
     $edit = array(
-      'textfield' => $this->randomString(),
+      'text' => $this->randomString(),
       'checkboxes[foo]' => TRUE,
       'select' => 'foo',
       'radios' => 'bar',
@@ -256,7 +256,7 @@ function testRequiredTextfieldNoTitle() {
     // Submit again with required fields set and verify that there are no
     // error messages.
     $edit = array(
-      'textfield' => $this->randomString(),
+      'text' => $this->randomString(),
     );
     $this->drupalPostForm(NULL, $edit, 'Submit');
     $this->assertNoFieldByXpath('//input[contains(@class, "error")]', FALSE, 'No error input form element class found.');
@@ -656,7 +656,7 @@ function testRequiredAttribute() {
     $this->drupalGet('form-test/required-attribute');
     $expected = 'required';
     // Test to make sure the elements have the proper required attribute.
-    foreach (array('textfield', 'password') as $type) {
+    foreach (array('text', 'password') as $type) {
       $element = $this->xpath('//input[@id=:id and @required=:expected]', array(
         ':id' => 'edit-' . $type,
         ':expected' => $expected,
diff --git a/core/modules/system/src/Tests/Form/ProgrammaticTest.php b/core/modules/system/src/Tests/Form/ProgrammaticTest.php
index ef8130c..e9cb91c 100644
--- a/core/modules/system/src/Tests/Form/ProgrammaticTest.php
+++ b/core/modules/system/src/Tests/Form/ProgrammaticTest.php
@@ -36,16 +36,16 @@ function testSubmissionWorkflow() {
     // Test that a programmatic form submission is rejected when a required
     // textfield is omitted and correctly processed when it is provided.
     $this->submitForm(array(), FALSE);
-    $this->submitForm(array('textfield' => 'test 1'), TRUE);
+    $this->submitForm(array('text' => 'test 1'), TRUE);
     $this->submitForm(array(), FALSE);
-    $this->submitForm(array('textfield' => 'test 2'), TRUE);
+    $this->submitForm(array('text' => 'test 2'), TRUE);
 
     // Test that a programmatic form submission can turn on and off checkboxes
     // which are, by default, checked.
-    $this->submitForm(array('textfield' => 'dummy value', 'checkboxes' => array(1 => 1, 2 => 2)), TRUE);
-    $this->submitForm(array('textfield' => 'dummy value', 'checkboxes' => array(1 => 1, 2 => NULL)), TRUE);
-    $this->submitForm(array('textfield' => 'dummy value', 'checkboxes' => array(1 => NULL, 2 => 2)), TRUE);
-    $this->submitForm(array('textfield' => 'dummy value', 'checkboxes' => array(1 => NULL, 2 => NULL)), TRUE);
+    $this->submitForm(array('text' => 'dummy value', 'checkboxes' => array(1 => 1, 2 => 2)), TRUE);
+    $this->submitForm(array('text' => 'dummy value', 'checkboxes' => array(1 => 1, 2 => NULL)), TRUE);
+    $this->submitForm(array('text' => 'dummy value', 'checkboxes' => array(1 => NULL, 2 => 2)), TRUE);
+    $this->submitForm(array('text' => 'dummy value', 'checkboxes' => array(1 => NULL, 2 => NULL)), TRUE);
 
     // Test that a programmatic form submission can correctly click a button
     // that limits validation errors based on user input. Since we do not
@@ -53,7 +53,7 @@ function testSubmissionWorkflow() {
     // only expect form validation to pass when validation is limited to a
     // different field.
     $this->submitForm(array('op' => 'Submit with limited validation', 'field_to_validate' => 'all'), FALSE);
-    $this->submitForm(array('op' => 'Submit with limited validation', 'field_to_validate' => 'textfield'), FALSE);
+    $this->submitForm(array('op' => 'Submit with limited validation', 'field_to_validate' => 'text'), FALSE);
     $this->submitForm(array('op' => 'Submit with limited validation', 'field_to_validate' => 'field_to_validate'), TRUE);
 
     // Restore the current batch status.
@@ -99,7 +99,7 @@ private function submitForm($values, $valid_input) {
    */
   public function testProgrammaticAccessBypass() {
     $form_state = (new FormState())->setValues([
-      'textfield' => 'dummy value',
+      'text' => 'dummy value',
       'field_restricted' => 'dummy value'
     ]);
 
diff --git a/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php b/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
index 27327a4..f9508ad 100644
--- a/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
+++ b/core/modules/system/src/Tests/Form/TriggeringElementProgrammedUnitTest.php
@@ -34,12 +34,12 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['one'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'One',
       '#required' => TRUE,
     );
     $form['two'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Two',
       '#required' => TRUE,
     );
diff --git a/core/modules/system/src/Tests/Form/ValidationTest.php b/core/modules/system/src/Tests/Form/ValidationTest.php
index 7b6c9e8..39cade4 100644
--- a/core/modules/system/src/Tests/Form/ValidationTest.php
+++ b/core/modules/system/src/Tests/Form/ValidationTest.php
@@ -145,7 +145,7 @@ function testPatternValidation() {
 
     // Invalid textfield, valid tel.
     $edit = array(
-      'textfield' => 'invalid',
+      'text' => 'invalid',
       'tel' => 'valid',
     );
     $this->drupalPostForm('form-test/pattern', $edit, 'Submit');
@@ -155,7 +155,7 @@ function testPatternValidation() {
 
     // Valid textfield, invalid tel, valid password.
     $edit = array(
-      'textfield' => '7seven',
+      'text' => '7seven',
       'tel' => '818937',
       'password' => '0100110',
     );
@@ -166,7 +166,7 @@ function testPatternValidation() {
 
     // Non required fields are not validated if empty.
     $edit = array(
-      'textfield' => '',
+      'text' => '',
       'tel' => '',
     );
     $this->drupalPostForm('form-test/pattern', $edit, 'Submit');
@@ -186,7 +186,7 @@ function testPatternValidation() {
     // The pattern attribute overrides #pattern and is not validated on the
     // server side.
     $edit = array(
-      'textfield' => '',
+      'text' => '',
       'tel' => '',
       'url' => 'http://www.example.com/',
     );
@@ -220,7 +220,7 @@ function testCustomRequiredError() {
 
     // Verify that no custom validation error appears with valid values.
     $edit = array(
-      'textfield' => $this->randomString(),
+      'text' => $this->randomString(),
       'checkboxes[foo]' => TRUE,
       'select' => 'foo',
     );
diff --git a/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestValidationForm.php b/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestValidationForm.php
index 4646956..db874ed 100644
--- a/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestValidationForm.php
+++ b/core/modules/system/tests/modules/ajax_forms_test/src/Form/AjaxFormsTestValidationForm.php
@@ -29,7 +29,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['drivertext'] = array(
       '#title' => $this->t('AJAX-enabled textfield.'),
       '#description' => $this->t("When this one AJAX-triggers and the spare required field is empty, you should not get an error."),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $form_state->getValue('drivertext', ''),
       '#ajax' => array(
         'callback' => 'ajax_forms_test_validation_form_callback',
@@ -54,7 +54,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
     $form['spare_required_field'] = array(
       '#title' => $this->t("Spare Required Field"),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#required' => TRUE,
     );
 
diff --git a/core/modules/system/tests/modules/ajax_test/src/Form/AjaxTestDialogForm.php b/core/modules/system/tests/modules/ajax_test/src/Form/AjaxTestDialogForm.php
index 922ef60..94de739 100644
--- a/core/modules/system/tests/modules/ajax_test/src/Form/AjaxTestDialogForm.php
+++ b/core/modules/system/tests/modules/ajax_test/src/Form/AjaxTestDialogForm.php
@@ -33,7 +33,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     // In order to use WebTestBase::drupalPostAjaxForm() to POST from a link, we need
     // to have a dummy field we can set in WebTestBase::drupalPostForm() else it won't
     // submit anything.
-    $form['textfield'] = array(
+    $form['text'] = array(
       '#type' => 'hidden'
     );
     $form['button1'] = array(
diff --git a/core/modules/system/tests/modules/batch_test/src/Form/BatchTestChainedForm.php b/core/modules/system/tests/modules/batch_test/src/Form/BatchTestChainedForm.php
index a2251a7..2b92597 100644
--- a/core/modules/system/tests/modules/batch_test/src/Form/BatchTestChainedForm.php
+++ b/core/modules/system/tests/modules/batch_test/src/Form/BatchTestChainedForm.php
@@ -29,7 +29,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     // This value is used to test that $form_state persists through batched
     // submit handlers.
     $form['value'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Value',
       '#default_value' => 1,
     );
diff --git a/core/modules/system/tests/modules/batch_test/src/Form/BatchTestMockForm.php b/core/modules/system/tests/modules/batch_test/src/Form/BatchTestMockForm.php
index 06eff66..7f952bb 100644
--- a/core/modules/system/tests/modules/batch_test/src/Form/BatchTestMockForm.php
+++ b/core/modules/system/tests/modules/batch_test/src/Form/BatchTestMockForm.php
@@ -28,7 +28,7 @@ public function getFormId() {
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['test_value'] = array(
       '#title' => t('Test value'),
-      '#type' => 'textfield',
+      '#type' => 'text',
     );
     $form['submit'] = array(
       '#type' => 'submit',
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestClickedButtonForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestClickedButtonForm.php
index 72ac7ac..8826e33 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestClickedButtonForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestClickedButtonForm.php
@@ -33,7 +33,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $first =
     // first button were clicked.
     $form['text'] = array(
       '#title' => 'Text',
-      '#type' => 'textfield',
+      '#type' => 'text',
     );
 
     // Loop through each path argument, adding buttons based on the information
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestDescriptionForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestDescriptionForm.php
index aeb1196..ce6170e 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestDescriptionForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestDescriptionForm.php
@@ -29,21 +29,21 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['form_textfield_test_description_before'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Textfield test for description before element',
       '#description' => 'Textfield test for description before element',
       '#description_display' => 'before',
     );
 
     $form['form_textfield_test_description_after'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Textfield test for description after element',
       '#description' => 'Textfield test for description after element',
       '#description_display' => 'after',
     );
 
     $form['form_textfield_test_description_invisible'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Textfield test for visually-hidden description',
       '#description' => 'Textfield test for visually-hidden description',
       '#description_display' => 'invisible',
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestDisabledElementsForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestDisabledElementsForm.php
index 485d081..227926e 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestDisabledElementsForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestDisabledElementsForm.php
@@ -29,7 +29,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     // Elements that take a simple default value.
-    foreach (array('textfield', 'textarea', 'search', 'tel', 'hidden') as $type) {
+    foreach (array('text', 'textarea', 'search', 'tel', 'hidden') as $type) {
       $form[$type] = array(
         '#type' => $type,
         '#title' => $type,
@@ -117,7 +117,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['disabled_container'] = array(
       '#disabled' => TRUE,
     );
-    foreach (array('textfield', 'textarea', 'hidden', 'tel', 'url') as $type) {
+    foreach (array('text', 'textarea', 'hidden', 'tel', 'url') as $type) {
       $form['disabled_container']['disabled_container_' . $type] = array(
         '#type' => $type,
         '#title' => $type,
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateDatabaseForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateDatabaseForm.php
index 87014c7..50b8f3b 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateDatabaseForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestFormStateDatabaseForm.php
@@ -28,7 +28,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['text'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Text field'),
     );
 
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php
index 26a04c4..d33edcc8 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php
@@ -36,7 +36,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'container',
     );
     $form['meta']['element'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Nest in details element',
     );
     return $form;
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupDetailsForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupDetailsForm.php
index d8f5925..e425a5b 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupDetailsForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupDetailsForm.php
@@ -38,7 +38,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'details',
     );
     $form['meta']['element'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Nest in details element',
     );
     return $form;
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupFieldsetForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupFieldsetForm.php
index e55b1af..38cf4d0 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupFieldsetForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupFieldsetForm.php
@@ -36,7 +36,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'fieldset',
     );
     $form['meta']['element'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Nest in container element',
     );
     return $form;
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupVerticalTabsForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupVerticalTabsForm.php
index c4a11af..619e640 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupVerticalTabsForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupVerticalTabsForm.php
@@ -35,7 +35,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'vertical_tabs',
     );
     $form['meta']['element'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'First nested element in details element',
     );
     $form['meta_2'] = array(
@@ -44,7 +44,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'vertical_tabs',
     );
     $form['meta_2']['element_2'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Second nested element in details element',
     );
     return $form;
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestLabelForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestLabelForm.php
index 75234b0..83c6fc3 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestLabelForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestLabelForm.php
@@ -54,19 +54,19 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#title' => t('Checkbox test'),
     );
     $form['form_textfield_test_title_and_required'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Textfield test for required with title'),
       '#required' => TRUE,
     );
     $form['form_textfield_test_no_title_required'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       // We use an empty title, since not setting #title suppresses the label
       // and required marker.
       '#title' => '',
       '#required' => TRUE,
     );
     $form['form_textfield_test_title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Textfield test for title only'),
       // Not required.
       // Test #prefix and #suffix placement.
@@ -74,18 +74,18 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#suffix' => '<div id="form-test-textfield-title-suffix">' . t('Textfield #suffix element') . '</div>',
     );
     $form['form_textfield_test_title_after'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Textfield test for title after element'),
       '#title_display' => 'after',
     );
     $form['form_textfield_test_title_invisible'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Textfield test for invisible title'),
       '#title_display' => 'invisible',
     );
     // Textfield test for title set not to display.
     $form['form_textfield_test_title_no_show'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
     );
     // Checkboxes & radios with title as attribute.
     $form['form_checkboxes_title_attribute'] = array(
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestLimitValidationErrorsForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestLimitValidationErrorsForm.php
index 293e320..7ef82c8 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestLimitValidationErrorsForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestLimitValidationErrorsForm.php
@@ -27,14 +27,14 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Title',
       '#required' => TRUE,
     );
 
     $form['test'] = array(
       '#title' => 'Test',
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#element_validate' => array('::elementValidateLimitValidationErrors'),
     );
     $form['test_numeric_index'] = array(
@@ -42,7 +42,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
     $form['test_numeric_index'][0] = array(
       '#title' => 'Test (numeric index)',
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#element_validate' => array('::elementValidateLimitValidationErrors'),
     );
 
@@ -51,12 +51,12 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
     $form['test_substring']['foo'] = array(
       '#title' => 'Test (substring) foo',
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#element_validate' => array('::elementValidateLimitValidationErrors'),
     );
     $form['test_substring']['foobar'] = array(
       '#title' => 'Test (substring) foobar',
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#element_validate' => array('::elementValidateLimitValidationErrors'),
     );
 
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestPatternForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestPatternForm.php
index 8a022b4..a8b7f39 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestPatternForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestPatternForm.php
@@ -27,7 +27,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['textfield'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'One digit followed by lowercase letters',
       '#pattern' => '[0-9][a-z]+',
     );
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestPlaceholderForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestPlaceholderForm.php
index fc6c4dc..0ce838c 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestPlaceholderForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestPlaceholderForm.php
@@ -26,7 +26,7 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    foreach (array('textfield', 'textarea', 'url', 'password', 'search', 'tel', 'email', 'number') as $type) {
+    foreach (array('text', 'textarea', 'url', 'password', 'search', 'tel', 'email', 'number') as $type) {
       $form[$type] = array(
         '#type' => $type,
         '#title' => $type,
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestProgrammaticForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestProgrammaticForm.php
index f5d1667..6a1ce29 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestProgrammaticForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestProgrammaticForm.php
@@ -26,9 +26,9 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    $form['textfield'] = array(
+    $form['text'] = array(
       '#title' => 'Textfield',
-      '#type' => 'textfield',
+      '#type' => 'text',
     );
 
     $form['checkboxes'] = array(
@@ -49,14 +49,14 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#description' => 'If the form is submitted by clicking the "Submit with limited validation" button, then validation can be limited based on the value of this radio button.',
       '#options' => array(
         'all' => 'Validate all fields',
-        'textfield' => 'Validate the "Textfield" field',
+        'text' => 'Validate the "Textfield" field',
         'field_to_validate' => 'Validate the "Field to validate" field',
       ),
       '#default_value' => 'all',
     );
 
     $form['field_restricted'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Textfield (no access)',
       '#access' => FALSE,
     );
@@ -90,8 +90,8 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    * {@inheritdoc}
    */
   public function validateForm(array &$form, FormStateInterface $form_state) {
-    if ($form_state->isValueEmpty('textfield')) {
-      $form_state->setErrorByName('textfield', t('Textfield is required.'));
+    if ($form_state->isValueEmpty('text')) {
+      $form_state->setErrorByName('text', t('Textfield is required.'));
     }
   }
 
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestRebuildPreserveValuesForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestRebuildPreserveValuesForm.php
index fba47e4..cc0d51e 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestRebuildPreserveValuesForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestRebuildPreserveValuesForm.php
@@ -40,7 +40,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         '#default_value' => TRUE,
       ),
       'text_1' => array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => t('This textfield has a non-empty default value.'),
         '#default_value' => 'DEFAULT 1',
       ),
@@ -69,7 +69,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
           '#default_value' => TRUE,
         ),
         'text_2' => array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => t('This textfield has a non-empty default value.'),
           '#default_value' => 'DEFAULT 2',
         ),
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestRedirectForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestRedirectForm.php
index e366db3..69ab438 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestRedirectForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestRedirectForm.php
@@ -32,7 +32,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#title' => t('Use redirection'),
     );
     $form['destination'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Redirect destination'),
       '#states' => array(
         'visible' => array(
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestRequiredAttributeForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestRequiredAttributeForm.php
index 5f7d5d0..cadb37d 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestRequiredAttributeForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestRequiredAttributeForm.php
@@ -26,7 +26,7 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    foreach (array('textfield', 'textarea', 'password') as $type) {
+    foreach (array('text', 'textarea', 'password') as $type) {
       $form[$type] = array(
         '#type' => $type,
         '#required' => TRUE,
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestResponseForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestResponseForm.php
index deacf0b..092ff65 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestResponseForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestResponseForm.php
@@ -28,11 +28,11 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['content'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Content',
     );
     $form['status'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Status',
       '#default_value' => 200,
     );
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestStatePersistForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestStatePersistForm.php
index a4e570e..494efbd 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestStatePersistForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestStatePersistForm.php
@@ -27,7 +27,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'title',
       '#default_value' => 'DEFAULT',
       '#required' => TRUE,
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php
index 60e0cdb..e255b2d 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestStorageForm.php
@@ -56,13 +56,13 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     drupal_set_message("Form constructions: " . $_SESSION['constructions']);
 
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Title',
       '#default_value' => $storage['thing']['title'],
       '#required' => TRUE,
     );
     $form['value'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Value',
       '#default_value' => $storage['thing']['value'],
       '#element_validate' => array('::elementValidateValueCached'),
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestStoragePageCacheForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestStoragePageCacheForm.php
index 223ed80..afd22c2 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestStoragePageCacheForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestStoragePageCacheForm.php
@@ -25,7 +25,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Title',
       '#required' => TRUE,
     );
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateForm.php
index e403887..13d4267 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateForm.php
@@ -39,7 +39,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $object = new Callbacks();
 
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Name',
       '#default_value' => '',
       '#element_validate' => array(array($object, 'validateName')),
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredForm.php
index 64719e2..44abb8d 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredForm.php
@@ -30,7 +30,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $validate = array('::elementValidateRequired');
 
     $form['textfield'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Name',
       '#required' => TRUE,
       '#required_error' => t('Please enter a name.'),
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredNoTitleForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredNoTitleForm.php
index 9beb455..9c56d47 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredNoTitleForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestValidateRequiredNoTitleForm.php
@@ -27,7 +27,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['textfield'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#required' => TRUE,
     );
     $form['actions'] = array('#type' => 'actions');
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsForm.php
index 2c47068..71fec18 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsForm.php
@@ -39,7 +39,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       );
       $form['tab' . $i]['field' . $i] = array(
         '#title' => t('Field !num', array('!num' => $i)),
-        '#type' => 'textfield',
+        '#type' => 'text',
 
       );
     }
diff --git a/core/modules/system/tests/modules/form_test/src/FormTestArgumentsObject.php b/core/modules/system/tests/modules/form_test/src/FormTestArgumentsObject.php
index 9dc522c..7342e71 100644
--- a/core/modules/system/tests/modules/form_test/src/FormTestArgumentsObject.php
+++ b/core/modules/system/tests/modules/form_test/src/FormTestArgumentsObject.php
@@ -37,7 +37,7 @@ public function buildForm(array $form, FormStateInterface $form_state, $arg = NU
     $form['element'] = array('#markup' => 'The FormTestArgumentsObject::buildForm() method was used for this form.');
 
     $form['bananas'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => String::checkPlain($arg),
       '#title' => $this->t('Bananas'),
     );
diff --git a/core/modules/system/tests/modules/form_test/src/FormTestAutocompleteForm.php b/core/modules/system/tests/modules/form_test/src/FormTestAutocompleteForm.php
index 43daa5c..e2e4389 100644
--- a/core/modules/system/tests/modules/form_test/src/FormTestAutocompleteForm.php
+++ b/core/modules/system/tests/modules/form_test/src/FormTestAutocompleteForm.php
@@ -27,12 +27,12 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['autocomplete_1'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Autocomplete 1',
       '#autocomplete_route_name' => 'form_test.autocomplete_1',
     );
     $form['autocomplete_2'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Autocomplete 2',
       '#autocomplete_route_name' => 'form_test.autocomplete_2',
       '#autocomplete_route_parameters' => array('param' => 'value'),
diff --git a/core/modules/system/tests/modules/form_test/src/FormTestControllerObject.php b/core/modules/system/tests/modules/form_test/src/FormTestControllerObject.php
index 40a79af..43909bf 100644
--- a/core/modules/system/tests/modules/form_test/src/FormTestControllerObject.php
+++ b/core/modules/system/tests/modules/form_test/src/FormTestControllerObject.php
@@ -51,7 +51,7 @@ public function buildForm(array $form, FormStateInterface $form_state, Request $
     $form['request_attribute']['#markup'] = $request->attributes->get('request_attribute');
 
     $form['bananas'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Bananas'),
     );
 
diff --git a/core/modules/system/tests/modules/form_test/src/FormTestObject.php b/core/modules/system/tests/modules/form_test/src/FormTestObject.php
index 73f273e..81c67a9 100644
--- a/core/modules/system/tests/modules/form_test/src/FormTestObject.php
+++ b/core/modules/system/tests/modules/form_test/src/FormTestObject.php
@@ -36,7 +36,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['element'] = array('#markup' => 'The FormTestObject::buildForm() method was used for this form.');
 
     $form['bananas'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Bananas'),
     );
 
diff --git a/core/modules/system/tests/modules/form_test/src/FormTestServiceObject.php b/core/modules/system/tests/modules/form_test/src/FormTestServiceObject.php
index c60b6d1..4807a0a 100644
--- a/core/modules/system/tests/modules/form_test/src/FormTestServiceObject.php
+++ b/core/modules/system/tests/modules/form_test/src/FormTestServiceObject.php
@@ -36,7 +36,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form['element'] = array('#markup' => 'The FormTestServiceObject::buildForm() method was used for this form.');
 
     $form['bananas'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => 'brown',
       '#title' => $this->t('Bananas'),
     );
diff --git a/core/modules/system/tests/modules/session_test/src/Form/SessionTestForm.php b/core/modules/system/tests/modules/session_test/src/Form/SessionTestForm.php
index f8d5614..ee23de4 100644
--- a/core/modules/system/tests/modules/session_test/src/Form/SessionTestForm.php
+++ b/core/modules/system/tests/modules/session_test/src/Form/SessionTestForm.php
@@ -28,7 +28,7 @@ public function getFormID() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['input'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Input',
       '#required' => TRUE,
     );
diff --git a/core/modules/system/tests/modules/system_test/src/MockFileTransfer.php b/core/modules/system/tests/modules/system_test/src/MockFileTransfer.php
index 900e0be..8413b37 100644
--- a/core/modules/system/tests/modules/system_test/src/MockFileTransfer.php
+++ b/core/modules/system/tests/modules/system_test/src/MockFileTransfer.php
@@ -28,7 +28,7 @@ public static function factory() {
   public function getSettingsForm() {
     $form = array();
     $form['system_test_username'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('System Test Username'),
     );
     return $form;
diff --git a/core/modules/system/theme.api.php b/core/modules/system/theme.api.php
index b88f740..445925e 100644
--- a/core/modules/system/theme.api.php
+++ b/core/modules/system/theme.api.php
@@ -703,8 +703,8 @@ function hook_element_info() {
  */
 function hook_element_info_alter(array &$types) {
   // Decrease the default size of textfields.
-  if (isset($types['textfield']['#size'])) {
-    $types['textfield']['#size'] = 40;
+  if (isset($types['text']['#size'])) {
+    $types['text']['#size'] = 40;
   }
 }
 
diff --git a/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php b/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php
index 8182b44..a5d77f7 100644
--- a/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php
+++ b/core/modules/taxonomy/src/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php
@@ -83,7 +83,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
@@ -120,7 +120,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       }
     }
     $element += array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => taxonomy_implode_tags($tags),
       '#autocomplete_route_name' => $this->getSetting('autocomplete_route_name'),
       '#autocomplete_route_parameters' => array(
diff --git a/core/modules/taxonomy/src/Plugin/views/field/LinkEdit.php b/core/modules/taxonomy/src/Plugin/views/field/LinkEdit.php
index 306c02c..dd215fe 100644
--- a/core/modules/taxonomy/src/Plugin/views/field/LinkEdit.php
+++ b/core/modules/taxonomy/src/Plugin/views/field/LinkEdit.php
@@ -49,7 +49,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['text'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Text to display'),
       '#default_value' => $this->options['text'],
     );
diff --git a/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php b/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
index 573448d..50f1119 100644
--- a/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
+++ b/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
@@ -97,7 +97,7 @@ public function getValueOptions() { /* don't overwrite the value options */ }
   protected function defineOptions() {
     $options = parent::defineOptions();
 
-    $options['type'] = array('default' => 'textfield');
+    $options['type'] = array('default' => 'text');
     $options['limit'] = array('default' => TRUE);
     $options['vid'] = array('default' => '');
     $options['hierarchy'] = array('default' => FALSE);
@@ -134,7 +134,7 @@ public function buildExtraOptionsForm(&$form, FormStateInterface $form_state) {
     $form['type'] = array(
       '#type' => 'radios',
       '#title' => $this->t('Selection type'),
-      '#options' => array('select' => $this->t('Dropdown'), 'textfield' => $this->t('Autocomplete')),
+      '#options' => array('select' => $this->t('Dropdown'), 'text' => $this->t('Autocomplete')),
       '#default_value' => $this->options['type'],
     );
 
@@ -159,11 +159,11 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
       return;
     }
 
-    if ($this->options['type'] == 'textfield') {
+    if ($this->options['type'] == 'text') {
       $terms = $this->value ? Term::loadMultiple(($this->value)) : array();
       $form['value'] = array(
         '#title' => $this->options['limit'] ? $this->t('Select terms from vocabulary @voc', array('@voc' => $vocabulary->label())) : $this->t('Select terms'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => EntityAutocomplete::getEntityLabels($terms),
       );
 
@@ -260,7 +260,7 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
 
   protected function valueValidate($form, FormStateInterface $form_state) {
     // We only validate if they've chosen the text field style.
-    if ($this->options['type'] != 'textfield') {
+    if ($this->options['type'] != 'text') {
       return;
     }
 
@@ -306,7 +306,7 @@ public function validateExposed(&$form, FormStateInterface $form_state) {
     $identifier = $this->options['expose']['identifier'];
 
     // We only validate if they've chosen the text field style.
-    if ($this->options['type'] != 'textfield') {
+    if ($this->options['type'] != 'text') {
       if ($form_state->getValue($identifier) != 'All')  {
         $this->validated_exposed_input = (array) $form_state->getValue($identifier);
       }
diff --git a/core/modules/taxonomy/src/TermForm.php b/core/modules/taxonomy/src/TermForm.php
index daa2868..13d03fa 100644
--- a/core/modules/taxonomy/src/TermForm.php
+++ b/core/modules/taxonomy/src/TermForm.php
@@ -70,7 +70,7 @@ public function form(array $form, FormStateInterface $form_state) {
     }
 
     $form['relations']['weight'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Weight'),
       '#size' => 6,
       '#default_value' => $term->getWeight(),
diff --git a/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php b/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
index 2ccfa77..c5eaceb 100644
--- a/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
+++ b/core/modules/taxonomy/src/Tests/Views/TaxonomyIndexTidUiTest.php
@@ -94,11 +94,11 @@ public function testFilterUI() {
       }
     }
 
-    // Ensure the autocomplete input element appears when using the 'textfield'
+    // Ensure the autocomplete input element appears when using the 'text'
     // type.
     $view = entity_load('view', 'test_filter_taxonomy_index_tid');
     $display =& $view->getDisplay('default');
-    $display['display_options']['filters']['tid']['type'] = 'textfield';
+    $display['display_options']['filters']['tid']['type'] = 'text';
     $view->save();
     $this->drupalGet('admin/structure/views/nojs/handler/test_filter_taxonomy_index_tid/default/filter/tid');
     $this->assertFieldByXPath('//input[@id="edit-options-value"]');
diff --git a/core/modules/taxonomy/src/VocabularyForm.php b/core/modules/taxonomy/src/VocabularyForm.php
index ffedfda..386be59 100644
--- a/core/modules/taxonomy/src/VocabularyForm.php
+++ b/core/modules/taxonomy/src/VocabularyForm.php
@@ -59,7 +59,7 @@ public function form(array $form, FormStateInterface $form_state) {
     }
 
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Name'),
       '#default_value' => $vocabulary->label(),
       '#maxlength' => 255,
@@ -75,7 +75,7 @@ public function form(array $form, FormStateInterface $form_state) {
       ),
     );
     $form['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Description'),
       '#default_value' => $vocabulary->getDescription(),
     );
diff --git a/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php b/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
index 5d83b7c..0e0836c 100644
--- a/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
+++ b/core/modules/telephone/src/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php
@@ -39,7 +39,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $elements['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Title to replace basic numeric telephone number display'),
       '#default_value' => $this->getSetting('title'),
     );
diff --git a/core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php b/core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
index 2be36da..ed2d18d 100644
--- a/core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
+++ b/core/modules/telephone/src/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php
@@ -38,7 +38,7 @@ public static function defaultSettings() {
    */
   public function settingsForm(array $form, FormStateInterface $form_state) {
     $element['placeholder'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Placeholder'),
       '#default_value' => $this->getSetting('placeholder'),
       '#description' => t('Text that will be shown inside the field until a value is entered. This hint is usually a sample value or a brief description of the expected format.'),
diff --git a/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php b/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php
index b47fd6b..b7e95f3 100644
--- a/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php
+++ b/core/modules/update/tests/modules/update_test/src/MockFileTransfer.php
@@ -28,7 +28,7 @@ public static function factory() {
   public function getSettingsForm() {
     $form = array();
     $form['udpate_test_username'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Update Test Username'),
     );
     return $form;
diff --git a/core/modules/user/src/AccountForm.php b/core/modules/user/src/AccountForm.php
index 8c14682..e5d560c 100644
--- a/core/modules/user/src/AccountForm.php
+++ b/core/modules/user/src/AccountForm.php
@@ -100,7 +100,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     // Only show name field on registration form or user can change own username.
     $form['account']['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Username'),
       '#maxlength' => USERNAME_MAX_LENGTH,
       '#description' => $this->t('Spaces are allowed; punctuation is not allowed except for periods, hyphens, apostrophes, and underscores.'),
diff --git a/core/modules/user/src/AccountSettingsForm.php b/core/modules/user/src/AccountSettingsForm.php
index 38c39e6..d73ab96 100644
--- a/core/modules/user/src/AccountSettingsForm.php
+++ b/core/modules/user/src/AccountSettingsForm.php
@@ -96,7 +96,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#open' => TRUE,
     );
     $form['anonymous_settings']['anonymous'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Name'),
       '#default_value' => $config->get('anonymous'),
       '#description' => $this->t('The name used to indicate anonymous users.'),
@@ -226,7 +226,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'email',
     );
     $form['email_admin_created']['user_mail_register_admin_created_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('register_admin_created.subject'),
       '#maxlength' => 180,
@@ -246,7 +246,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'email',
     );
     $form['email_pending_approval']['user_mail_register_pending_approval_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('register_pending_approval.subject'),
       '#maxlength' => 180,
@@ -266,7 +266,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'email',
     );
     $form['email_pending_approval_admin']['register_pending_approval_admin_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('register_pending_approval_admin.subject'),
       '#maxlength' => 180,
@@ -286,7 +286,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'email',
     );
     $form['email_no_approval_required']['user_mail_register_no_approval_required_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('register_no_approval_required.subject'),
       '#maxlength' => 180,
@@ -306,7 +306,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#weight' => 10,
     );
     $form['email_password_reset']['user_mail_password_reset_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('password_reset.subject'),
       '#maxlength' => 180,
@@ -339,7 +339,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       ),
     );
     $form['email_activated']['settings']['user_mail_status_activated_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('status_activated.subject'),
       '#maxlength' => 180,
@@ -372,7 +372,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       ),
     );
     $form['email_blocked']['settings']['user_mail_status_blocked_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('status_blocked.subject'),
       '#maxlength' => 180,
@@ -391,7 +391,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#group' => 'email',
     );
     $form['email_cancel_confirm']['user_mail_cancel_confirm_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('cancel_confirm.subject'),
       '#maxlength' => 180,
@@ -424,7 +424,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       ),
     );
     $form['email_canceled']['settings']['user_mail_status_canceled_subject'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subject'),
       '#default_value' => $mail_config->get('status_canceled.subject'),
       '#maxlength' => 180,
diff --git a/core/modules/user/src/Form/UserLoginForm.php b/core/modules/user/src/Form/UserLoginForm.php
index a0c0876..b9c93f3 100644
--- a/core/modules/user/src/Form/UserLoginForm.php
+++ b/core/modules/user/src/Form/UserLoginForm.php
@@ -83,7 +83,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
     // Display login form:
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Username'),
       '#size' => 60,
       '#maxlength' => USERNAME_MAX_LENGTH,
diff --git a/core/modules/user/src/Form/UserPasswordForm.php b/core/modules/user/src/Form/UserPasswordForm.php
index 48b5571..fb816bc 100644
--- a/core/modules/user/src/Form/UserPasswordForm.php
+++ b/core/modules/user/src/Form/UserPasswordForm.php
@@ -73,7 +73,7 @@ public function getFormId() {
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
     $form['name'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Username or email address'),
       '#size' => 60,
       '#maxlength' => max(USERNAME_MAX_LENGTH, Email::EMAIL_MAX_LENGTH),
diff --git a/core/modules/user/src/Plugin/views/field/Link.php b/core/modules/user/src/Plugin/views/field/Link.php
index f5ef6bd..158656c 100644
--- a/core/modules/user/src/Plugin/views/field/Link.php
+++ b/core/modules/user/src/Plugin/views/field/Link.php
@@ -54,7 +54,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['text'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Text to display'),
       '#default_value' => $this->options['text'],
     );
diff --git a/core/modules/user/src/Plugin/views/field/Name.php b/core/modules/user/src/Plugin/views/field/Name.php
index cc91eea..908b35f 100644
--- a/core/modules/user/src/Plugin/views/field/Name.php
+++ b/core/modules/user/src/Plugin/views/field/Name.php
@@ -66,7 +66,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
     $form['anonymous_text'] = array(
       '#title' => $this->t('Text to display for anonymous users'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['anonymous_text'],
       '#states' => array(
         'visible' => array(
diff --git a/core/modules/user/src/Plugin/views/field/UserData.php b/core/modules/user/src/Plugin/views/field/UserData.php
index ce3f927..6430806 100644
--- a/core/modules/user/src/Plugin/views/field/UserData.php
+++ b/core/modules/user/src/Plugin/views/field/UserData.php
@@ -83,7 +83,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['data_name'] = array(
       '#title' => $this->t('Name'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#description' => $this->t('The name of the data key.'),
       '#default_value' => $this->options['data_name'],
     );
diff --git a/core/modules/user/src/RoleForm.php b/core/modules/user/src/RoleForm.php
index bb801ea..6afddcc 100644
--- a/core/modules/user/src/RoleForm.php
+++ b/core/modules/user/src/RoleForm.php
@@ -22,7 +22,7 @@ class RoleForm extends EntityForm {
   public function form(array $form, FormStateInterface $form_state) {
     $entity = $this->entity;
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Role name'),
       '#default_value' => $entity->label(),
       '#size' => 30,
diff --git a/core/modules/user/tests/modules/user_form_test/src/Form/TestCurrentPassword.php b/core/modules/user/tests/modules/user_form_test/src/Form/TestCurrentPassword.php
index 3dd75e1..1cf7f31 100644
--- a/core/modules/user/tests/modules/user_form_test/src/Form/TestCurrentPassword.php
+++ b/core/modules/user/tests/modules/user_form_test/src/Form/TestCurrentPassword.php
@@ -32,7 +32,7 @@ public function getFormId() {
   public function buildForm(array $form, FormStateInterface $form_state, UserInterface $user = NULL) {
     $form_state->set('user', $user);
     $form['user_form_test_field'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Test field'),
       '#description' => $this->t('A field that would require a correct password to change.'),
       '#required' => TRUE,
diff --git a/core/modules/views/src/Plugin/Block/ViewsBlockBase.php b/core/modules/views/src/Plugin/Block/ViewsBlockBase.php
index 953dfae..d63c715 100644
--- a/core/modules/views/src/Plugin/Block/ViewsBlockBase.php
+++ b/core/modules/views/src/Plugin/Block/ViewsBlockBase.php
@@ -139,7 +139,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
 
     $form['views_label'] = array(
       '#title' => $this->t('Title'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->configuration['views_label'] ?: $this->view->getTitle(),
       '#states' => array(
         'visible' => array(
diff --git a/core/modules/views/src/Plugin/EntityReferenceSelection/ViewsSelection.php b/core/modules/views/src/Plugin/EntityReferenceSelection/ViewsSelection.php
index ae59751..dca028b 100644
--- a/core/modules/views/src/Plugin/EntityReferenceSelection/ViewsSelection.php
+++ b/core/modules/views/src/Plugin/EntityReferenceSelection/ViewsSelection.php
@@ -136,7 +136,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
 
       $default = !empty($view_settings['arguments']) ? implode(', ', $view_settings['arguments']) : '';
       $form['view']['arguments'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('View arguments'),
         '#default_value' => $default,
         '#required' => FALSE,
diff --git a/core/modules/views/src/Plugin/Menu/Form/ViewsMenuLinkForm.php b/core/modules/views/src/Plugin/Menu/Form/ViewsMenuLinkForm.php
index ac3aeff..63df2b6 100644
--- a/core/modules/views/src/Plugin/Menu/Form/ViewsMenuLinkForm.php
+++ b/core/modules/views/src/Plugin/Menu/Form/ViewsMenuLinkForm.php
@@ -34,7 +34,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
 
     // Put the title field first.
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Title'),
       // @todo Ensure that the view is not loaded with a localized title.
       //   https://www.drupal.org/node/2309507
@@ -43,7 +43,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
     );
 
     $form['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Description'),
       '#description' => $this->t('Shown when hovering over the menu link.'),
       // @todo Ensure that the view is not loaded with a localized description.
diff --git a/core/modules/views/src/Plugin/views/HandlerBase.php b/core/modules/views/src/Plugin/views/HandlerBase.php
index e277ac2..1047e43 100644
--- a/core/modules/views/src/Plugin/views/HandlerBase.php
+++ b/core/modules/views/src/Plugin/views/HandlerBase.php
@@ -292,7 +292,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#weight' => 150,
     );
     $form['admin_label']['admin_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Administrative title'),
       '#description' => $this->t('This title will be displayed on the views edit page instead of the default one. This might be useful if you have the same item twice.'),
       '#default_value' => $this->options['admin_label'],
diff --git a/core/modules/views/src/Plugin/views/area/Entity.php b/core/modules/views/src/Plugin/views/area/Entity.php
index df5e25e..06927e6 100644
--- a/core/modules/views/src/Plugin/views/area/Entity.php
+++ b/core/modules/views/src/Plugin/views/area/Entity.php
@@ -123,7 +123,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     }
       $form['target'] = [
       '#title' => $this->t('@entity_type_label ID', ['@entity_type_label' => $label]),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $target,
     ];
 
diff --git a/core/modules/views/src/Plugin/views/area/Title.php b/core/modules/views/src/Plugin/views/area/Title.php
index 8843324..2ffa641 100644
--- a/core/modules/views/src/Plugin/views/area/Title.php
+++ b/core/modules/views/src/Plugin/views/area/Title.php
@@ -34,7 +34,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
 
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Overridden title'),
       '#default_value' => $this->options['title'],
       '#description' => $this->t('Override the title of this view when it is empty. The available global tokens below can be used here.'),
diff --git a/core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php b/core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php
index 069276b..bee91ad 100644
--- a/core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php
+++ b/core/modules/views/src/Plugin/views/argument/ArgumentPluginBase.php
@@ -194,7 +194,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#fieldset' => 'no_argument',
     );
     $form['exception']['value'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Exception value'),
       '#size' => 20,
       '#default_value' => $this->options['exception']['value'],
@@ -206,7 +206,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => $this->options['exception']['title_enable'],
     );
     $form['exception']['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Override title'),
       '#title_display' => 'invisible',
       '#size' => 20,
@@ -245,7 +245,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#fieldset' => 'argument_present',
     );
     $form['title'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Provide title'),
       '#title_display' => 'invisible',
       '#default_value' => $this->options['title'],
diff --git a/core/modules/views/src/Plugin/views/argument/String.php b/core/modules/views/src/Plugin/views/argument/String.php
index b542bfb..132dfb1 100644
--- a/core/modules/views/src/Plugin/views/argument/String.php
+++ b/core/modules/views/src/Plugin/views/argument/String.php
@@ -67,7 +67,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['limit'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Character limit'),
       '#description' => $this->t('How many characters of the filter value to filter against. If set to 1, all fields starting with the first letter in the filter value would be matched.'),
       '#default_value' => $this->options['limit'],
diff --git a/core/modules/views/src/Plugin/views/argument_default/Fixed.php b/core/modules/views/src/Plugin/views/argument_default/Fixed.php
index 03b9330..1a359c0 100644
--- a/core/modules/views/src/Plugin/views/argument_default/Fixed.php
+++ b/core/modules/views/src/Plugin/views/argument_default/Fixed.php
@@ -32,7 +32,7 @@ protected function defineOptions() {
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
     $form['argument'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Fixed value'),
       '#default_value' => $this->options['argument'],
     );
diff --git a/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php b/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php
index 337b722..227f7e4 100644
--- a/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php
+++ b/core/modules/views/src/Plugin/views/argument_default/QueryParameter.php
@@ -40,13 +40,13 @@ protected function defineOptions() {
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
     $form['query_param'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Query parameter'),
       '#description' => $this->t('The query parameter to use.'),
       '#default_value' => $this->options['query_param'],
     );
     $form['fallback'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Fallback value'),
       '#description' => $this->t('The fallback value to use when the above query parameter is not present.'),
       '#default_value' => $this->options['fallback'],
diff --git a/core/modules/views/src/Plugin/views/cache/Time.php b/core/modules/views/src/Plugin/views/cache/Time.php
index cd576c1..ac832c8 100644
--- a/core/modules/views/src/Plugin/views/cache/Time.php
+++ b/core/modules/views/src/Plugin/views/cache/Time.php
@@ -94,7 +94,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => $this->options['results_lifespan'],
     );
     $form['results_lifespan_custom'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Seconds'),
       '#size' => '25',
       '#maxlength' => '30',
@@ -114,7 +114,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => $this->options['output_lifespan'],
     );
     $form['output_lifespan_custom'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Seconds'),
       '#size' => '25',
       '#maxlength' => '30',
diff --git a/core/modules/views/src/Plugin/views/display/Block.php b/core/modules/views/src/Plugin/views/display/Block.php
index 9de84ef..b47d0b9 100644
--- a/core/modules/views/src/Plugin/views/display/Block.php
+++ b/core/modules/views/src/Plugin/views/display/Block.php
@@ -187,7 +187,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       case 'block_description':
         $form['#title'] .= $this->t('Block admin description');
         $form['block_description'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#description' => $this->t('This will appear as the name of this block in administer >> structure >> blocks.'),
           '#default_value' => $this->getOption('block_description'),
         );
@@ -195,7 +195,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       case 'block_category':
         $form['#title'] .= $this->t('Block category');
         $form['block_category'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#autocomplete_route_name' => 'block.category_autocomplete',
           '#description' => $this->t('The category this block will appear under on the <a href="@href">blocks placement page</a>.', array('@href' => \Drupal::url('block.admin_display'))),
           '#default_value' => $this->getOption('block_category'),
diff --git a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
index 87bc221..cc95c0d 100644
--- a/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php
@@ -1410,7 +1410,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       case 'display_id':
         $form['#title'] .= $this->t('The machine name of this display');
         $form['display_id'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => $this->t('Machine name of the display'),
           '#default_value' => !empty($this->display['new_id']) ? $this->display['new_id'] : $this->display['id'],
           '#required' => TRUE,
@@ -1421,12 +1421,12 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['#title'] .= $this->t('The name and the description of this display');
         $form['display_title'] = array(
           '#title' => $this->t('Administrative name'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $this->display['display_title'],
         );
         $form['display_description'] = array(
           '#title' => $this->t('Administrative description'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $this->getOption('display_description'),
         );
         break;
@@ -1443,7 +1443,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['#title'] .= $this->t('The title of this view');
         $form['title'] = array(
           '#title' => $this->t('Title'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#description' => $this->t('This title will be displayed with the view, wherever titles are normally displayed; i.e, as the page title, block title, etc.'),
           '#default_value' => $this->getOption('title'),
           '#maxlength' => 255,
@@ -1452,7 +1452,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       case 'css_class':
         $form['#title'] .= $this->t('CSS class');
         $form['css_class'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => $this->t('CSS class name(s)'),
           '#description' => $this->t('Multiples classes should be separated by spaces.'),
           '#default_value' => $this->getOption('css_class'),
@@ -1503,7 +1503,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
           ),
         );
         $form['use_more_text'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => $this->t('More link text'),
           '#description' => $this->t('The text to display for the more link.'),
           '#default_value' => $this->getOption('use_more_text'),
@@ -1753,7 +1753,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         }
 
         $form['link_url'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => $this->t('Custom URL'),
           '#default_value' => $this->getOption('link_url'),
           '#description' => $this->t('A Drupal path or external URL the more link will point to. Note that this will override the link display setting above.') . $output,
diff --git a/core/modules/views/src/Plugin/views/display/Page.php b/core/modules/views/src/Plugin/views/display/Page.php
index 27905b8..082cd1b 100644
--- a/core/modules/views/src/Plugin/views/display/Page.php
+++ b/core/modules/views/src/Plugin/views/display/Page.php
@@ -209,7 +209,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['menu']['title'] = array(
           '#prefix' => '<div class="views-left-50">',
           '#title' => $this->t('Menu link title'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $menu['title'],
           '#states' => array(
             'visible' => array(
@@ -227,7 +227,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         );
         $form['menu']['description'] = array(
           '#title' => $this->t('Description'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $menu['description'],
           '#description' => $this->t("Shown when hovering over the menu link."),
           '#states' => array(
@@ -277,7 +277,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         }
         $form['menu']['weight'] = array(
           '#title' => $this->t('Weight'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => isset($menu['weight']) ? $menu['weight'] : 0,
           '#description' => $this->t('In the menu, the heavier links will sink and the lighter links will be positioned nearer the top.'),
           '#states' => array(
@@ -334,7 +334,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['tab_options']['title'] = array(
           '#prefix' => '<div class="views-left-75">',
           '#title' => $this->t('Title'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $tab_options['title'],
           '#description' => $this->t('If creating a parent menu item, enter the title of the item.'),
           '#states' => array(
@@ -350,7 +350,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         );
         $form['tab_options']['description'] = array(
           '#title' => $this->t('Description'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $tab_options['description'],
           '#description' => $this->t('If creating a parent menu item, enter the description of the item.'),
           '#states' => array(
@@ -367,7 +367,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['tab_options']['weight'] = array(
           '#suffix' => '</div>',
           '#title' => $this->t('Tab weight'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#default_value' => $tab_options['weight'],
           '#size' => 5,
           '#description' => $this->t('If the parent menu item is a tab, enter the weight of the tab. Heavier tabs will sink and the lighter tabs will be positioned nearer to the first menu item.'),
diff --git a/core/modules/views/src/Plugin/views/display/PathPluginBase.php b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
index 415b704..ca49d04 100644
--- a/core/modules/views/src/Plugin/views/display/PathPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
@@ -390,7 +390,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       case 'path':
         $form['#title'] .= $this->t('The menu path or URL of this view');
         $form['path'] = array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#title' => $this->t('Path'),
           '#description' => $this->t('This view will be displayed by visiting this path on your site. You may use "%" in your URL to represent values that will be used for contextual filters: For example, "node/%/feed". If needed you can even specify named route parameters like taxonomy/term/%taxonomy_term'),
           '#default_value' => $this->getOption('path'),
diff --git a/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php b/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
index 7f0caa9..2a52eaf 100644
--- a/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
+++ b/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
@@ -56,7 +56,7 @@ protected function defineOptions() {
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
     $form['submit_button'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Submit button text'),
       '#default_value' => $this->options['submit_button'],
       '#required' => TRUE,
@@ -69,7 +69,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['reset_button_label'] = array(
-     '#type' => 'textfield',
+     '#type' => 'text',
       '#title' => $this->t('Reset button label'),
       '#description' => $this->t('Text to display in the reset button of the exposed form.'),
       '#default_value' => $this->options['reset_button_label'],
@@ -82,7 +82,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['exposed_sorts_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Exposed sorts label'),
       '#default_value' => $this->options['exposed_sorts_label'],
       '#required' => TRUE,
@@ -96,7 +96,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['sort_asc_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label for ascending sort'),
       '#default_value' => $this->options['sort_asc_label'],
       '#required' => TRUE,
@@ -108,7 +108,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['sort_desc_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label for descending sort'),
       '#default_value' => $this->options['sort_desc_label'],
       '#required' => TRUE,
diff --git a/core/modules/views/src/Plugin/views/field/Boolean.php b/core/modules/views/src/Plugin/views/field/Boolean.php
index 94dc679..5f2c507 100644
--- a/core/modules/views/src/Plugin/views/field/Boolean.php
+++ b/core/modules/views/src/Plugin/views/field/Boolean.php
@@ -80,7 +80,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => $this->options['type'],
     );
     $form['type_custom_true'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Custom output for TRUE'),
       '#default_value' => $this->options['type_custom_true'],
       '#states' => array(
@@ -90,7 +90,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       ),
     );
     $form['type_custom_false'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Custom output for FALSE'),
       '#default_value' => $this->options['type_custom_false'],
       '#states' => array(
diff --git a/core/modules/views/src/Plugin/views/field/Counter.php b/core/modules/views/src/Plugin/views/field/Counter.php
index a524222..0f32bd5 100644
--- a/core/modules/views/src/Plugin/views/field/Counter.php
+++ b/core/modules/views/src/Plugin/views/field/Counter.php
@@ -40,7 +40,7 @@ protected function defineOptions() {
    */
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['counter_start'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Starting value'),
       '#default_value' => $this->options['counter_start'],
       '#description' => $this->t('Specify the number the counter should start at.'),
diff --git a/core/modules/views/src/Plugin/views/field/Date.php b/core/modules/views/src/Plugin/views/field/Date.php
index 8857c1a..aa9f8e5 100644
--- a/core/modules/views/src/Plugin/views/field/Date.php
+++ b/core/modules/views/src/Plugin/views/field/Date.php
@@ -109,7 +109,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => isset($this->options['date_format']) ? $this->options['date_format'] : 'small',
     );
     $form['custom_date_format'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Custom date format'),
       '#description' => $this->t('If "Custom", see <a href="http://us.php.net/manual/en/function.date.php" target="_blank">the PHP docs</a> for date formats. Otherwise, enter the number of different time units to display, which defaults to 2.'),
       '#default_value' => isset($this->options['custom_date_format']) ? $this->options['custom_date_format'] : '',
diff --git a/core/modules/views/src/Plugin/views/field/Field.php b/core/modules/views/src/Plugin/views/field/Field.php
index 46d3f5f..ff8490d 100644
--- a/core/modules/views/src/Plugin/views/field/Field.php
+++ b/core/modules/views/src/Plugin/views/field/Field.php
@@ -534,7 +534,7 @@ function multiple_options_form(&$form, FormStateInterface $form_state) {
     list($prefix, $suffix) = explode('@count', $this->t('Display @count value(s)'));
 
     if ($field->getCardinality() == FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED) {
-      $type = 'textfield';
+      $type = 'text';
       $options = NULL;
       $size = 5;
     }
@@ -562,7 +562,7 @@ function multiple_options_form(&$form, FormStateInterface $form_state) {
     );
 
     $form['separator'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Separator'),
       '#default_value' => $this->options['separator'],
       '#states' => array(
@@ -592,7 +592,7 @@ function multiple_options_form(&$form, FormStateInterface $form_state) {
 
     list($prefix, $suffix) = explode('@count', $this->t('starting from @count'));
     $form['delta_offset'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 5,
       '#field_prefix' => $prefix,
       '#field_suffix' => $suffix,
diff --git a/core/modules/views/src/Plugin/views/field/FieldPluginBase.php b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php
index 3089c39..527170c 100644
--- a/core/modules/views/src/Plugin/views/field/FieldPluginBase.php
+++ b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php
@@ -519,7 +519,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#weight' => -103,
     );
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Label'),
       '#default_value' => $label,
       '#states' => array(
@@ -589,7 +589,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['element_class'] = array(
       '#title' => $this->t('CSS class'),
       '#description' => $this->t('You may use token substitutions from the rewriting section in this class.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['element_class'],
       '#states' => array(
         'visible' => array(
@@ -633,7 +633,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['element_label_class'] = array(
       '#title' => $this->t('CSS class'),
       '#description' => $this->t('You may use token substitutions from the rewriting section in this class.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['element_label_class'],
       '#states' => array(
         'visible' => array(
@@ -678,7 +678,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['element_wrapper_class'] = array(
       '#title' => $this->t('CSS class'),
       '#description' => $this->t('You may use token substitutions from the rewriting section in this class.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['element_wrapper_class'],
       '#states' => array(
         'visible' => array(
@@ -730,7 +730,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['path'] = array(
         '#title' => $this->t('Link path'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['path'],
         '#description' => $this->t('The Drupal path or absolute URL for this link. You may enter data from this view as per the "Replacement patterns" below.'),
         '#states' => array(
@@ -791,7 +791,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['link_class'] = array(
         '#title' => $this->t('Link class'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['link_class'],
         '#description' => $this->t('The CSS class to apply to the link.'),
         '#states' => array(
@@ -802,7 +802,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['alt'] = array(
         '#title' => $this->t('Title text'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['alt'],
         '#description' => $this->t('Text to place as "title" text which most browsers display as a tooltip when hovering over the link.'),
         '#states' => array(
@@ -813,7 +813,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['rel'] = array(
         '#title' => $this->t('Rel Text'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['rel'],
         '#description' => $this->t('Include Rel attribute for use in lightbox2 or other javascript utility.'),
         '#states' => array(
@@ -824,7 +824,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['prefix'] = array(
         '#title' => $this->t('Prefix text'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['prefix'],
         '#description' => $this->t('Any text to display before this link. You may include HTML.'),
         '#states' => array(
@@ -835,7 +835,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['suffix'] = array(
         '#title' => $this->t('Suffix text'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['suffix'],
         '#description' => $this->t('Any text to display after this link. You may include HTML.'),
         '#states' => array(
@@ -846,7 +846,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
       $form['alter']['target'] = array(
         '#title' => $this->t('Target'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['target'],
         '#description' => $this->t("Target of the link, such as _blank, _parent or an iframe's name. This field is rarely used."),
         '#states' => array(
@@ -926,7 +926,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
       $form['alter']['max_length'] = array(
         '#title' => $this->t('Maximum number of characters'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['alter']['max_length'],
         '#states' => array(
           'visible' => array(
@@ -970,7 +970,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
 
       $form['alter']['more_link_text'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('More link label'),
         '#default_value' => $this->options['alter']['more_link_text'],
         '#description' => $this->t('You may use the "Replacement patterns" above.'),
@@ -982,7 +982,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         ),
       );
       $form['alter']['more_link_path'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('More link path'),
         '#default_value' => $this->options['alter']['more_link_path'],
         '#description' => $this->t('This can be an internal Drupal path such as node/add or an external URL such as "http://drupal.org". You may use the "Replacement patterns" above.'),
@@ -1013,7 +1013,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       );
 
       $form['alter']['preserve_tags'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Preserve certain tags'),
         '#description' => $this->t('List the tags that need to be preserved during the stripping process. example &quot;&lt;p&gt; &lt;br&gt;&quot; which will preserve all p and br elements'),
         '#default_value' => $this->options['alter']['preserve_tags'],
diff --git a/core/modules/views/src/Plugin/views/field/Numeric.php b/core/modules/views/src/Plugin/views/field/Numeric.php
index da99d15..15402ec 100644
--- a/core/modules/views/src/Plugin/views/field/Numeric.php
+++ b/core/modules/views/src/Plugin/views/field/Numeric.php
@@ -54,7 +54,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         '#default_value' => $this->options['set_precision'],
       );
       $form['precision'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Precision'),
         '#default_value' => $this->options['precision'],
         '#description' => $this->t('Specify how many digits to print after the decimal point.'),
@@ -66,7 +66,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         '#size' => 2,
       );
       $form['decimal'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Decimal point'),
         '#default_value' => $this->options['decimal'],
         '#description' => $this->t('What single character to use as a decimal point.'),
@@ -94,7 +94,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => $this->options['format_plural'],
     );
     $form['format_plural_singular'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Singular form'),
       '#default_value' => $this->options['format_plural_singular'],
       '#description' => $this->t('Text to use for the singular form.'),
@@ -105,7 +105,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       ),
     );
     $form['format_plural_plural'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Plural form'),
       '#default_value' => $this->options['format_plural_plural'],
       '#description' => $this->t('Text to use for the plural form, @count will be replaced with the value.'),
@@ -116,13 +116,13 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       ),
     );
     $form['prefix'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Prefix'),
       '#default_value' => $this->options['prefix'],
       '#description' => $this->t('Text to put before the number, such as currency symbol.'),
     );
     $form['suffix'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Suffix'),
       '#default_value' => $this->options['suffix'],
       '#description' => $this->t('Text to put after the number, such as currency symbol.'),
diff --git a/core/modules/views/src/Plugin/views/field/PrerenderList.php b/core/modules/views/src/Plugin/views/field/PrerenderList.php
index 38a4b1e..a50e724 100644
--- a/core/modules/views/src/Plugin/views/field/PrerenderList.php
+++ b/core/modules/views/src/Plugin/views/field/PrerenderList.php
@@ -60,7 +60,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['separator'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Separator'),
       '#default_value' => $this->options['separator'],
       '#states' => array(
diff --git a/core/modules/views/src/Plugin/views/field/Serialized.php b/core/modules/views/src/Plugin/views/field/Serialized.php
index 0540214..d4ca2e4 100644
--- a/core/modules/views/src/Plugin/views/field/Serialized.php
+++ b/core/modules/views/src/Plugin/views/field/Serialized.php
@@ -48,7 +48,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => $this->options['format'],
     );
     $form['key'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Which key should be displayed'),
       '#default_value' => $this->options['key'],
       '#states' => array(
diff --git a/core/modules/views/src/Plugin/views/field/TimeInterval.php b/core/modules/views/src/Plugin/views/field/TimeInterval.php
index faf5fd6..8aa4913 100644
--- a/core/modules/views/src/Plugin/views/field/TimeInterval.php
+++ b/core/modules/views/src/Plugin/views/field/TimeInterval.php
@@ -75,7 +75,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
 
     $form['granularity'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Granularity'),
       '#description' => $this->t('How many different units to display in the string.'),
       '#default_value' => $this->options['granularity'],
diff --git a/core/modules/views/src/Plugin/views/filter/Equality.php b/core/modules/views/src/Plugin/views/filter/Equality.php
index 36070ae..2f90d2a 100644
--- a/core/modules/views/src/Plugin/views/filter/Equality.php
+++ b/core/modules/views/src/Plugin/views/filter/Equality.php
@@ -36,7 +36,7 @@ public function operatorOptions() {
    */
   protected function valueForm(&$form, FormStateInterface $form_state) {
     $form['value'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Value'),
       '#size' => 30,
       '#default_value' => $this->value,
diff --git a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
index b5f8bf8..299802f 100644
--- a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
+++ b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
@@ -533,14 +533,14 @@ public function buildExposeForm(&$form, FormStateInterface $form_state) {
       );
     }
     $form['expose']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['expose']['label'],
       '#title' => $this->t('Label'),
       '#size' => 40,
     );
 
     $form['expose']['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['expose']['description'],
       '#title' => $this->t('Description'),
       '#size' => 60,
@@ -560,7 +560,7 @@ public function buildExposeForm(&$form, FormStateInterface $form_state) {
         '#default_value' => !empty($this->options['expose']['use_operator']),
       );
       $form['expose']['operator_id'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['expose']['operator_id'],
         '#title' => $this->t('Operator identifier'),
         '#size' => 40,
@@ -609,7 +609,7 @@ public function buildExposeForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['expose']['identifier'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['expose']['identifier'],
       '#title' => $this->t('Filter identifier'),
       '#size' => 40,
@@ -863,20 +863,20 @@ protected function buildExposedFiltersGroupForm(&$form, FormStateInterface $form
       $identifier = 'group_' . $this->options['expose']['identifier'];
     }
     $form['group_info']['identifier'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $identifier,
       '#title' => $this->t('Filter identifier'),
       '#size' => 40,
       '#description' => $this->t('This will appear in the URL after the ? to identify this filter. Cannot be blank.'),
     );
     $form['group_info']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['group_info']['label'],
       '#title' => $this->t('Label'),
       '#size' => 40,
     );
     $form['group_info']['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['group_info']['description'],
       '#title' => $this->t('Description'),
       '#size' => 60,
@@ -917,14 +917,14 @@ protected function buildExposedFiltersGroupForm(&$form, FormStateInterface $form
       $identifier = 'group_' . $this->options['expose']['identifier'];
     }
     $form['group_info']['identifier'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $identifier,
       '#title' => $this->t('Filter identifier'),
       '#size' => 40,
       '#description' => $this->t('This will appear in the URL after the ? to identify this filter. Cannot be blank.'),
     );
     $form['group_info']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['group_info']['label'],
       '#title' => $this->t('Label'),
       '#size' => 40,
@@ -1024,7 +1024,7 @@ protected function buildExposedFiltersGroupForm(&$form, FormStateInterface $form
         'title' => array(
           '#title' => $this->t('Label'),
           '#title_display' => 'invisible',
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#size' => 20,
           '#default_value' => $default_title,
         ),
diff --git a/core/modules/views/src/Plugin/views/filter/Numeric.php b/core/modules/views/src/Plugin/views/filter/Numeric.php
index 38c0fca..c99548c 100644
--- a/core/modules/views/src/Plugin/views/filter/Numeric.php
+++ b/core/modules/views/src/Plugin/views/filter/Numeric.php
@@ -167,7 +167,7 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
     $user_input = $form_state->getUserInput();
     if ($which == 'all') {
       $form['value']['value'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => !$exposed ? $this->t('Value') : '',
         '#size' => 30,
         '#default_value' => $this->value['value'],
@@ -187,7 +187,7 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
       // When exposed we drop the value-value and just do value if
       // the operator is locked.
       $form['value'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => !$exposed ? $this->t('Value') : '',
         '#size' => 30,
         '#default_value' => $this->value['value'],
@@ -200,13 +200,13 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
 
     if ($which == 'all' || $which == 'minmax') {
       $form['value']['min'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => !$exposed ? $this->t('Min') : '',
         '#size' => 30,
         '#default_value' => $this->value['min'],
       );
       $form['value']['max'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => !$exposed ? $this->t('And max') : $this->t('And'),
         '#size' => 30,
         '#default_value' => $this->value['max'],
diff --git a/core/modules/views/src/Plugin/views/filter/String.php b/core/modules/views/src/Plugin/views/filter/String.php
index 54dbb49..3f6e5da 100644
--- a/core/modules/views/src/Plugin/views/filter/String.php
+++ b/core/modules/views/src/Plugin/views/filter/String.php
@@ -207,7 +207,7 @@ protected function valueForm(&$form, FormStateInterface $form_state) {
 
     if ($which == 'all' || $which == 'value') {
       $form['value'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Value'),
         '#size' => 30,
         '#default_value' => $this->value,
diff --git a/core/modules/views/src/Plugin/views/pager/Full.php b/core/modules/views/src/Plugin/views/pager/Full.php
index 3a522e8..483470f 100644
--- a/core/modules/views/src/Plugin/views/pager/Full.php
+++ b/core/modules/views/src/Plugin/views/pager/Full.php
@@ -54,14 +54,14 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['tags']['first'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('First page link text'),
       '#default_value' => $this->options['tags']['first'],
       '#weight' => -10,
     );
 
     $form['tags']['last'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Last page link text'),
       '#default_value' => $this->options['tags']['last'],
       '#weight' => 10,
diff --git a/core/modules/views/src/Plugin/views/pager/None.php b/core/modules/views/src/Plugin/views/pager/None.php
index b364032..1959038 100644
--- a/core/modules/views/src/Plugin/views/pager/None.php
+++ b/core/modules/views/src/Plugin/views/pager/None.php
@@ -55,7 +55,7 @@ protected function defineOptions() {
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
     $form['offset'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Offset (number of items to skip)'),
       '#description' => $this->t('For example, set this to 3 and the first 3 items will not be displayed.'),
       '#default_value' => $this->options['offset'],
diff --git a/core/modules/views/src/Plugin/views/pager/Some.php b/core/modules/views/src/Plugin/views/pager/Some.php
index 125fc3c..9f4831e 100644
--- a/core/modules/views/src/Plugin/views/pager/Some.php
+++ b/core/modules/views/src/Plugin/views/pager/Some.php
@@ -46,13 +46,13 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $pager_text = $this->displayHandler->getPagerText();
     $form['items_per_page'] = array(
       '#title' => $pager_text['items per page title'],
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#description' => $pager_text['items per page description'],
       '#default_value' => $this->options['items_per_page'],
     );
 
     $form['offset'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Offset (number of items to skip)'),
       '#description' => $this->t('For example, set this to 3 and the first 3 items will not be displayed.'),
       '#default_value' => $this->options['offset'],
diff --git a/core/modules/views/src/Plugin/views/pager/SqlBase.php b/core/modules/views/src/Plugin/views/pager/SqlBase.php
index a3d0d22..cc40ffc 100644
--- a/core/modules/views/src/Plugin/views/pager/SqlBase.php
+++ b/core/modules/views/src/Plugin/views/pager/SqlBase.php
@@ -84,13 +84,13 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['tags']['previous'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Previous page link text'),
       '#default_value' => $this->options['tags']['previous'],
     );
 
     $form['tags']['next'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Next page link text'),
       '#default_value' => $this->options['tags']['next'],
     );
@@ -112,7 +112,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['expose']['items_per_page_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Items per page label'),
       '#required' => TRUE,
       '#description' => $this->t('Label to use in the exposed items per page form element.'),
@@ -125,7 +125,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['expose']['items_per_page_options'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Exposed items per page options'),
       '#required' => TRUE,
       '#description' => $this->t('Set between which values the user can choose when determining the items per page. Separated by comma.'),
@@ -146,7 +146,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['expose']['items_per_page_options_all_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('All items label'),
       '#description' => $this->t('Which label will be used to display all items'),
       '#default_value' => $this->options['expose']['items_per_page_options_all_label'],
@@ -165,7 +165,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['expose']['offset_label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Offset label'),
       '#required' => TRUE,
       '#description' => $this->t('Label to use in the exposed offset form element.'),
@@ -359,7 +359,7 @@ public function exposedFormAlter(&$form, FormStateInterface $form_state) {
 
     if ($this->isOffsetExposed()) {
       $form['offset'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#size' => 10,
         '#maxlength' => 10,
         '#title' => $this->options['expose']['offset_label'],
diff --git a/core/modules/views/src/Plugin/views/query/Sql.php b/core/modules/views/src/Plugin/views/query/Sql.php
index d39ad46..91f13d8 100644
--- a/core/modules/views/src/Plugin/views/query/Sql.php
+++ b/core/modules/views/src/Plugin/views/query/Sql.php
@@ -222,13 +222,13 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#default_value' => !empty($this->options['replica']),
     );
     $form['query_comment'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Query Comment'),
       '#description' => $this->t('If set, this comment will be embedded in the query and passed to the SQL server. This can be helpful for logging or debugging.'),
       '#default_value' => $this->options['query_comment'],
     );
     $form['query_tags'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Query Tags'),
       '#description' => $this->t('If set, these tags will be appended to the query and can be used to identify the query in a module. This can be helpful for altering queries.'),
       '#default_value' => implode(', ', $this->options['query_tags']),
diff --git a/core/modules/views/src/Plugin/views/relationship/GroupwiseMax.php b/core/modules/views/src/Plugin/views/relationship/GroupwiseMax.php
index db300db..8a8d701 100644
--- a/core/modules/views/src/Plugin/views/relationship/GroupwiseMax.php
+++ b/core/modules/views/src/Plugin/views/relationship/GroupwiseMax.php
@@ -113,7 +113,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['subquery_namespace'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Subquery namespace'),
       '#description' => $this->t('Advanced. Enter a namespace for the subquery used by this relationship.'),
       '#default_value' => $this->options['subquery_namespace'],
diff --git a/core/modules/views/src/Plugin/views/row/Fields.php b/core/modules/views/src/Plugin/views/row/Fields.php
index 69d96ec..b99dfc2 100644
--- a/core/modules/views/src/Plugin/views/row/Fields.php
+++ b/core/modules/views/src/Plugin/views/row/Fields.php
@@ -77,7 +77,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['separator'] = array(
       '#title' => $this->t('Separator'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => 10,
       '#default_value' => isset($this->options['separator']) ? $this->options['separator'] : '',
       '#description' => $this->t('The separator may be placed between inline fields to keep them from squishing up next to each other. You can use HTML in this field.'),
diff --git a/core/modules/views/src/Plugin/views/sort/SortPluginBase.php b/core/modules/views/src/Plugin/views/sort/SortPluginBase.php
index 45b86be..84dc37b 100644
--- a/core/modules/views/src/Plugin/views/sort/SortPluginBase.php
+++ b/core/modules/views/src/Plugin/views/sort/SortPluginBase.php
@@ -206,7 +206,7 @@ public function buildExposeForm(&$form, FormStateInterface $form_state) {
     $form['expose']['#flatten'] = TRUE;
 
     $form['expose']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['expose']['label'],
       '#title' => $this->t('Label'),
       '#required' => TRUE,
diff --git a/core/modules/views/src/Plugin/views/style/DefaultSummary.php b/core/modules/views/src/Plugin/views/style/DefaultSummary.php
index f81c9a1..5f26953 100644
--- a/core/modules/views/src/Plugin/views/style/DefaultSummary.php
+++ b/core/modules/views/src/Plugin/views/style/DefaultSummary.php
@@ -44,7 +44,7 @@ public function query() {
 
   public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['base_path'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Base path'),
       '#default_value' => $this->options['base_path'],
       '#description' => $this->t('Define the base path for links in this summary
@@ -65,7 +65,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['items_per_page'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Items to display'),
       '#default_value' => $this->options['items_per_page'],
       '#states' => array(
diff --git a/core/modules/views/src/Plugin/views/style/Grid.php b/core/modules/views/src/Plugin/views/style/Grid.php
index a09803b..07698cf 100644
--- a/core/modules/views/src/Plugin/views/style/Grid.php
+++ b/core/modules/views/src/Plugin/views/style/Grid.php
@@ -81,7 +81,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['col_class_custom'] = array(
       '#title' => $this->t('Custom column class'),
       '#description' => $this->t('Additional classes to provide on each column. Separated by a space.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['col_class_custom'],
     );
     if ($this->usesFields()) {
@@ -96,7 +96,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['row_class_custom'] = array(
       '#title' => $this->t('Custom row class'),
       '#description' => $this->t('Additional classes to provide on each row. Separated by a space.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['row_class_custom'],
     );
     if ($this->usesFields()) {
diff --git a/core/modules/views/src/Plugin/views/style/HtmlList.php b/core/modules/views/src/Plugin/views/style/HtmlList.php
index d965792..723cf91 100644
--- a/core/modules/views/src/Plugin/views/style/HtmlList.php
+++ b/core/modules/views/src/Plugin/views/style/HtmlList.php
@@ -65,14 +65,14 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     $form['wrapper_class'] = array(
       '#title' => $this->t('Wrapper class'),
       '#description' => $this->t('The class to provide on the wrapper, outside the list.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => '30',
       '#default_value' => $this->options['wrapper_class'],
     );
     $form['class'] = array(
       '#title' => $this->t('List class'),
       '#description' => $this->t('The class to provide on the list element itself.'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#size' => '30',
       '#default_value' => $this->options['class'],
     );
diff --git a/core/modules/views/src/Plugin/views/style/Rss.php b/core/modules/views/src/Plugin/views/style/Rss.php
index fbbf4dd..01c58ba 100644
--- a/core/modules/views/src/Plugin/views/style/Rss.php
+++ b/core/modules/views/src/Plugin/views/style/Rss.php
@@ -71,7 +71,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     parent::buildOptionsForm($form, $form_state);
 
     $form['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('RSS description'),
       '#default_value' => $this->options['description'],
       '#description' => $this->t('This will appear in the RSS feed itself.'),
diff --git a/core/modules/views/src/Plugin/views/style/StylePluginBase.php b/core/modules/views/src/Plugin/views/style/StylePluginBase.php
index 360b717..77eccb5 100644
--- a/core/modules/views/src/Plugin/views/style/StylePluginBase.php
+++ b/core/modules/views/src/Plugin/views/style/StylePluginBase.php
@@ -324,7 +324,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       $form['row_class'] = array(
         '#title' => $this->t('Row class'),
         '#description' => $this->t('The class to provide on each row.'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => $this->options['row_class'],
       );
 
diff --git a/core/modules/views/src/Plugin/views/style/Table.php b/core/modules/views/src/Plugin/views/style/Table.php
index dea6f0f..1f47032 100644
--- a/core/modules/views/src/Plugin/views/style/Table.php
+++ b/core/modules/views/src/Plugin/views/style/Table.php
@@ -229,7 +229,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
     );
 
     $form['caption'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Caption for the table'),
       '#description' => $this->t('A title which is semantically associated to your table for increased accessibility.'),
       '#default_value' => $this->options['caption'],
@@ -243,7 +243,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['summary'] = array(
       '#title' => $this->t('Summary title'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['summary'],
       '#fieldset' => 'accessibility_details',
     );
@@ -354,7 +354,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       $form['info'][$field]['separator'] = array(
         '#title' => $this->t('Separator for @field', array('@field' => $field)),
         '#title_display' => 'invisible',
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#size' => 10,
         '#default_value' => isset($this->options['info'][$field]['separator']) ? $this->options['info'][$field]['separator'] : '',
         '#states' => array(
diff --git a/core/modules/views/src/Plugin/views/style/UnformattedSummary.php b/core/modules/views/src/Plugin/views/style/UnformattedSummary.php
index 4d5d3bd..337ebca 100644
--- a/core/modules/views/src/Plugin/views/style/UnformattedSummary.php
+++ b/core/modules/views/src/Plugin/views/style/UnformattedSummary.php
@@ -39,7 +39,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
       '#title' => $this->t('Display items inline'),
     );
     $form['separator'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Separator'),
       '#default_value' => $this->options['separator'],
     );
diff --git a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
index fa80c98..fb63747 100644
--- a/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
+++ b/core/modules/views/src/Plugin/views/wizard/WizardPluginBase.php
@@ -220,12 +220,12 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
     $form['displays']['page']['options']['title'] = array(
       '#title' => $this->t('Page title'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#maxlength' => 255,
     );
     $form['displays']['page']['options']['path'] = array(
       '#title' => $this->t('Path'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#field_prefix' => $path_prefix,
       // Account for the leading backslash.
       '#maxlength' => 254,
@@ -292,7 +292,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     );
     $form['displays']['page']['options']['link_properties']['title'] = array(
       '#title' => $this->t('Link text'),
-      '#type' => 'textfield',
+      '#type' => 'text',
     );
     // Only offer a feed if we have at least one available feed row style.
     if ($feed_row_options) {
@@ -313,7 +313,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       );
       $form['displays']['page']['options']['feed_properties']['path'] = array(
         '#title' => $this->t('Feed path'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#field_prefix' => $path_prefix,
         // Account for the leading backslash.
         '#maxlength' => 254,
@@ -368,7 +368,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
       $form['displays']['block']['options']['title'] = array(
         '#title' => $this->t('Block title'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#maxlength' => 255,
       );
       $form['displays']['block']['options']['style'] = array(
@@ -436,7 +436,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
       $form['displays']['rest_export']['options']['path'] = array(
         '#title' => $this->t('REST export path'),
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#field_prefix' => $path_prefix,
         // Account for the leading backslash.
         '#maxlength' => 254,
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php
index 5d5f19a..020f31c 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display/DisplayTest.php
@@ -83,7 +83,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['#title'] .= $this->t('Test option');
         $form['test_option'] = array(
           '#title' => $this->t('Test option'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#description' => $this->t('This is a textfield for test_option.'),
           '#default_value' => $this->getOption('test_option'),
         );
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php
index a302062..2b6452a 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/display_extender/DisplayExtenderTest.php
@@ -68,7 +68,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
         $form['#title'] .= $this->t('Test option');
         $form['test_extender_test_option'] = array(
           '#title' => $this->t('Test option'),
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#description' => $this->t('This is a textfield for test_option.'),
           '#default_value' => $this->options['test_extender_test_option'],
         );
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php
index 58ac453..3c384eb 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/query/QueryTest.php
@@ -45,7 +45,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['test_setting'] = array(
       '#title' => $this->t('Test setting'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#default_value' => $this->options['test_setting'],
     );
   }
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php
index f3c8d9e..66e13a5 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/row/RowTest.php
@@ -50,7 +50,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['test_option'] = array(
       '#title' => $this->t('Test option'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#description' => $this->t('This is a textfield for test_option.'),
       '#default_value' => $this->options['test_option'],
     );
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php
index a81ac82..610f776 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/style/StyleTest.php
@@ -58,7 +58,7 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
 
     $form['test_option'] = array(
       '#title' => $this->t('Test option'),
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#description' => $this->t('This is a textfield for test_option.'),
       '#default_value' => $this->options['test_option'],
     );
diff --git a/core/modules/views_ui/src/Form/Ajax/AddHandler.php b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
index 8cc2e8c..ceb7581 100644
--- a/core/modules/views_ui/src/Form/Ajax/AddHandler.php
+++ b/core/modules/views_ui/src/Form/Ajax/AddHandler.php
@@ -93,7 +93,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         '#attributes' => array('class' => array('container-inline')),
       );
       $form['override']['controls']['options_search'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#title' => $this->t('Search'),
       );
 
diff --git a/core/modules/views_ui/src/Form/Ajax/EditDetails.php b/core/modules/views_ui/src/Form/Ajax/EditDetails.php
index 6790029..fb86280 100644
--- a/core/modules/views_ui/src/Form/Ajax/EditDetails.php
+++ b/core/modules/views_ui/src/Form/Ajax/EditDetails.php
@@ -44,7 +44,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#attributes' => array('class' => array('scroll'), 'data-drupal-views-scroll' => TRUE),
     );
     $form['details']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Administrative name'),
       '#default_value' => $view->label(),
     );
@@ -55,12 +55,12 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#default_value' => $view->get('langcode'),
     );
     $form['details']['description'] = array(
-       '#type' => 'textfield',
+       '#type' => 'text',
        '#title' => t('Administrative description'),
        '#default_value' => $view->get('description'),
      );
     $form['details']['tag'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => t('Administrative tags'),
       '#description' => t('Enter a comma-separated list of words to describe your view.'),
       '#default_value' => $view->get('tag'),
diff --git a/core/modules/views_ui/src/Form/Ajax/Rearrange.php b/core/modules/views_ui/src/Form/Ajax/Rearrange.php
index 9e2259f..a2d9c59 100644
--- a/core/modules/views_ui/src/Form/Ajax/Rearrange.php
+++ b/core/modules/views_ui/src/Form/Ajax/Rearrange.php
@@ -115,7 +115,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       $form['fields'][$id]['name'] = array('#markup' => $markup);
 
       $form['fields'][$id]['weight'] = array(
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => ++$count,
         '#attributes' => array('class' => array('weight')),
         '#title' => t('Weight for @title', array('@title' => $name)),
diff --git a/core/modules/views_ui/src/Form/Ajax/RearrangeFilter.php b/core/modules/views_ui/src/Form/Ajax/RearrangeFilter.php
index 3ae2d31..606ca1e 100644
--- a/core/modules/views_ui/src/Form/Ajax/RearrangeFilter.php
+++ b/core/modules/views_ui/src/Form/Ajax/RearrangeFilter.php
@@ -163,7 +163,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       $form['filters'][$id]['weight'] = array(
         '#title' => t('Weight for @id', array('@id' => $id)),
         '#title_display' => 'invisible',
-        '#type' => 'textfield',
+        '#type' => 'text',
         '#default_value' => ++$count,
         '#size' => 8,
       );
diff --git a/core/modules/views_ui/src/ViewAddForm.php b/core/modules/views_ui/src/ViewAddForm.php
index 9750094..420fe9e 100644
--- a/core/modules/views_ui/src/ViewAddForm.php
+++ b/core/modules/views_ui/src/ViewAddForm.php
@@ -65,7 +65,7 @@ public function form(array $form, FormStateInterface $form_state) {
     );
 
     $form['name']['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('View name'),
       '#required' => TRUE,
       '#size' => 32,
@@ -87,7 +87,7 @@ public function form(array $form, FormStateInterface $form_state) {
       '#title' => $this->t('Description'),
     );
     $form['name']['description'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Provide description'),
       '#title_display' => 'invisible',
       '#size' => 64,
diff --git a/core/modules/views_ui/src/ViewDuplicateForm.php b/core/modules/views_ui/src/ViewDuplicateForm.php
index 36f1a7f..1e79cbb 100644
--- a/core/modules/views_ui/src/ViewDuplicateForm.php
+++ b/core/modules/views_ui/src/ViewDuplicateForm.php
@@ -30,7 +30,7 @@ public function form(array $form, FormStateInterface $form_state) {
     $form['#title'] = $this->t('Duplicate of @label', array('@label' => $this->entity->label()));
 
     $form['label'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('View name'),
       '#required' => TRUE,
       '#size' => 32,
diff --git a/core/modules/views_ui/src/ViewPreviewForm.php b/core/modules/views_ui/src/ViewPreviewForm.php
index 1737d29..4702c28 100644
--- a/core/modules/views_ui/src/ViewPreviewForm.php
+++ b/core/modules/views_ui/src/ViewPreviewForm.php
@@ -51,7 +51,7 @@ public function form(array $form, FormStateInterface $form_state) {
 
     // Add the arguments textfield
     $form['controls']['view_args'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => $this->t('Preview with contextual filters:'),
       '#description' => $this->t('Separate contextual filter values with a "/". For example, %example.', array('%example' => '40/12/10')),
       '#id' => 'preview-args',
diff --git a/core/tests/Drupal/Tests/Core/Form/FormTestBase.php b/core/tests/Drupal/Tests/Core/Form/FormTestBase.php
index 2386eb2..b5b06ee 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormTestBase.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormTestBase.php
@@ -287,7 +287,7 @@ protected function getElementInfo($type) {
     $types['radios'] = array(
       '#input' => TRUE,
     );
-    $types['textfield'] = array(
+    $types['text'] = array(
       '#input' => TRUE,
     );
     $types['submit'] = array(
@@ -343,7 +343,7 @@ protected function requestUri() {
 
   function test_form_id() {
     $form['test'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Test',
     );
     $form['options'] = array(
diff --git a/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php b/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php
index cc49c2c..28e7b07 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormValidatorTest.php
@@ -157,7 +157,7 @@ public function testSetElementErrorsFromFormState() {
       '#parents' => array(),
     );
     $form['test'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Test',
       '#parents' => array('test'),
     );
@@ -316,7 +316,7 @@ public function testRequiredErrorMessage($element, $expected_message) {
 
     $form = array();
     $form['test'] = $element + array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#value' => '',
       '#needs_validation' => TRUE,
       '#required' => TRUE,
@@ -368,7 +368,7 @@ public function testElementValidate() {
 
     $form = array();
     $form['test'] = array(
-      '#type' => 'textfield',
+      '#type' => 'text',
       '#title' => 'Test',
       '#parents' => array('test'),
       '#element_validate' => array(array($mock, 'element_validate')),
@@ -473,7 +473,7 @@ public function providerTestPerformRequiredValidation() {
       ),
       array(
         array(
-          '#type' => 'textfield',
+          '#type' => 'text',
           '#maxlength' => 7,
           '#value' => $this->randomMachineName(8),
         ),
diff --git a/core/tests/Drupal/Tests/Core/Render/ElementTest.php b/core/tests/Drupal/Tests/Core/Render/ElementTest.php
index 20ac844..6f73e5b 100644
--- a/core/tests/Drupal/Tests/Core/Render/ElementTest.php
+++ b/core/tests/Drupal/Tests/Core/Render/ElementTest.php
@@ -139,7 +139,7 @@ public function providerVisibleChildren() {
       array(array('#property1' => '', 'child1' => array()), array('child1')),
       array(array('#property1' => '', 'child1' => array(), 'child2' => array('#access' => TRUE)), array('child1', 'child2')),
       array(array('#property1' => '', 'child1' => array(), 'child2' => array('#access' => FALSE)), array('child1')),
-      array(array('#property1' => '', 'child1' => array(), 'child2' => array('#type' => 'textfield')), array('child1', 'child2')),
+      array(array('#property1' => '', 'child1' => array(), 'child2' => array('#type' => 'text')), array('child1', 'child2')),
       array(array('#property1' => '', 'child1' => array(), 'child2' => array('#type' => 'value')), array('child1')),
       array(array('#property1' => '', 'child1' => array(), 'child2' => array('#type' => 'hidden')), array('child1')),
     );
