diff --git a/core/misc/cspell/dictionary.txt b/core/misc/cspell/dictionary.txt
index c2db9e7b4c9553349647eac392387cc098d15614..f64a551e12841c0c8806979db918ea6addb4a3b4 100644
--- a/core/misc/cspell/dictionary.txt
+++ b/core/misc/cspell/dictionary.txt
@@ -233,9 +233,7 @@ downcasting
 doxygen
 dragtable
 drillable
-drivernumber
 drivertest
-drivertext
 dropbutton
 dropbuttons
 drupaldevdays
@@ -530,10 +528,8 @@ nojs
 nolink
 nomask
 nonconfigurable
-nonoptional
 noquotes
 nosniff
-nostart
 notexisting
 notnull
 notsimpletest
@@ -767,7 +763,6 @@ subchild
 subclassing
 subcompile
 subcondition
-subcontainer
 subdir
 subelements
 subform
@@ -995,7 +990,6 @@ xmlhttp
 xmlhttprequest
 xpsdocument
 xtmpl
-xxgroup
 yamls
 yarhar
 yarr
@@ -1003,7 +997,6 @@ yearless
 yokotsoko
 yottabyte
 yottabytes
-yygroup
 zartan
 zettabyte
 zettabytes
@@ -1012,4 +1005,3 @@ zoneinfo
 zoomin
 zoomout
 zxvf
-zzgroup
diff --git a/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.module b/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.module
index 96e0a33266077b7e40121c0ed3e2c50a1404bc91..232c404853410dd1f0c8721656b69a348795087e 100644
--- a/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.module
+++ b/core/modules/system/tests/modules/ajax_forms_test/ajax_forms_test.module
@@ -227,20 +227,20 @@ function ajax_forms_test_advanced_commands_add_css_legacy_callback($form, FormSt
 }
 
 /**
- * Ajax form callback: Selects the 'drivertext' element of the validation form.
+ * Ajax form callback: Selects the 'driver_text' element of the validation form.
  */
 function ajax_forms_test_validation_form_callback($form, FormStateInterface $form_state) {
   \Drupal::messenger()->addStatus("ajax_forms_test_validation_form_callback invoked");
-  \Drupal::messenger()->addStatus(t("Callback: drivertext=%drivertext, spare_required_field=%spare_required_field", ['%drivertext' => $form_state->getValue('drivertext'), '%spare_required_field' => $form_state->getValue('spare_required_field')]));
+  \Drupal::messenger()->addStatus(t("Callback: driver_text=%driver_text, spare_required_field=%spare_required_field", ['%driver_text' => $form_state->getValue('driver_text'), '%spare_required_field' => $form_state->getValue('spare_required_field')]));
   return ['#markup' => '<div id="message_area">ajax_forms_test_validation_form_callback at ' . date('c') . '</div>'];
 }
 
 /**
- * Ajax form callback: Selects the 'drivernumber' element of the validation form.
+ * Ajax form callback: Selects the 'driver_number' element of the validation form.
  */
 function ajax_forms_test_validation_number_form_callback($form, FormStateInterface $form_state) {
   \Drupal::messenger()->addStatus("ajax_forms_test_validation_number_form_callback invoked");
-  \Drupal::messenger()->addStatus(t("Callback: drivernumber=%drivernumber, spare_required_field=%spare_required_field", ['%drivernumber' => $form_state->getValue('drivernumber'), '%spare_required_field' => $form_state->getValue('spare_required_field')]));
+  \Drupal::messenger()->addStatus(t("Callback: driver_number=%driver_number, spare_required_field=%spare_required_field", ['%driver_number' => $form_state->getValue('driver_number'), '%spare_required_field' => $form_state->getValue('spare_required_field')]));
   return ['#markup' => '<div id="message_area_number">ajax_forms_test_validation_number_form_callback at ' . date('c') . '</div>'];
 }
 
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 ef6ddaf73653c634da634dd5d371dc629cf780b9..3774d3c57551f0fb71a3839c260363d2744efe14 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
@@ -23,11 +23,11 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function buildForm(array $form, FormStateInterface $form_state) {
-    $form['drivertext'] = [
+    $form['driver_text'] = [
       '#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',
-      '#default_value' => $form_state->getValue('drivertext', ''),
+      '#default_value' => $form_state->getValue('driver_text', ''),
       '#ajax' => [
         'callback' => 'ajax_forms_test_validation_form_callback',
         'wrapper' => 'message_area',
@@ -36,11 +36,11 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#suffix' => '<div id="message_area"></div>',
     ];
 
-    $form['drivernumber'] = [
+    $form['driver_number'] = [
       '#title' => $this->t('AJAX-enabled number field.'),
       '#description' => $this->t("When this one AJAX-triggers and the spare required field is empty, you should not get an error."),
       '#type' => 'number',
-      '#default_value' => $form_state->getValue('drivernumber', ''),
+      '#default_value' => $form_state->getValue('driver_number', ''),
       '#ajax' => [
         'callback' => 'ajax_forms_test_validation_number_form_callback',
         'wrapper' => 'message_area_number',
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestOptionalContainerForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestOptionalContainerForm.php
index 063f03a461c6bd8c44e3a7eb04ce3a464180619f..8a40aad4970c4e1f452eb51367f93862a92fb30a 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestOptionalContainerForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestOptionalContainerForm.php
@@ -29,9 +29,9 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#attributes' => ['class' => ['empty_optional']],
       '#optional' => TRUE,
     ];
-    $form['empty_nonoptional'] = [
+    $form['empty_non_optional'] = [
       '#type' => 'container',
-      '#attributes' => ['class' => ['empty_nonoptional']],
+      '#attributes' => ['class' => ['empty_non_optional']],
       '#optional' => FALSE,
     ];
 
@@ -43,12 +43,12 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     ];
     $form['nonempty_optional']['child_1'] = [];
 
-    $form['nonempty_nonoptional'] = [
+    $form['nonempty_non_optional'] = [
       '#type' => 'container',
-      '#attributes' => ['class' => ['nonempty_nonoptional']],
+      '#attributes' => ['class' => ['nonempty_non_optional']],
       '#optional' => FALSE,
     ];
-    $form['nonempty_nonoptional']['child_2'] = [];
+    $form['nonempty_non_optional']['child_2'] = [];
 
     return $form;
   }
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestSelectForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestSelectForm.php
index becdef16180afe70975934297d1f1291dd0ac6e0..c8a8b2b0fc7afee45ed976b177cce0ef0bc09ca5 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestSelectForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestSelectForm.php
@@ -136,9 +136,9 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     // option groups sorted, some left alone, and at least one with #sort_start
     // set to a non-default value.
     $sortable_options = $this->makeSortableOptions('sso');
-    $sortable_options['sso_zzgroup']['#sort_options'] = TRUE;
-    $sortable_options['sso_xxgroup']['#sort_options'] = TRUE;
-    $sortable_options['sso_xxgroup']['#sort_start'] = 1;
+    $sortable_options['sso_zz_group']['#sort_options'] = TRUE;
+    $sortable_options['sso_xx_group']['#sort_options'] = TRUE;
+    $sortable_options['sso_xx_group']['#sort_start'] = 1;
     // Do not use a sort start on this one.
     $form['sorted'] = [
       '#type' => 'select',
@@ -149,7 +149,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     // Add a select to test sorting with a -NONE- option included,
     // and #sort_start set.
     $sortable_none_options = $this->makeSortableOptions('sno');
-    $sortable_none_options['sno_zzgroup']['#sort_options'] = TRUE;
+    $sortable_none_options['sno_zz_group']['#sort_options'] = TRUE;
     $form['sorted_none'] = [
       '#type' => 'select',
       '#options' => $sortable_none_options,
@@ -160,11 +160,11 @@ public function buildForm(array $form, FormStateInterface $form_state) {
 
     // Add a select to test sorting with a -NONE- option included,
     // and #sort_start not set.
-    $sortable_none_nostart_options = $this->makeSortableOptions('snn');
-    $sortable_none_nostart_options['snn_zzgroup']['#sort_options'] = TRUE;
-    $form['sorted_none_nostart'] = [
+    $sortable_none_no_start_options = $this->makeSortableOptions('snn');
+    $sortable_none_no_start_options['snn_zz_group']['#sort_options'] = TRUE;
+    $form['sorted_none_no_start'] = [
       '#type' => 'select',
-      '#options' => $sortable_none_nostart_options,
+      '#options' => $sortable_none_no_start_options,
       '#sort_options' => TRUE,
       '#empty_value' => 'snn_empty',
     ];
@@ -189,17 +189,17 @@ protected function makeSortableOptions($prefix) {
       // that labels are cast to strings before sorting.
       $prefix . '_first_element' => new TranslatableMarkup('first element'),
       $prefix . '_second' => new TranslatableMarkup('second element'),
-      $prefix . '_zzgroup' => [
+      $prefix . '_zz_group' => [
         $prefix . '_gc' => new TranslatableMarkup('group c'),
         $prefix . '_ga' => new TranslatableMarkup('group a'),
         $prefix . '_gb' => 'group b',
       ],
-      $prefix . '_yygroup' => [
+      $prefix . '_yy_group' => [
         $prefix . '_ge' => new TranslatableMarkup('group e'),
         $prefix . '_gd' => new TranslatableMarkup('group d'),
         $prefix . '_gf' => new TranslatableMarkup('group f'),
       ],
-      $prefix . '_xxgroup' => [
+      $prefix . '_xx_group' => [
         $prefix . '_gz' => new TranslatableMarkup('group z'),
         $prefix . '_gi' => new TranslatableMarkup('group i'),
         $prefix . '_gh' => new TranslatableMarkup('group h'),
diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsAccessForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsAccessForm.php
index c2d062a64f704551d48b826680d7de4af6e830dc..f277168aede87cfdb89d4fa13f1ab52296af875c 100644
--- a/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsAccessForm.php
+++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestVerticalTabsAccessForm.php
@@ -67,10 +67,10 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       '#title' => t('Field 4'),
       '#default_value' => TRUE,
     ];
-    $form['container']['subcontainer'] = [
+    $form['container']['sub_container'] = [
       '#type' => 'container',
     ];
-    $form['container']['subcontainer']['field5'] = [
+    $form['container']['sub_container']['field5'] = [
       '#type' => 'checkbox',
       '#title' => t('Field 5'),
       '#default_value' => TRUE,
@@ -119,7 +119,7 @@ public function validateForm(array &$form, FormStateInterface $form_state) {
       $form_state->setErrorByName('container][field4', t('This checkbox inside a container does not have its default value.'));
     }
     if (empty($values['field5'])) {
-      $form_state->setErrorByName('container][subcontainer][field5', t('This checkbox inside a nested container does not have its default value.'));
+      $form_state->setErrorByName('container][sub_container][field5', t('This checkbox inside a nested container does not have its default value.'));
     }
     if (empty($values['field5'])) {
       $form_state->setErrorByName('tab3][field6', t('This checkbox inside a vertical tab whose fieldset access is allowed does not have its default value.'));
diff --git a/core/modules/system/tests/src/Functional/Form/ElementsContainerTest.php b/core/modules/system/tests/src/Functional/Form/ElementsContainerTest.php
index 44396a1c7eb2099572853a44a909d5878152fcd1..b19499a586b0e4546ec74630b1c1b9fd0f677114 100644
--- a/core/modules/system/tests/src/Functional/Form/ElementsContainerTest.php
+++ b/core/modules/system/tests/src/Functional/Form/ElementsContainerTest.php
@@ -30,9 +30,9 @@ public function testOptionalContainerElements() {
     $this->drupalGet('form-test/optional-container');
     $assertSession = $this->assertSession();
     $assertSession->elementNotExists('css', 'div.empty_optional');
-    $assertSession->elementExists('css', 'div.empty_nonoptional');
+    $assertSession->elementExists('css', 'div.empty_non_optional');
     $assertSession->elementExists('css', 'div.nonempty_optional');
-    $assertSession->elementExists('css', 'div.nonempty_nonoptional');
+    $assertSession->elementExists('css', 'div.nonempty_non_optional');
   }
 
 }
diff --git a/core/modules/system/tests/src/Functional/Form/FormTest.php b/core/modules/system/tests/src/Functional/Form/FormTest.php
index 21a48311cfd8e7f03a78cbe9ad4828d9e485bb69..516829ffe67384ff52f26974d1eb854557a9dae3 100644
--- a/core/modules/system/tests/src/Functional/Form/FormTest.php
+++ b/core/modules/system/tests/src/Functional/Form/FormTest.php
@@ -498,15 +498,15 @@ public function testSelectSorting() {
     $this->validateSelectSorting('unsorted', [
       'uso_first_element',
       'uso_second',
-      'uso_zzgroup',
+      'uso_zz_group',
       'uso_gc',
       'uso_ga',
       'uso_gb',
-      'uso_yygroup',
+      'uso_yy_group',
       'uso_ge',
       'uso_gd',
       'uso_gf',
-      'uso_xxgroup',
+      'uso_xx_group',
       'uso_gz',
       'uso_gi',
       'uso_gh',
@@ -523,15 +523,15 @@ public function testSelectSorting() {
       'sso_b',
       'sso_c',
       'sso_second',
-      'sso_xxgroup',
+      'sso_xx_group',
       'sso_gz',
       'sso_gh',
       'sso_gi',
-      'sso_yygroup',
+      'sso_yy_group',
       'sso_ge',
       'sso_gd',
       'sso_gf',
-      'sso_zzgroup',
+      'sso_zz_group',
       'sso_ga',
       'sso_gb',
       'sso_gc',
@@ -541,7 +541,7 @@ public function testSelectSorting() {
       'sno_empty',
       'sno_first_element',
       'sno_second',
-      'sno_zzgroup',
+      'sno_zz_group',
       'sno_ga',
       'sno_gb',
       'sno_gc',
@@ -549,17 +549,17 @@ public function testSelectSorting() {
       'sno_d',
       'sno_b',
       'sno_c',
-      'sno_xxgroup',
+      'sno_xx_group',
       'sno_gz',
       'sno_gi',
       'sno_gh',
-      'sno_yygroup',
+      'sno_yy_group',
       'sno_ge',
       'sno_gd',
       'sno_gf',
     ]);
 
-    $this->validateSelectSorting('sorted_none_nostart', [
+    $this->validateSelectSorting('sorted_none_no_start', [
       'snn_empty',
       'snn_a',
       'snn_d',
@@ -567,15 +567,15 @@ public function testSelectSorting() {
       'snn_b',
       'snn_c',
       'snn_second',
-      'snn_xxgroup',
+      'snn_xx_group',
       'snn_gz',
       'snn_gi',
       'snn_gh',
-      'snn_yygroup',
+      'snn_yy_group',
       'snn_ge',
       'snn_gd',
       'snn_gf',
-      'snn_zzgroup',
+      'snn_zz_group',
       'snn_ga',
       'snn_gb',
       'snn_gc',
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php
index 5deb2d2843a5680c07e3654222153156e7477d47..622311c11434749f5c8a4c8d8082e5905faf5771 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php
@@ -120,7 +120,7 @@ public function testAjaxElementValidation() {
     $this->drupalGet('ajax_validation_test');
     // Changing the value of the textfield will trigger an AJAX
     // request/response.
-    $field = $this->getSession()->getPage()->findField('drivertext');
+    $field = $this->getSession()->getPage()->findField('driver_text');
     $field->setValue('some dumb text');
     $field->blur();
 
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php
index c430a0819c8241c1ca05f5d870279175a585c0d0..345cef2107d2f1b5684b9b3fa084e2943e90fd51 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php
@@ -35,7 +35,7 @@ public function testAjaxElementValidation() {
     $assert = $this->assertSession();
 
     // Partially complete the form with a string.
-    $page->fillField('drivertext', 'some dumb text');
+    $page->fillField('driver_text', 'some dumb text');
     // Move focus away from this field to trigger AJAX.
     $page->findField('spare_required_field')->focus();
 
@@ -47,7 +47,7 @@ public function testAjaxElementValidation() {
 
     $this->drupalGet('ajax_validation_test');
     // Partially complete the form with a number.
-    $page->fillField('drivernumber', '12345');
+    $page->fillField('driver_number', '12345');
     $page->findField('spare_required_field')->focus();
 
     // The AJAX request/response will complete successfully when an