From 1d6e7e25d5d7aba4599c075963739c74861bbcbe Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Fri, 13 Nov 2020 14:25:11 +0000
Subject: [PATCH] Issue #2851394 by GoZ, hgunicamp, oknate, jungle,
 wolffereast, tameeshb, mmatsoo, ridhimaabrol24, jofitz, swarad07, tanc,
 shaktik, dimaro, shashikant_chauhan, MerryHamster, quietone, nitesh624,
 martin_q, boaloysius, gaurav.kapoor, nitvirus, ankithashetty,
 Munavijayalakshmi, kostyashupenko, leolando.tan, amit.drupal, ravi.shankar,
 akashkrishnan01, Swapnil_Kotwal, Saviktor, mrinalini9, anmolgoyal74,
 Venkatesh Rajan.J, shimpy, lomasr, Dinesh18, shubham.prakash, mahtab_alam,
 markdorison, cilefen, longwave, bleen, xjm, alexpott, gmaltoni: Fix grammar
 'a' to 'an' when necessary

---
 core/includes/theme.inc                       |  2 +-
 .../InvalidPluginDefinitionException.php      |  2 +-
 .../Exception/PluginNotFoundException.php     |  2 +-
 core/lib/Drupal/Component/Utility/Html.php    |  4 ++--
 .../Drupal/Component/Utility/UrlHelper.php    |  4 ++--
 core/lib/Drupal/Core/Access/AccessManager.php |  2 +-
 .../Core/Action/Plugin/Action/EmailAction.php |  2 +-
 .../Action/Plugin/Action/EntityActionBase.php |  2 +-
 .../Ajax/AjaxResponseAttachmentsProcessor.php |  2 +-
 .../Core/Ajax/OpenOffCanvasDialogCommand.php  |  4 ++--
 .../Drupal/Core/Ajax/UpdateBuildIdCommand.php |  2 +-
 .../Drupal/Core/Archiver/ArchiverManager.php  |  2 +-
 core/lib/Drupal/Core/Archiver/Tar.php         |  2 +-
 core/lib/Drupal/Core/Archiver/Zip.php         |  2 +-
 .../Core/Asset/AssetDumperInterface.php       |  2 +-
 .../Core/Config/ConfigFactoryInterface.php    |  2 +-
 .../lib/Drupal/Core/Config/ConfigImporter.php |  4 ++--
 .../Drupal/Core/Config/Entity/Query/Query.php |  2 +-
 core/lib/Drupal/Core/Database/Connection.php  |  2 +-
 core/lib/Drupal/Core/Database/Database.php    |  2 +-
 .../Core/Database/Driver/pgsql/Connection.php |  2 +-
 .../Core/Database/Driver/pgsql/Select.php     |  2 +-
 .../Core/Database/Driver/sqlite/Schema.php    |  4 ++--
 .../Database/Query/ConditionInterface.php     |  8 ++++----
 .../lib/Drupal/Core/Database/database.api.php |  2 +-
 .../Drupal/Core/Datetime/Element/Datetime.php | 14 ++++++-------
 .../ClassResolverInterface.php                |  3 ++-
 .../Core/Entity/Entity/EntityFormDisplay.php  |  2 +-
 .../Core/Entity/EntityAutocompleteMatcher.php |  2 +-
 .../Core/Entity/EntityCreateAccessCheck.php   |  2 +-
 .../Entity/EntityCreateAnyAccessCheck.php     |  2 +-
 .../Entity/EntityTypeManagerInterface.php     |  2 +-
 .../NoCorrespondingEntityClassException.php   |  2 +-
 .../Entity/Query/QueryAggregateInterface.php  |  2 +-
 .../Drupal/Core/Entity/Query/Sql/Tables.php   |  2 +-
 .../Core/Entity/Sql/DefaultTableMapping.php   |  2 +-
 core/lib/Drupal/Core/Entity/entity.api.php    |  2 +-
 .../HttpExceptionSubscriberBase.php           |  2 +-
 .../OptionsRequestSubscriber.php              |  2 +-
 .../Drupal/Core/Extension/ThemeHandler.php    |  2 +-
 .../Core/Field/ChangedFieldItemList.php       |  2 +-
 .../Field/EntityReferenceFieldItemList.php    |  2 +-
 .../lib/Drupal/Core/Field/FieldConfigBase.php |  2 +-
 .../Field/FieldStorageDefinitionInterface.php |  2 +-
 .../Drupal/Core/Field/MapFieldItemList.php    |  2 +-
 .../EntityReferenceEntityFormatter.php        |  2 +-
 core/lib/Drupal/Core/Form/ConfirmFormBase.php |  2 +-
 core/lib/Drupal/Core/Image/ImageInterface.php |  2 +-
 .../ImageToolkit/Annotation/ImageToolkit.php  |  2 +-
 .../Annotation/ImageToolkitOperation.php      |  4 ++--
 .../PageCache/ResponsePolicyInterface.php     |  2 +-
 .../Plugin/Discovery/InfoHookDecorator.php    |  2 +-
 .../Drupal/Core/Queue/QueueWorkerManager.php  |  2 +-
 .../Render/BareHtmlPageRendererInterface.php  |  2 +-
 core/lib/Drupal/Core/Render/Element.php       |  2 +-
 core/lib/Drupal/Core/Render/Element/Link.php  |  4 ++--
 .../Core/Render/Element/PathElement.php       |  2 +-
 core/lib/Drupal/Core/Render/Element/Table.php |  2 +-
 .../Drupal/Core/Render/ElementInfoManager.php |  2 +-
 core/lib/Drupal/Core/Render/Renderer.php      |  2 +-
 .../Core/Routing/MatcherDumperInterface.php   |  2 +-
 core/lib/Drupal/Core/SitePathFactory.php      |  2 +-
 core/lib/Drupal/Core/Template/Attribute.php   |  2 +-
 .../Drupal/Core/Template/TwigExtension.php    |  2 +-
 .../TypedData/OptionsProviderInterface.php    |  2 +-
 .../TypedData/Plugin/DataType/BinaryData.php  |  4 ++--
 .../Plugin/DataType/DurationIso8601.php       |  2 +-
 .../Core/TypedData/Type/BinaryInterface.php   |  2 +-
 .../TypedData/TypedDataManagerInterface.php   |  2 +-
 .../Drupal/Core/Updater/UpdaterException.php  |  2 +-
 core/lib/Drupal/Core/Url.php                  | 10 +++++-----
 core/lib/Drupal/Core/Utility/ProjectInfo.php  |  2 +-
 core/misc/ajax.es6.js                         |  2 +-
 core/misc/autocomplete.es6.js                 |  2 +-
 core/misc/dialog/dialog.ajax.es6.js           |  2 +-
 core/misc/dialog/off-canvas.es6.js            |  2 +-
 .../src/Plugin/AggregatorPluginManager.php    |  2 +-
 .../aggregator/src/Plugin/views/row/Rss.php   |  2 +-
 .../src/Functional/AggregatorTestBase.php     |  6 +++---
 .../src/Kernel/Views/IntegrationTest.php      |  2 +-
 core/modules/big_pipe/src/Render/BigPipe.php  | 20 +++++++++----------
 .../Render/Placeholder/BigPipeStrategy.php    |  8 ++++----
 .../src/BigPipeTestController.php             |  2 +-
 core/modules/block/src/BlockListBuilder.php   |  2 +-
 .../RefinableDependentAccessInterface.php     |  2 +-
 .../modules/book/src/BookManagerInterface.php |  2 +-
 .../breakpoint/src/BreakpointManager.php      |  2 +-
 .../src/Functional/ColorSafePreviewTest.php   |  2 +-
 core/modules/comment/comment.tokens.inc       |  2 +-
 core/modules/comment/comment.views.inc        |  2 +-
 .../comment/src/CommentFieldItemList.php      |  2 +-
 .../src/Controller/CommentController.php      |  2 +-
 .../Action/UnpublishByKeywordComment.php      |  2 +-
 .../migrate/destination/EntityComment.php     |  2 +-
 .../tests/src/Unit/CommentLinkBuilderTest.php |  2 +-
 .../Functional/ConfigExportImportUITest.php   |  2 +-
 .../ConfigTranslationMapperList.php           |  2 +-
 .../Plugin/Derivative/DynamicLocalTasks.php   |  2 +-
 .../node_translation_menu_links.yml           |  2 +-
 .../tests/src/Functional/DateTestBase.php     |  2 +-
 .../src/Functional/DateRangeFieldTest.php     |  2 +-
 .../src/Kernel/ConnectionFailureTest.php      |  2 +-
 .../DynamicPageCacheIntegrationTest.php       |  2 +-
 core/modules/editor/js/editor.admin.es6.js    |  4 ++--
 .../editor/src/Ajax/EditorDialogSave.php      |  2 +-
 .../tests/src/Functional/EditorAdminTest.php  |  2 +-
 .../src/Functional/EditorLoadingTest.php      |  2 +-
 .../QuickEditIntegrationLoadingTest.php       |  2 +-
 .../EntityReferenceAdminTest.php              |  2 +-
 ...erenceFieldTranslatedReferenceViewTest.php |  2 +-
 .../EntityReferenceIntegrationTest.php        |  4 ++--
 .../field_ui/src/Element/FieldUiTable.php     |  2 +-
 .../Plugin/Derivative/FieldUiLocalTask.php    |  2 +-
 .../file/src/FileAccessControlHandler.php     |  2 +-
 .../FileUsage/DatabaseFileUsageBackend.php    |  2 +-
 .../src/Functional/FileFieldTestBase.php      |  2 +-
 .../src/Functional/FileFieldWidgetTest.php    |  2 +-
 core/modules/filter/filter.module             |  4 ++--
 core/modules/filter/src/Annotation/Filter.php |  2 +-
 .../tests/src/Functional/FilterAdminTest.php  |  4 ++--
 .../tests/src/Functional/FilterFormTest.php   |  2 +-
 .../tests/src/Kernel/FilterKernelTest.php     |  4 ++--
 .../Normalizer/ContentEntityNormalizer.php    |  2 +-
 .../help/tests/src/Functional/HelpTest.php    |  4 ++--
 .../ImageStyleDownloadController.php          |  2 +-
 .../image/src/ImageStyleStorageInterface.php  |  2 +-
 .../src/Plugin/Field/FieldType/ImageItem.php  |  2 +-
 .../Plugin/Field/FieldWidget/ImageWidget.php  |  2 +-
 .../src/Functional/ImageFieldTestBase.php     |  2 +-
 .../ImageOnTranslatedEntityTest.php           |  2 +-
 .../QuickEditImageControllerTest.php          |  2 +-
 .../ImageFieldTestBase.php                    |  2 +-
 .../jsonapi/src/Controller/EntityResource.php |  4 ++--
 core/modules/jsonapi/src/IncludeResolver.php  |  4 ++--
 .../src/Plugin/Block/LanguageBlock.php        |  2 +-
 .../LanguageNegotiationContentEntity.php      |  2 +-
 .../LanguageConfigurationElementTest.php      |  2 +-
 .../Functional/LanguageUrlRewritingTest.php   |  2 +-
 .../src/Kernel/EntityUrlLanguageTest.php      |  2 +-
 .../src/Field/LayoutSectionItemList.php       |  2 +-
 .../Plugin/Field/FieldWidget/LinkWidget.php   |  4 ++--
 core/modules/locale/locale.module             |  2 +-
 .../locale/src/Form/TranslationStatusForm.php |  4 ++--
 core/modules/locale/src/Gettext.php           |  2 +-
 .../Functional/LocaleImportFunctionalTest.php |  2 +-
 .../MediaThumbnailFormatter.php               |  2 +-
 .../tests/src/Functional/MediaAccessTest.php  |  2 +-
 .../src/Functional/MediaRevisionTest.php      |  2 +-
 .../media_library/src/Form/AddFormBase.php    |  4 ++--
 .../src/Entity/MenuLinkContent.php            |  2 +-
 .../menu_ui/src/Form/MenuDeleteForm.php       |  2 +-
 .../src/Event/MigrateRollbackEvent.php        |  2 +-
 .../Discovery/ProviderFilterDecorator.php     |  2 +-
 .../migrate/src/Plugin/migrate/id_map/Sql.php |  2 +-
 .../node/src/Access/NodeAddAccessCheck.php    |  2 +-
 .../src/Access/NodePreviewAccessCheck.php     |  2 +-
 .../src/Controller/NodePreviewController.php  |  2 +-
 .../src/Controller/NodeViewController.php     |  2 +-
 .../NodeFormSaveChangedTimeTest.php           |  2 +-
 ...NodeAccessLanguageAwareCombinationTest.php |  2 +-
 .../src/Kernel/Views/NidArgumentTest.php      |  2 +-
 .../tests/src/Functional/PathLanguageTest.php |  2 +-
 .../src/Functional/UrlAlterFunctionalTest.php |  2 +-
 .../quickedit/js/models/EntityModel.es6.js    |  2 +-
 .../js/views/EntityToolbarView.es6.js         |  4 ++--
 .../quickedit/src/Ajax/EntitySavedCommand.php |  2 +-
 .../src/Plugin/InPlaceEditorManager.php       |  2 +-
 .../QuickEditAutocompleteTermTest.php         |  2 +-
 .../QuickEditLoadingTest.php                  |  4 ++--
 .../src/ResponsiveImageStyleInterface.php     |  2 +-
 .../Functional/Views/StyleSerializerTest.php  |  2 +-
 .../Migrate/d7/MigrateSearchPageTest.php      |  2 +-
 .../ChainEntityResolverInterface.php          |  2 +-
 .../EntityReferenceFieldItemNormalizer.php    |  2 +-
 .../SettingsTrayBlockFormTest.php             |  2 +-
 .../Plugin/Block/StatisticsPopularBlock.php   |  2 +-
 .../src/StatisticsStorageInterface.php        |  4 ++--
 .../src/ActionConfigEntityInterface.php       |  2 +-
 .../EntityAutocompleteController.php          |  2 +-
 .../EventSubscriber/AdminRouteSubscriber.php  |  2 +-
 .../system/src/Form/DateFormatDeleteForm.php  |  2 +-
 .../system/src/Form/ImageToolkitForm.php      |  2 +-
 .../system/templates/admin-page.html.twig     |  2 +-
 .../src/EarlyRenderingTestController.php      |  2 +-
 .../EntityTestMapFieldResourceTestBase.php    |  2 +-
 .../Controller/PathEncodedTestController.php  |  2 +-
 .../tests/src/Functional/Form/ElementTest.php |  2 +-
 .../src/Functional/System/HtaccessTest.php    |  2 +-
 .../DateFormatAccessControlHandlerTest.php    |  2 +-
 .../Kernel/Entity/ConfigEntityImportTest.php  |  2 +-
 .../Kernel/MenuAccessControlHandlerTest.php   |  2 +-
 core/modules/taxonomy/taxonomy.es6.js         |  2 +-
 .../Functional/Views/TaxonomyTermViewTest.php |  2 +-
 .../Views/ArgumentValidatorTermTest.php       |  2 +-
 .../src/Functional/ToolbarAdminMenuTest.php   |  2 +-
 core/modules/tour/js/tour.es6.js              |  4 ++--
 .../src/Plugin/tour/tip/TipPluginText.php     |  2 +-
 .../src/Plugin/tour/tip/TipPluginImage.php    |  2 +-
 .../src/Access/UpdateManagerAccessCheck.php   |  2 +-
 core/modules/update/src/UpdateFetcher.php     |  2 +-
 core/modules/update/src/UpdateManager.php     |  2 +-
 core/modules/update/src/UpdateProcessor.php   |  2 +-
 .../tests/src/Functional/UpdateCoreTest.php   |  2 +-
 core/modules/update/update.module             |  2 +-
 .../Plugin/migrate/destination/EntityUser.php |  2 +-
 .../Plugin/migrate/destination/UserData.php   |  2 +-
 .../views/argument_validator/UserName.php     |  2 +-
 .../src/Functional/Views/BulkFormTest.php     |  2 +-
 .../tests/src/Kernel/UserValidationTest.php   |  2 +-
 .../Views/HandlerArgumentUserUidTest.php      |  2 +-
 .../views/src/Form/ViewsExposedForm.php       |  2 +-
 .../views/src/Plugin/Block/ViewsBlockBase.php |  2 +-
 .../ViewsEntityArgumentValidator.php          |  2 +-
 .../views/argument_validator/Entity.php       |  4 ++--
 .../Plugin/views/display/EntityReference.php  |  2 +-
 .../Plugin/views/display/PathPluginBase.php   |  2 +-
 .../exposed_form/ExposedFormPluginBase.php    |  2 +-
 .../ExposedFormPluginInterface.php            |  2 +-
 .../views/src/Plugin/views/field/BulkForm.php |  2 +-
 .../src/Plugin/views/field/EntityLabel.php    |  2 +-
 .../views/src/Plugin/views/field/LinkBase.php |  2 +-
 .../views/src/Plugin/views/field/Links.php    |  2 +-
 .../Plugin/views/filter/FilterPluginBase.php  |  4 ++--
 .../Plugin/views/join/JoinPluginInterface.php |  2 +-
 .../src/Plugin/views/query/SqliteDateSql.php  |  2 +-
 .../Plugin/views/style/StylePluginBase.php    |  3 ++-
 core/modules/views/src/ViewExecutable.php     |  2 +-
 .../argument_default/ArgumentDefaultTest.php  |  2 +-
 .../ArgumentValidatorTest.php                 |  2 +-
 .../tests/src/Functional/Handler/AreaTest.php |  2 +-
 .../tests/src/Functional/Plugin/PagerTest.php |  8 ++++----
 .../src/Kernel/Handler/ArgumentNullTest.php   |  2 +-
 .../Handler/FieldFieldAccessTestBase.php      |  4 ++--
 .../Kernel/Handler/FilterInOperatorTest.php   |  4 ++--
 .../views/tests/src/Kernel/ModuleTest.php     |  2 +-
 .../src/Kernel/Plugin/StyleTableUnitTest.php  |  2 +-
 .../tests/src/Kernel/QueryGroupByTest.php     |  2 +-
 .../src/Kernel/RenderCacheIntegrationTest.php |  6 +++---
 .../tests/src/Unit/EntityViewsDataTest.php    |  2 +-
 .../views/tests/src/Unit/PluginBaseTest.php   |  2 +-
 .../Unit/Routing/ViewPageControllerTest.php   |  4 ++--
 .../views/tests/src/Unit/ViewsDataTest.php    |  4 ++--
 core/modules/views_ui/admin.inc               |  2 +-
 .../src/Form/Ajax/ViewsFormInterface.php      |  2 +-
 core/modules/views_ui/src/ViewEditForm.php    |  2 +-
 .../tests/src/Functional/AreaEntityUITest.php |  2 +-
 .../workflows/src/Annotation/WorkflowType.php |  2 +-
 core/scripts/run-tests.sh                     |  6 +++---
 .../Ajax/AjaxFormPageCacheTest.php            |  8 ++++----
 .../Ajax/AjaxInGroupTest.php                  |  2 +-
 .../Ajax/DialogTest.php                       |  2 +-
 .../Ajax/ElementValidationTest.php            |  6 +++---
 .../Ajax/FormValuesTest.php                   |  4 ++--
 .../Routing/RouteCachingLanguageTest.php      |  2 +-
 .../EntityAutocompleteElementFormTest.php     |  4 ++--
 .../Entity/EntityAccessControlHandlerTest.php |  4 ++--
 .../Core/Entity/EntityAutocompleteTest.php    |  8 ++++----
 .../Core/Entity/EntityTranslationTest.php     |  2 +-
 .../KernelTests/Core/Form/FormCacheTest.php   |  2 +-
 .../Core/Http/LinkRelationsTest.php           |  4 ++--
 .../Drupal/KernelTests/Core/Lock/LockTest.php |  2 +-
 .../Commands/TestSiteTearDownCommand.php      |  2 +-
 .../Component/Datetime/DateTimePlusTest.php   |  2 +-
 .../Tests/Core/Command/QuickStartTest.php     |  2 +-
 .../Config/Entity/Query/QueryFactoryTest.php  |  2 +-
 .../Core/Datetime/DrupalDateTimeTest.php      |  2 +-
 .../Core/Entity/EntityResolverManagerTest.php |  2 +-
 .../Entity/Sql/DefaultTableMappingTest.php    |  2 +-
 .../Sql/SqlContentEntityStorageTest.php       |  6 +++---
 .../Drupal/Tests/Core/Form/FormStateTest.php  |  2 +-
 core/tests/Drupal/Tests/UiHelperTrait.php     |  2 +-
 .../templates/admin/admin-page.html.twig      |  2 +-
 272 files changed, 351 insertions(+), 349 deletions(-)

diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 57214f21f6c9..9f8371e2dfc6 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -143,7 +143,7 @@ function drupal_find_theme_functions($cache, $prefixes) {
       // Find theme functions that implement possible "suggestion" variants of
       // registered theme hooks and add those as new registered theme hooks.
       // The 'pattern' key defines a common prefix that all suggestions must
-      // start with. The default is the name of the hook followed by '__'. An
+      // start with. The default is the name of the hook followed by '__'. A
       // 'base hook' key is added to each entry made for a found suggestion,
       // so that common functionality can be implemented for all suggestions of
       // the same base hook. To keep things simple, deep hierarchy of
diff --git a/core/lib/Drupal/Component/Plugin/Exception/InvalidPluginDefinitionException.php b/core/lib/Drupal/Component/Plugin/Exception/InvalidPluginDefinitionException.php
index c95826044831..6b205dbbd29d 100644
--- a/core/lib/Drupal/Component/Plugin/Exception/InvalidPluginDefinitionException.php
+++ b/core/lib/Drupal/Component/Plugin/Exception/InvalidPluginDefinitionException.php
@@ -15,7 +15,7 @@ class InvalidPluginDefinitionException extends PluginException {
   protected $pluginId;
 
   /**
-   * Constructs a InvalidPluginDefinitionException.
+   * Constructs an InvalidPluginDefinitionException.
    *
    * For the remaining parameters see \Exception.
    *
diff --git a/core/lib/Drupal/Component/Plugin/Exception/PluginNotFoundException.php b/core/lib/Drupal/Component/Plugin/Exception/PluginNotFoundException.php
index fa83e010fe74..3c78fa93b3a2 100644
--- a/core/lib/Drupal/Component/Plugin/Exception/PluginNotFoundException.php
+++ b/core/lib/Drupal/Component/Plugin/Exception/PluginNotFoundException.php
@@ -8,7 +8,7 @@
 class PluginNotFoundException extends PluginException {
 
   /**
-   * Construct an PluginNotFoundException exception.
+   * Construct a PluginNotFoundException exception.
    *
    * For the remaining parameters see \Exception.
    *
diff --git a/core/lib/Drupal/Component/Utility/Html.php b/core/lib/Drupal/Component/Utility/Html.php
index b3893d684571..f9bb8e6a23aa 100644
--- a/core/lib/Drupal/Component/Utility/Html.php
+++ b/core/lib/Drupal/Component/Utility/Html.php
@@ -45,8 +45,8 @@ class Html {
    *   <command> tag anymore.
    *  See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/command.
    * - The 'manifest' attribute is omitted because it only exists for the <html>
-   *   tag. That tag only makes sense in a HTML-served-as-HTML context, in which
-   *   case relative URLs are guaranteed to work.
+   *   tag. That tag only makes sense in an HTML-served-as-HTML context, in
+   *   which case relative URLs are guaranteed to work.
    *
    * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes
    * @see https://stackoverflow.com/questions/2725156/complete-list-of-html-tag-attributes-which-have-a-url-value
diff --git a/core/lib/Drupal/Component/Utility/UrlHelper.php b/core/lib/Drupal/Component/Utility/UrlHelper.php
index 443673447e1c..137b4118ce03 100644
--- a/core/lib/Drupal/Component/Utility/UrlHelper.php
+++ b/core/lib/Drupal/Component/Utility/UrlHelper.php
@@ -242,14 +242,14 @@ public static function isExternal($path) {
    *   TRUE if the URL has the same domain and base path.
    *
    * @throws \InvalidArgumentException
-   *   Exception thrown when a either $url or $bath_url are not fully qualified.
+   *   Exception thrown when either $url or $base_url are not fully qualified.
    */
   public static function externalIsLocal($url, $base_url) {
     // Some browsers treat \ as / so normalize to forward slashes.
     $url = str_replace('\\', '/', $url);
 
     // Leading control characters may be ignored or mishandled by browsers, so
-    // assume such a path may lead to an non-local location. The \p{C} character
+    // assume such a path may lead to a non-local location. The \p{C} character
     // class matches all UTF-8 control, unassigned, and private characters.
     if (preg_match('/^\p{C}/u', $url) !== 0) {
       return FALSE;
diff --git a/core/lib/Drupal/Core/Access/AccessManager.php b/core/lib/Drupal/Core/Access/AccessManager.php
index 36dec5b65c61..14b5c87d7c6b 100644
--- a/core/lib/Drupal/Core/Access/AccessManager.php
+++ b/core/lib/Drupal/Core/Access/AccessManager.php
@@ -55,7 +55,7 @@ class AccessManager implements AccessManagerInterface {
   protected $checkProvider;
 
   /**
-   * Constructs a AccessManager instance.
+   * Constructs an AccessManager instance.
    *
    * @param \Drupal\Core\Routing\RouteProviderInterface $route_provider
    *   The route provider.
diff --git a/core/lib/Drupal/Core/Action/Plugin/Action/EmailAction.php b/core/lib/Drupal/Core/Action/Plugin/Action/EmailAction.php
index cfebdf2ec588..3a733d5ef0bd 100644
--- a/core/lib/Drupal/Core/Action/Plugin/Action/EmailAction.php
+++ b/core/lib/Drupal/Core/Action/Plugin/Action/EmailAction.php
@@ -70,7 +70,7 @@ class EmailAction extends ConfigurableActionBase implements ContainerFactoryPlug
   protected $emailValidator;
 
   /**
-   * Constructs a EmailAction object.
+   * Constructs an EmailAction object.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/lib/Drupal/Core/Action/Plugin/Action/EntityActionBase.php b/core/lib/Drupal/Core/Action/Plugin/Action/EntityActionBase.php
index 262402490329..20351e2c606a 100644
--- a/core/lib/Drupal/Core/Action/Plugin/Action/EntityActionBase.php
+++ b/core/lib/Drupal/Core/Action/Plugin/Action/EntityActionBase.php
@@ -21,7 +21,7 @@ abstract class EntityActionBase extends ActionBase implements DependentPluginInt
   protected $entityTypeManager;
 
   /**
-   * Constructs a EntityActionBase object.
+   * Constructs an EntityActionBase object.
    *
    * @param mixed[] $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/lib/Drupal/Core/Ajax/AjaxResponseAttachmentsProcessor.php b/core/lib/Drupal/Core/Ajax/AjaxResponseAttachmentsProcessor.php
index ee5208b07847..875c9d3ef961 100644
--- a/core/lib/Drupal/Core/Ajax/AjaxResponseAttachmentsProcessor.php
+++ b/core/lib/Drupal/Core/Ajax/AjaxResponseAttachmentsProcessor.php
@@ -71,7 +71,7 @@ class AjaxResponseAttachmentsProcessor implements AttachmentsResponseProcessorIn
   protected $moduleHandler;
 
   /**
-   * Constructs a AjaxResponseAttachmentsProcessor object.
+   * Constructs an AjaxResponseAttachmentsProcessor object.
    *
    * @param \Drupal\Core\Asset\AssetResolverInterface $asset_resolver
    *   An asset resolver.
diff --git a/core/lib/Drupal/Core/Ajax/OpenOffCanvasDialogCommand.php b/core/lib/Drupal/Core/Ajax/OpenOffCanvasDialogCommand.php
index ac7f6950a575..eb868aaf5f6e 100644
--- a/core/lib/Drupal/Core/Ajax/OpenOffCanvasDialogCommand.php
+++ b/core/lib/Drupal/Core/Ajax/OpenOffCanvasDialogCommand.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Ajax;
 
 /**
- * Defines an AJAX command to open content in a dialog in a off-canvas dialog.
+ * Defines an AJAX command to open content in a dialog in an off-canvas tray.
  *
  * @ingroup ajax
  */
@@ -18,7 +18,7 @@ class OpenOffCanvasDialogCommand extends OpenDialogCommand {
    * Constructs an OpenOffCanvasDialogCommand object.
    *
    * The off-canvas dialog differs from the normal modal provided by
-   * OpenDialogCommand in that a off-canvas has built in positioning and
+   * OpenDialogCommand in that an off-canvas has built in positioning and
    * behaviors. Drupal provides a built-in off-canvas dialog for this purpose,
    * so the selector is hard-coded in the call to the parent constructor.
    *
diff --git a/core/lib/Drupal/Core/Ajax/UpdateBuildIdCommand.php b/core/lib/Drupal/Core/Ajax/UpdateBuildIdCommand.php
index d46b87ae482a..fc2ea20f6ec2 100644
--- a/core/lib/Drupal/Core/Ajax/UpdateBuildIdCommand.php
+++ b/core/lib/Drupal/Core/Ajax/UpdateBuildIdCommand.php
@@ -34,7 +34,7 @@ class UpdateBuildIdCommand implements CommandInterface {
   protected $new;
 
   /**
-   * Constructs a UpdateBuildIdCommand object.
+   * Constructs an UpdateBuildIdCommand object.
    *
    * @param string $old
    *   The old build_id.
diff --git a/core/lib/Drupal/Core/Archiver/ArchiverManager.php b/core/lib/Drupal/Core/Archiver/ArchiverManager.php
index e5545d74d79a..c97e091849aa 100644
--- a/core/lib/Drupal/Core/Archiver/ArchiverManager.php
+++ b/core/lib/Drupal/Core/Archiver/ArchiverManager.php
@@ -25,7 +25,7 @@ class ArchiverManager extends DefaultPluginManager {
   protected $fileSystem;
 
   /**
-   * Constructs a ArchiverManager object.
+   * Constructs an ArchiverManager object.
    *
    * @param \Traversable $namespaces
    *   An object that implements \Traversable which contains the root paths
diff --git a/core/lib/Drupal/Core/Archiver/Tar.php b/core/lib/Drupal/Core/Archiver/Tar.php
index ecc62abd8f8a..00dd4fdf1fe5 100644
--- a/core/lib/Drupal/Core/Archiver/Tar.php
+++ b/core/lib/Drupal/Core/Archiver/Tar.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Archiver;
 
 /**
- * Defines a archiver implementation for .tar files.
+ * Defines an archiver implementation for .tar files.
  */
 class Tar implements ArchiverInterface {
 
diff --git a/core/lib/Drupal/Core/Archiver/Zip.php b/core/lib/Drupal/Core/Archiver/Zip.php
index 74f610592937..835ebca15b2b 100644
--- a/core/lib/Drupal/Core/Archiver/Zip.php
+++ b/core/lib/Drupal/Core/Archiver/Zip.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Archiver;
 
 /**
- * Defines a archiver implementation for .zip files.
+ * Defines an archiver implementation for .zip files.
  *
  * @link http://php.net/zip
  */
diff --git a/core/lib/Drupal/Core/Asset/AssetDumperInterface.php b/core/lib/Drupal/Core/Asset/AssetDumperInterface.php
index 2b53eb13b021..24be86ca342f 100644
--- a/core/lib/Drupal/Core/Asset/AssetDumperInterface.php
+++ b/core/lib/Drupal/Core/Asset/AssetDumperInterface.php
@@ -16,7 +16,7 @@ interface AssetDumperInterface {
    *   The file extension of this asset.
    *
    * @return string
-   *   An URI to access the dumped asset.
+   *   A URI to access the dumped asset.
    */
   public function dump($data, $file_extension);
 
diff --git a/core/lib/Drupal/Core/Config/ConfigFactoryInterface.php b/core/lib/Drupal/Core/Config/ConfigFactoryInterface.php
index 00aae051f86d..cccffeb5ac13 100644
--- a/core/lib/Drupal/Core/Config/ConfigFactoryInterface.php
+++ b/core/lib/Drupal/Core/Config/ConfigFactoryInterface.php
@@ -21,7 +21,7 @@ interface ConfigFactoryInterface {
   public function get($name);
 
   /**
-   * Returns an mutable configuration object for a given name.
+   * Returns a mutable configuration object for a given name.
    *
    * Should not be used for config that will have runtime effects. Therefore it
    * is always loaded override free.
diff --git a/core/lib/Drupal/Core/Config/ConfigImporter.php b/core/lib/Drupal/Core/Config/ConfigImporter.php
index 25b7d0afbbec..3e4c264385b3 100644
--- a/core/lib/Drupal/Core/Config/ConfigImporter.php
+++ b/core/lib/Drupal/Core/Config/ConfigImporter.php
@@ -23,7 +23,7 @@
  *
  * @see \Drupal\Core\Config\StorageComparerInterface
  *
- * The ConfigImporter has a identifier which is used to construct event names.
+ * The ConfigImporter has an identifier which is used to construct event names.
  * The events fired during an import are:
  * - ConfigEvents::IMPORT_VALIDATE: Events listening can throw a
  *   \Drupal\Core\Config\ConfigImporterException to prevent an import from
@@ -1039,7 +1039,7 @@ protected function importInvokeRename($collection, $rename_name) {
   }
 
   /**
-   * Determines if a import is already running.
+   * Determines if an import is already running.
    *
    * @return bool
    *   TRUE if an import is already running, FALSE if not.
diff --git a/core/lib/Drupal/Core/Config/Entity/Query/Query.php b/core/lib/Drupal/Core/Config/Entity/Query/Query.php
index 66470dce5bb5..757ce8ba6f1d 100644
--- a/core/lib/Drupal/Core/Config/Entity/Query/Query.php
+++ b/core/lib/Drupal/Core/Config/Entity/Query/Query.php
@@ -59,7 +59,7 @@ public function __construct(EntityTypeInterface $entity_type, $conjunction, Conf
    * Overrides \Drupal\Core\Entity\Query\QueryBase::condition().
    *
    * Additional to the syntax defined in the QueryInterface you can use
-   * placeholders (*) to match all keys of an subarray. Let's take the follow
+   * placeholders (*) to match all keys of a subarray. Let's take the follow
    * yaml file as example:
    * @code
    *  level1:
diff --git a/core/lib/Drupal/Core/Database/Connection.php b/core/lib/Drupal/Core/Database/Connection.php
index 39a03b98ed4d..8d86059aeacc 100644
--- a/core/lib/Drupal/Core/Database/Connection.php
+++ b/core/lib/Drupal/Core/Database/Connection.php
@@ -1722,7 +1722,7 @@ public function commit() {
   }
 
   /**
-   * Retrieves an unique ID from a given sequence.
+   * Retrieves a unique ID from a given sequence.
    *
    * Use this function if for some reason you can't use a serial field. For
    * example, MySQL has no ways of reading of the current value of a sequence
diff --git a/core/lib/Drupal/Core/Database/Database.php b/core/lib/Drupal/Core/Database/Database.php
index 82084caa4f9b..f2d5f9c2bdd4 100644
--- a/core/lib/Drupal/Core/Database/Database.php
+++ b/core/lib/Drupal/Core/Database/Database.php
@@ -38,7 +38,7 @@ abstract class Database {
   const RETURN_INSERT_ID = 3;
 
   /**
-   * An nested array of all active connections. It is keyed by database name
+   * A nested array of all active connections. It is keyed by database name
    * and target.
    *
    * @var array
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php
index 4a07ba1a58b5..b996735aabd2 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Connection.php
@@ -319,7 +319,7 @@ public function getFullQualifiedTableName($table) {
   }
 
   /**
-   * Add a new savepoint with an unique name.
+   * Add a new savepoint with a unique name.
    *
    * The main use for this method is to mimic InnoDB functionality, which
    * provides an inherent savepoint before any query in a transaction.
diff --git a/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php b/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php
index 2df730d6139c..f10b05f35449 100644
--- a/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php
+++ b/core/lib/Drupal/Core/Database/Driver/pgsql/Select.php
@@ -99,7 +99,7 @@ public function orderBy($field, $direction = 'ASC') {
       }
     }
 
-    // If $field contains an characters which are not allowed in a field name
+    // If $field contains characters which are not allowed in a field name
     // it is considered an expression, these can't be handled automatically
     // either.
     if ($this->connection->escapeField($field) != $field) {
diff --git a/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php b/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
index f432927a662a..caf1065f29ea 100644
--- a/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
+++ b/core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php
@@ -366,7 +366,7 @@ public function addField($table, $field, $specification, $keys_new = []) {
       // Build the mapping between the old fields and the new fields.
       $mapping = [];
       if (isset($specification['initial_from_field'])) {
-        // If we have a initial value, copy it over.
+        // If we have an initial value, copy it over.
         if (isset($specification['initial'])) {
           $expression = 'COALESCE(' . $specification['initial_from_field'] . ', :default_initial_value)';
           $arguments = [':default_initial_value' => $specification['initial']];
@@ -381,7 +381,7 @@ public function addField($table, $field, $specification, $keys_new = []) {
         ];
       }
       elseif (isset($specification['initial'])) {
-        // If we have a initial value, copy it over.
+        // If we have an initial value, copy it over.
         $mapping[$field] = [
           'expression' => ':newfieldinitial',
           'arguments' => [':newfieldinitial' => $specification['initial']],
diff --git a/core/lib/Drupal/Core/Database/Query/ConditionInterface.php b/core/lib/Drupal/Core/Database/Query/ConditionInterface.php
index f5ce6759d391..5c08c9801010 100644
--- a/core/lib/Drupal/Core/Database/Query/ConditionInterface.php
+++ b/core/lib/Drupal/Core/Database/Query/ConditionInterface.php
@@ -48,10 +48,10 @@ interface ConditionInterface {
    *   The value to test the field against. In most cases, and depending on the
    *   operator, this will be a scalar or an array. As SQL accepts select
    *   queries on any place where a scalar value or set is expected, $value may
-   *   also be a(n array of) SelectInterface(s). If $operator is a unary
-   *   operator, e.g. IS NULL, $value will be ignored and should be null. If
-   *   the operator requires a subquery, e.g. EXISTS, the $field will be ignored
-   *   and $value should be a SelectInterface object.
+   *   also be a SelectInterface or an array of SelectInterfaces. If $operator
+   *   is a unary operator, e.g. IS NULL, $value will be ignored and should be
+   *   null. If the operator requires a subquery, e.g. EXISTS, the $field will
+   *   be ignored and $value should be a SelectInterface object.
    * @param string|null $operator
    *   The operator to use. Supported for all supported databases are at least:
    *   - The comparison operators =, <>, <, <=, >, >=.
diff --git a/core/lib/Drupal/Core/Database/database.api.php b/core/lib/Drupal/Core/Database/database.api.php
index 9ee436bb0143..aaeba667ef2f 100644
--- a/core/lib/Drupal/Core/Database/database.api.php
+++ b/core/lib/Drupal/Core/Database/database.api.php
@@ -432,7 +432,7 @@ function hook_query_alter(Drupal\Core\Database\Query\AlterableInterface $query)
  *   a listing (e.g., from Views) and therefore require access control.
  *
  * @param $query
- *   An Query object describing the composite parts of a SQL query.
+ *   A Query object describing the composite parts of a SQL query.
  *
  * @see hook_query_alter()
  * @see node_query_node_access_alter()
diff --git a/core/lib/Drupal/Core/Datetime/Element/Datetime.php b/core/lib/Drupal/Core/Datetime/Element/Datetime.php
index 01c0fd3eac6f..398fc984a7b0 100644
--- a/core/lib/Drupal/Core/Datetime/Element/Datetime.php
+++ b/core/lib/Drupal/Core/Datetime/Element/Datetime.php
@@ -154,7 +154,7 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
    *     element, no other format will work. See the
    *     DateFormatterInterface::format() function for a list of the possible
    *     formats and HTML5 standards for the HTML5 requirements. Defaults to the
-   *     right HTML5 format for the chosen element if a HTML5 element is used,
+   *     right HTML5 format for the chosen element if an HTML5 element is used,
    *     otherwise defaults to DateFormat::load('html_date')->getPattern().
    *   - #date_date_element: The date element. Options are:
    *     - datetime: Use the HTML5 datetime element type.
@@ -164,7 +164,7 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
    *     - none: Do not display a date element.
    *   - #date_date_callbacks: Array of optional callbacks for the date element.
    *   - #date_time_element: The time element. Options are:
-   *     - time: Use a HTML5 time element type.
+   *     - time: Use an HTML5 time element type.
    *     - text: No HTML5 element, use a normal text field.
    *     - none: Do not display a time element.
    *   - #date_time_format: A date format string that describes the format that
@@ -173,7 +173,7 @@ public static function valueCallback(&$element, $input, FormStateInterface $form
    *     element, no other format will work. See the
    *     DateFormatterInterface::format() function for a list of the possible
    *     formats and HTML5 standards for the HTML5 requirements. Defaults to the
-   *     right HTML5 format for the chosen element if a HTML5 element is used,
+   *     right HTML5 format for the chosen element if an HTML5 element is used,
    *     otherwise defaults to DateFormat::load('html_time')->getPattern().
    *   - #date_time_callbacks: An array of optional callbacks for the time
    *     element. Can be used to add a jQuery timepicker or an 'All day' checkbox.
@@ -394,7 +394,7 @@ public static function formatExample($format) {
   }
 
   /**
-   * Retrieves the right format for a HTML5 date element.
+   * Retrieves the right format for an HTML5 date element.
    *
    * The format is important because these elements will not work with any other
    * format.
@@ -404,7 +404,7 @@ public static function formatExample($format) {
    *
    * @return string
    *   Returns the right format for the date element, or the original format
-   *   if this is not a HTML5 element.
+   *   if this is not an HTML5 element.
    */
   protected static function getHtml5DateFormat($element) {
     switch ($element['#date_date_element']) {
@@ -421,7 +421,7 @@ protected static function getHtml5DateFormat($element) {
   }
 
   /**
-   * Retrieves the right format for a HTML5 time element.
+   * Retrieves the right format for an HTML5 time element.
    *
    * The format is important because these elements will not work with any other
    * format.
@@ -431,7 +431,7 @@ protected static function getHtml5DateFormat($element) {
    *
    * @return string
    *   Returns the right format for the time element, or the original format
-   *   if this is not a HTML5 element.
+   *   if this is not an HTML5 element.
    */
   protected static function getHtml5TimeFormat($element) {
     switch ($element['#date_time_element']) {
diff --git a/core/lib/Drupal/Core/DependencyInjection/ClassResolverInterface.php b/core/lib/Drupal/Core/DependencyInjection/ClassResolverInterface.php
index fa2b31a55908..16440c141c3e 100644
--- a/core/lib/Drupal/Core/DependencyInjection/ClassResolverInterface.php
+++ b/core/lib/Drupal/Core/DependencyInjection/ClassResolverInterface.php
@@ -3,7 +3,8 @@
 namespace Drupal\Core\DependencyInjection;
 
 /**
- * Provides an interface to get a instance of a class with dependency injection.
+ * Provides an interface to get an instance of a class with dependency
+ * injection.
  */
 interface ClassResolverInterface {
 
diff --git a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
index 26bdf67b32a5..455806fc9663 100644
--- a/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
+++ b/core/lib/Drupal/Core/Entity/Entity/EntityFormDisplay.php
@@ -13,7 +13,7 @@
 use Symfony\Component\Validator\ConstraintViolationListInterface;
 
 /**
- * Configuration entity that contains widget options for all components of a
+ * Configuration entity that contains widget options for all components of an
  * entity form in a given form mode.
  *
  * @ConfigEntityType(
diff --git a/core/lib/Drupal/Core/Entity/EntityAutocompleteMatcher.php b/core/lib/Drupal/Core/Entity/EntityAutocompleteMatcher.php
index 26206999264d..ba0dbf84f663 100644
--- a/core/lib/Drupal/Core/Entity/EntityAutocompleteMatcher.php
+++ b/core/lib/Drupal/Core/Entity/EntityAutocompleteMatcher.php
@@ -19,7 +19,7 @@ class EntityAutocompleteMatcher implements EntityAutocompleteMatcherInterface {
   protected $selectionManager;
 
   /**
-   * Constructs a EntityAutocompleteMatcher object.
+   * Constructs an EntityAutocompleteMatcher object.
    *
    * @param \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface $selection_manager
    *   The entity reference selection handler plugin manager.
diff --git a/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php b/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php
index f0a359574a5a..233285e09042 100644
--- a/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php
+++ b/core/lib/Drupal/Core/Entity/EntityCreateAccessCheck.php
@@ -28,7 +28,7 @@ class EntityCreateAccessCheck implements AccessInterface {
   protected $requirementsKey = '_entity_create_access';
 
   /**
-   * Constructs a EntityCreateAccessCheck object.
+   * Constructs an EntityCreateAccessCheck object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager service.
diff --git a/core/lib/Drupal/Core/Entity/EntityCreateAnyAccessCheck.php b/core/lib/Drupal/Core/Entity/EntityCreateAnyAccessCheck.php
index e0e24a2f9ea2..72af92f68d32 100644
--- a/core/lib/Drupal/Core/Entity/EntityCreateAnyAccessCheck.php
+++ b/core/lib/Drupal/Core/Entity/EntityCreateAnyAccessCheck.php
@@ -35,7 +35,7 @@ class EntityCreateAnyAccessCheck implements AccessInterface {
   protected $requirementsKey = '_entity_create_any_access';
 
   /**
-   * Constructs a EntityCreateAnyAccessCheck object.
+   * Constructs an EntityCreateAnyAccessCheck object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
diff --git a/core/lib/Drupal/Core/Entity/EntityTypeManagerInterface.php b/core/lib/Drupal/Core/Entity/EntityTypeManagerInterface.php
index 3da6f3b81ee8..b453fe330b5d 100644
--- a/core/lib/Drupal/Core/Entity/EntityTypeManagerInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityTypeManagerInterface.php
@@ -17,7 +17,7 @@ interface EntityTypeManagerInterface extends PluginManagerInterface, CachedDisco
    *   The entity type ID for this access control handler.
    *
    * @return \Drupal\Core\Entity\EntityAccessControlHandlerInterface
-   *   A access control handler instance.
+   *   An access control handler instance.
    */
   public function getAccessControlHandler($entity_type_id);
 
diff --git a/core/lib/Drupal/Core/Entity/Exception/NoCorrespondingEntityClassException.php b/core/lib/Drupal/Core/Entity/Exception/NoCorrespondingEntityClassException.php
index b50caeacb2c6..4843527a3c1f 100644
--- a/core/lib/Drupal/Core/Entity/Exception/NoCorrespondingEntityClassException.php
+++ b/core/lib/Drupal/Core/Entity/Exception/NoCorrespondingEntityClassException.php
@@ -12,7 +12,7 @@
 class NoCorrespondingEntityClassException extends \Exception {
 
   /**
-   * Constructs an NoCorrespondingEntityClassException.
+   * Constructs a NoCorrespondingEntityClassException.
    *
    * @param string $class
    *   The class which does not correspond to an entity type.
diff --git a/core/lib/Drupal/Core/Entity/Query/QueryAggregateInterface.php b/core/lib/Drupal/Core/Entity/Query/QueryAggregateInterface.php
index 590c7d985d31..6d1f6333d5bb 100644
--- a/core/lib/Drupal/Core/Entity/Query/QueryAggregateInterface.php
+++ b/core/lib/Drupal/Core/Entity/Query/QueryAggregateInterface.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Entity\Query;
 
 /**
- * Defines a interface for aggregated entity queries.
+ * Defines an interface for aggregated entity queries.
  */
 interface QueryAggregateInterface extends QueryInterface {
 
diff --git a/core/lib/Drupal/Core/Entity/Query/Sql/Tables.php b/core/lib/Drupal/Core/Entity/Query/Sql/Tables.php
index 4697e77d2dff..b9b754b66463 100644
--- a/core/lib/Drupal/Core/Entity/Query/Sql/Tables.php
+++ b/core/lib/Drupal/Core/Entity/Query/Sql/Tables.php
@@ -408,7 +408,7 @@ protected function addJoin($type, $table, $join_condition, $langcode, $delta = N
       $entity_type_id = $this->sqlQuery->getMetaData('entity_type');
       $entity_type = $this->entityTypeManager->getActiveDefinition($entity_type_id);
       // Only the data table follows the entity language key, dedicated field
-      // tables have an hard-coded 'langcode' column.
+      // tables have a hard-coded 'langcode' column.
       $langcode_key = $entity_type->getDataTable() == $table ? $entity_type->getKey('langcode') : 'langcode';
       $placeholder = ':langcode' . $this->sqlQuery->nextPlaceholder();
       $join_condition .= ' AND [%alias].[' . $langcode_key . '] = ' . $placeholder;
diff --git a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
index 19ee7808d586..7cc5cb2f97a4 100644
--- a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
+++ b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
@@ -475,7 +475,7 @@ public function getExtraColumns($table_name) {
   }
 
   /**
-   * Adds a extra columns for a table to the table mapping.
+   * Adds extra columns for a table to the table mapping.
    *
    * @param string $table_name
    *   The name of table to add the extra columns for.
diff --git a/core/lib/Drupal/Core/Entity/entity.api.php b/core/lib/Drupal/Core/Entity/entity.api.php
index 5cd34f9a7507..2805227b851c 100644
--- a/core/lib/Drupal/Core/Entity/entity.api.php
+++ b/core/lib/Drupal/Core/Entity/entity.api.php
@@ -541,7 +541,7 @@
  * @link container Services and Dependency Injection topic @endlink for more
  * about how to properly retrieve services.
  *
- * To query to find entities to load, use an entity query, which is a object
+ * To query to find entities to load, use an entity query, which is an object
  * implementing \Drupal\Core\Entity\Query\QueryInterface that you can retrieve
  * with:
  * @code
diff --git a/core/lib/Drupal/Core/EventSubscriber/HttpExceptionSubscriberBase.php b/core/lib/Drupal/Core/EventSubscriber/HttpExceptionSubscriberBase.php
index ed6c4d3c2cf1..7aa00f8557bc 100644
--- a/core/lib/Drupal/Core/EventSubscriber/HttpExceptionSubscriberBase.php
+++ b/core/lib/Drupal/Core/EventSubscriber/HttpExceptionSubscriberBase.php
@@ -99,7 +99,7 @@ public function onException(ExceptionEvent $event) {
     if ($exception instanceof HttpExceptionInterface && (empty($handled_formats) || in_array($format, $handled_formats))) {
       $method = 'on' . $exception->getStatusCode();
       // Keep just the leading number of the status code to produce either a
-      // on400 or a 500 method callback.
+      // 400 or a 500 method callback.
       $method_fallback = 'on' . substr($exception->getStatusCode(), 0, 1) . 'xx';
       // We want to allow the method to be called and still not set a response
       // if it has additional filtering logic to determine when it will apply.
diff --git a/core/lib/Drupal/Core/EventSubscriber/OptionsRequestSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/OptionsRequestSubscriber.php
index 18982a6d6e4b..018ab6575d3d 100644
--- a/core/lib/Drupal/Core/EventSubscriber/OptionsRequestSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/OptionsRequestSubscriber.php
@@ -12,7 +12,7 @@
 /**
  * Handles options requests.
  *
- * Therefore it sends a options response using all methods on all possible
+ * Therefore it sends an options response using all methods on all possible
  * routes.
  */
 class OptionsRequestSubscriber implements EventSubscriberInterface {
diff --git a/core/lib/Drupal/Core/Extension/ThemeHandler.php b/core/lib/Drupal/Core/Extension/ThemeHandler.php
index edff15e2eeca..19716f5c50da 100644
--- a/core/lib/Drupal/Core/Extension/ThemeHandler.php
+++ b/core/lib/Drupal/Core/Extension/ThemeHandler.php
@@ -46,7 +46,7 @@ class ThemeHandler implements ThemeHandlerInterface {
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The config factory to get the installed themes.
    * @param \Drupal\Core\Extension\ThemeExtensionList $theme_list
-   *   A extension discovery instance.
+   *   An extension discovery instance.
    */
   public function __construct($root, ConfigFactoryInterface $config_factory, ThemeExtensionList $theme_list) {
     $this->root = $root;
diff --git a/core/lib/Drupal/Core/Field/ChangedFieldItemList.php b/core/lib/Drupal/Core/Field/ChangedFieldItemList.php
index 2647129b926b..db8566fef3e4 100644
--- a/core/lib/Drupal/Core/Field/ChangedFieldItemList.php
+++ b/core/lib/Drupal/Core/Field/ChangedFieldItemList.php
@@ -6,7 +6,7 @@
 use Drupal\Core\Session\AccountInterface;
 
 /**
- * Defines a item list class for changed fields.
+ * Defines an item list class for changed fields.
  */
 class ChangedFieldItemList extends FieldItemList {
 
diff --git a/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php b/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php
index 07449e8e9137..fc87eac3fb1a 100644
--- a/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php
+++ b/core/lib/Drupal/Core/Field/EntityReferenceFieldItemList.php
@@ -6,7 +6,7 @@
 use Drupal\Core\Form\FormStateInterface;
 
 /**
- * Defines a item list class for entity reference fields.
+ * Defines an item list class for entity reference fields.
  */
 class EntityReferenceFieldItemList extends FieldItemList implements EntityReferenceFieldItemListInterface {
 
diff --git a/core/lib/Drupal/Core/Field/FieldConfigBase.php b/core/lib/Drupal/Core/Field/FieldConfigBase.php
index 922eba4f25d9..698d3b752d0a 100644
--- a/core/lib/Drupal/Core/Field/FieldConfigBase.php
+++ b/core/lib/Drupal/Core/Field/FieldConfigBase.php
@@ -132,7 +132,7 @@ abstract class FieldConfigBase extends ConfigEntityBase implements FieldConfigIn
    *
    * This property is overlooked if the $default_value_callback is non-empty.
    *
-   * Example for a integer field:
+   * Example for an integer field:
    * @code
    * array(
    *   array('value' => 1),
diff --git a/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php b/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php
index 34cc058462a7..d75eb2295b2f 100644
--- a/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php
+++ b/core/lib/Drupal/Core/Field/FieldStorageDefinitionInterface.php
@@ -56,7 +56,7 @@ public function getType();
    *
    * Each field type defines the settings that are meaningful for that type.
    * For example, a text field can define a 'max_length' setting, and an image
-   * field can define a 'alt_field_required' setting.
+   * field can define an 'alt_field_required' setting.
    *
    * The method always returns an array of all available settings for this field
    * type, possibly with the default values merged in if values have not been
diff --git a/core/lib/Drupal/Core/Field/MapFieldItemList.php b/core/lib/Drupal/Core/Field/MapFieldItemList.php
index 2d86daee4d48..f9f0898d0da1 100644
--- a/core/lib/Drupal/Core/Field/MapFieldItemList.php
+++ b/core/lib/Drupal/Core/Field/MapFieldItemList.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Field;
 
 /**
- * Defines a item list class for map fields.
+ * Defines an item list class for map fields.
  */
 class MapFieldItemList extends FieldItemList {
 
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
index 8474b99eee91..efdc92eddf85 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
@@ -65,7 +65,7 @@ class EntityReferenceEntityFormatter extends EntityReferenceFormatterBase {
   protected static $recursiveRenderDepth = [];
 
   /**
-   * Constructs a EntityReferenceEntityFormatter instance.
+   * Constructs an EntityReferenceEntityFormatter instance.
    *
    * @param string $plugin_id
    *   The plugin_id for the formatter.
diff --git a/core/lib/Drupal/Core/Form/ConfirmFormBase.php b/core/lib/Drupal/Core/Form/ConfirmFormBase.php
index 4214bfcabd1c..51cfbbf05002 100644
--- a/core/lib/Drupal/Core/Form/ConfirmFormBase.php
+++ b/core/lib/Drupal/Core/Form/ConfirmFormBase.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Form;
 
 /**
- * Provides an generic base class for a confirmation form.
+ * Provides a generic base class for a confirmation form.
  */
 abstract class ConfirmFormBase extends FormBase implements ConfirmFormInterface {
 
diff --git a/core/lib/Drupal/Core/Image/ImageInterface.php b/core/lib/Drupal/Core/Image/ImageInterface.php
index 29d092a7368e..4bb6a9a671d1 100644
--- a/core/lib/Drupal/Core/Image/ImageInterface.php
+++ b/core/lib/Drupal/Core/Image/ImageInterface.php
@@ -228,7 +228,7 @@ public function desaturate();
    * @param float $degrees
    *   The number of (clockwise) degrees to rotate the image.
    * @param string|null $background
-   *   (optional) An hexadecimal integer specifying the background color to use
+   *   (optional) A hexadecimal integer specifying the background color to use
    *   for the uncovered area of the image after the rotation; for example,
    *   0x000000 for black, 0xff00ff for magenta, and 0xffffff for white. When
    *   NULL (the default) is specified, for images that support transparency,
diff --git a/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkit.php b/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkit.php
index 3154fe2a2ac0..9d4acb3f9dc3 100644
--- a/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkit.php
+++ b/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkit.php
@@ -35,7 +35,7 @@ class ImageToolkit extends Plugin {
   /**
    * The title of the image toolkit.
    *
-   * The string should be wrapped in a @Translation().
+   * The string should be wrapped in @Translation().
    *
    * @ingroup plugin_translatable
    *
diff --git a/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkitOperation.php b/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkitOperation.php
index 96ebe9e62360..73c7f3363de8 100644
--- a/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkitOperation.php
+++ b/core/lib/Drupal/Core/ImageToolkit/Annotation/ImageToolkitOperation.php
@@ -63,7 +63,7 @@ class ImageToolkitOperation extends Plugin {
   /**
    * The human-readable name of the image toolkit operation.
    *
-   * The string should be wrapped in a @Translation().
+   * The string should be wrapped in @Translation().
    *
    * @ingroup plugin_translatable
    *
@@ -74,7 +74,7 @@ class ImageToolkitOperation extends Plugin {
   /**
    * The description of the image toolkit operation.
    *
-   * The string should be wrapped in a @Translation().
+   * The string should be wrapped in @Translation().
    *
    * @ingroup plugin_translatable
    *
diff --git a/core/lib/Drupal/Core/PageCache/ResponsePolicyInterface.php b/core/lib/Drupal/Core/PageCache/ResponsePolicyInterface.php
index 0d3f96554766..7d9505fa0522 100644
--- a/core/lib/Drupal/Core/PageCache/ResponsePolicyInterface.php
+++ b/core/lib/Drupal/Core/PageCache/ResponsePolicyInterface.php
@@ -9,7 +9,7 @@
  * Defines the interface for response policy implementations.
  *
  * The response policy is evaluated in order to determine whether a page should
- * be stored a in the cache. Calling code should do so unless static::DENY is
+ * be stored in the cache. Calling code should do so unless static::DENY is
  * returned from the check() method.
  */
 interface ResponsePolicyInterface {
diff --git a/core/lib/Drupal/Core/Plugin/Discovery/InfoHookDecorator.php b/core/lib/Drupal/Core/Plugin/Discovery/InfoHookDecorator.php
index 6501ce0d1054..c81d30de7ea0 100644
--- a/core/lib/Drupal/Core/Plugin/Discovery/InfoHookDecorator.php
+++ b/core/lib/Drupal/Core/Plugin/Discovery/InfoHookDecorator.php
@@ -27,7 +27,7 @@ class InfoHookDecorator implements DiscoveryInterface {
   protected $hook;
 
   /**
-   * Constructs a InfoHookDecorator object.
+   * Constructs an InfoHookDecorator object.
    *
    * @param \Drupal\Component\Plugin\Discovery\DiscoveryInterface $decorated
    *   The object implementing DiscoveryInterface that is being decorated.
diff --git a/core/lib/Drupal/Core/Queue/QueueWorkerManager.php b/core/lib/Drupal/Core/Queue/QueueWorkerManager.php
index d9a47b86804e..b1aa40f51c97 100644
--- a/core/lib/Drupal/Core/Queue/QueueWorkerManager.php
+++ b/core/lib/Drupal/Core/Queue/QueueWorkerManager.php
@@ -17,7 +17,7 @@
 class QueueWorkerManager extends DefaultPluginManager implements QueueWorkerManagerInterface {
 
   /**
-   * Constructs an QueueWorkerManager object.
+   * Constructs a QueueWorkerManager object.
    *
    * @param \Traversable $namespaces
    *   An object that implements \Traversable which contains the root paths
diff --git a/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php b/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php
index 6c46c40bda29..cc2021b14211 100644
--- a/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php
+++ b/core/lib/Drupal/Core/Render/BareHtmlPageRendererInterface.php
@@ -23,7 +23,7 @@
  * use a @code _controller @endcode route, and return a render array.
  * This will cause a main content renderer
  * (\Drupal\Core\Render\MainContent\MainContentRendererInterface) to be
- * used, and in case of a HTML request that will be
+ * used, and in case of an HTML request that will be
  * \Drupal\Core\Render\MainContent\HtmlRenderer.
  *
  * In fact, this is not only *typically* used in a limited environment, it even
diff --git a/core/lib/Drupal/Core/Render/Element.php b/core/lib/Drupal/Core/Render/Element.php
index e509bd9170cb..ed7a444980b3 100644
--- a/core/lib/Drupal/Core/Render/Element.php
+++ b/core/lib/Drupal/Core/Render/Element.php
@@ -56,7 +56,7 @@ public static function child($key) {
   /**
    * Identifies the children of an element array, optionally sorted by weight.
    *
-   * The children of a element array are those key/value pairs whose key does
+   * The children of an element array are those key/value pairs whose key does
    * not start with a '#'. See drupal_render() for details.
    *
    * @param array $elements
diff --git a/core/lib/Drupal/Core/Render/Element/Link.php b/core/lib/Drupal/Core/Render/Element/Link.php
index aedc7d120827..8021a809120d 100644
--- a/core/lib/Drupal/Core/Render/Element/Link.php
+++ b/core/lib/Drupal/Core/Render/Element/Link.php
@@ -13,7 +13,7 @@
  *
  * Properties:
  * - #title: The link text.
- * - #url: \Drupal\Core\Url object containing URL information pointing to a
+ * - #url: \Drupal\Core\Url object containing URL information pointing to an
  *   internal or external link. See \Drupal\Core\Utility\LinkGeneratorInterface.
  *
  * Usage example:
@@ -69,7 +69,7 @@ public static function preRenderLink($element) {
     }
 
     // This #pre_render callback can be invoked from inside or outside of a Form
-    // API context, and depending on that, a HTML ID may be already set in
+    // API context, and depending on that, an HTML ID may be already set in
     // different locations. #options should have precedence over Form API's #id.
     // #attributes have been taken over into #options above already.
     if (isset($element['#options']['attributes']['id'])) {
diff --git a/core/lib/Drupal/Core/Render/Element/PathElement.php b/core/lib/Drupal/Core/Render/Element/PathElement.php
index ac0af2a6bc3d..86baff16d73f 100644
--- a/core/lib/Drupal/Core/Render/Element/PathElement.php
+++ b/core/lib/Drupal/Core/Render/Element/PathElement.php
@@ -8,7 +8,7 @@
  * Provides a matched path render element.
  *
  * Provides a form element to enter a path which can be optionally validated and
- * stored as either a \Drupal\Core\Url value object or a array containing a
+ * stored as either a \Drupal\Core\Url value object or an array containing a
  * route name and route parameters pair.
  *
  * @FormElement("path")
diff --git a/core/lib/Drupal/Core/Render/Element/Table.php b/core/lib/Drupal/Core/Render/Element/Table.php
index eae77e642af2..9313ff975bf9 100644
--- a/core/lib/Drupal/Core/Render/Element/Table.php
+++ b/core/lib/Drupal/Core/Render/Element/Table.php
@@ -382,7 +382,7 @@ public static function preRenderTable($element) {
       $element['#attributes']['class'][] = 'responsive-enabled';
     }
 
-    // If the custom #tabledrag is set and there is a HTML ID, add the table's
+    // If the custom #tabledrag is set and there is an HTML ID, add the table's
     // HTML ID to the options and attach the behavior.
     if (!empty($element['#tabledrag']) && isset($element['#attributes']['id'])) {
       foreach ($element['#tabledrag'] as $options) {
diff --git a/core/lib/Drupal/Core/Render/ElementInfoManager.php b/core/lib/Drupal/Core/Render/ElementInfoManager.php
index da4ed76f18ca..1de1f4c61c38 100644
--- a/core/lib/Drupal/Core/Render/ElementInfoManager.php
+++ b/core/lib/Drupal/Core/Render/ElementInfoManager.php
@@ -45,7 +45,7 @@ class ElementInfoManager extends DefaultPluginManager implements ElementInfoMana
   protected $cacheTagInvalidator;
 
   /**
-   * Constructs a ElementInfoManager object.
+   * Constructs an ElementInfoManager object.
    *
    * @param \Traversable $namespaces
    *   An object that implements \Traversable which contains the root paths
diff --git a/core/lib/Drupal/Core/Render/Renderer.php b/core/lib/Drupal/Core/Render/Renderer.php
index 559c25624a0e..02620cbf1113 100644
--- a/core/lib/Drupal/Core/Render/Renderer.php
+++ b/core/lib/Drupal/Core/Render/Renderer.php
@@ -17,7 +17,7 @@
 use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
- * Turns a render array into a HTML string.
+ * Turns a render array into an HTML string.
  */
 class Renderer implements RendererInterface {
   use DoTrustedCallbackTrait;
diff --git a/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php b/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php
index 46c6cec34075..365d987a33fe 100644
--- a/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php
+++ b/core/lib/Drupal/Core/Routing/MatcherDumperInterface.php
@@ -6,7 +6,7 @@
 use Symfony\Component\Routing\RouteCollection;
 
 /**
- * Extends the symfony matcher dumper interface with a addRoutes method.
+ * Extends the symfony matcher dumper interface with an addRoutes method.
  */
 interface MatcherDumperInterface extends SymfonyMatcherDumperInterface {
 
diff --git a/core/lib/Drupal/Core/SitePathFactory.php b/core/lib/Drupal/Core/SitePathFactory.php
index 307d6aa42a0b..e83daf25a080 100644
--- a/core/lib/Drupal/Core/SitePathFactory.php
+++ b/core/lib/Drupal/Core/SitePathFactory.php
@@ -15,7 +15,7 @@ class SitePathFactory {
   protected $drupalKernel;
 
   /**
-   * Constructs an SitePathFactory instance.
+   * Constructs a SitePathFactory instance.
    *
    * @param \Drupal\Core\DrupalKernelInterface $drupal_kernel
    *   The Drupal kernel.
diff --git a/core/lib/Drupal/Core/Template/Attribute.php b/core/lib/Drupal/Core/Template/Attribute.php
index fe9aace1f00a..e0ca3ba6ac99 100644
--- a/core/lib/Drupal/Core/Template/Attribute.php
+++ b/core/lib/Drupal/Core/Template/Attribute.php
@@ -38,7 +38,7 @@
  *
  * The attribute keys and values are automatically escaped for output with
  * Html::escape(). No protocol filtering is applied, so when using user-entered
- * input as a value for an attribute that expects an URI (href, src, ...),
+ * input as a value for an attribute that expects a URI (href, src, ...),
  * UrlHelper::stripDangerousProtocols() should be used to ensure dangerous
  * protocols (such as 'javascript:') are removed. For example:
  * @code
diff --git a/core/lib/Drupal/Core/Template/TwigExtension.php b/core/lib/Drupal/Core/Template/TwigExtension.php
index f8b156ad5eae..7deda60a356d 100644
--- a/core/lib/Drupal/Core/Template/TwigExtension.php
+++ b/core/lib/Drupal/Core/Template/TwigExtension.php
@@ -501,7 +501,7 @@ protected function bubbleArgMetadata($arg) {
    *   RenderableInterface or toString().
    *
    * @return mixed
-   *   The rendered output or an \Twig\Markup object.
+   *   The rendered output or a \Twig\Markup object.
    *
    * @see render
    * @see TwigNodeVisitor
diff --git a/core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php b/core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php
index c429a63c2ef4..36fde8b23657 100644
--- a/core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php
+++ b/core/lib/Drupal/Core/TypedData/OptionsProviderInterface.php
@@ -10,7 +10,7 @@
  * While possible values specify which values existing data might have, settable
  * values define the values that are allowed to be set by a user.
  *
- * For example, in an workflow scenario, the settable values for a state field
+ * For example, in a workflow scenario, the settable values for a state field
  * might depend on the currently set state, while possible values are all
  * states. Thus settable values would be used in an editing context, while
  * possible values would be used for presenting filtering options in a search.
diff --git a/core/lib/Drupal/Core/TypedData/Plugin/DataType/BinaryData.php b/core/lib/Drupal/Core/TypedData/Plugin/DataType/BinaryData.php
index e51e5055b9b5..b7a719eb5d34 100644
--- a/core/lib/Drupal/Core/TypedData/Plugin/DataType/BinaryData.php
+++ b/core/lib/Drupal/Core/TypedData/Plugin/DataType/BinaryData.php
@@ -10,7 +10,7 @@
  *
  * The plain value of binary data is a PHP file resource, see
  * http://php.net/manual/language.types.resource.php. For setting the value
- * a PHP file resource or a (absolute) stream resource URI may be passed.
+ * a PHP file resource or an (absolute) stream resource URI may be passed.
  *
  * @DataType(
  *   id = "binary",
@@ -48,7 +48,7 @@ public function getValue() {
   /**
    * Overrides TypedData::setValue().
    *
-   * Supports a PHP file resource or a (absolute) stream resource URI as value.
+   * Supports a PHP file resource or an (absolute) stream resource URI as value.
    */
   public function setValue($value, $notify = TRUE) {
     if (!isset($value)) {
diff --git a/core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php b/core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php
index 8b3899acf786..00890583910d 100644
--- a/core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php
+++ b/core/lib/Drupal/Core/TypedData/Plugin/DataType/DurationIso8601.php
@@ -7,7 +7,7 @@
 /**
  * The duration ISO8601 data type.
  *
- * The plain value of this data type is a ISO8601 duration string.
+ * The plain value of this data type is an ISO8601 duration string.
  *
  * @DataType(
  *   id = "duration_iso8601",
diff --git a/core/lib/Drupal/Core/TypedData/Type/BinaryInterface.php b/core/lib/Drupal/Core/TypedData/Type/BinaryInterface.php
index b8bdd3a04aa4..80f13c1f2052 100644
--- a/core/lib/Drupal/Core/TypedData/Type/BinaryInterface.php
+++ b/core/lib/Drupal/Core/TypedData/Type/BinaryInterface.php
@@ -9,7 +9,7 @@
  *
  * The plain value of binary data is a PHP file resource, see
  * http://php.net/manual/language.types.resource.php. For setting the value
- * a PHP file resource or a (absolute) stream resource URI may be passed.
+ * a PHP file resource or an (absolute) stream resource URI may be passed.
  *
  * @ingroup typed_data
  */
diff --git a/core/lib/Drupal/Core/TypedData/TypedDataManagerInterface.php b/core/lib/Drupal/Core/TypedData/TypedDataManagerInterface.php
index 29723c6fc195..ab04335bb979 100644
--- a/core/lib/Drupal/Core/TypedData/TypedDataManagerInterface.php
+++ b/core/lib/Drupal/Core/TypedData/TypedDataManagerInterface.php
@@ -146,7 +146,7 @@ public function getInstance(array $options);
    *   The parent typed data object, implementing the TypedDataInterface and
    *   either the ListInterface or the ComplexDataInterface.
    * @param string $property_name
-   *   The name of the property to instantiate, or the delta of an list item.
+   *   The name of the property to instantiate, or the delta of a list item.
    * @param mixed $value
    *   (optional) The data value. If set, it has to match one of the supported
    *   data type formats as documented by the data type classes.
diff --git a/core/lib/Drupal/Core/Updater/UpdaterException.php b/core/lib/Drupal/Core/Updater/UpdaterException.php
index befc78c7ee51..2d1f828eb6e3 100644
--- a/core/lib/Drupal/Core/Updater/UpdaterException.php
+++ b/core/lib/Drupal/Core/Updater/UpdaterException.php
@@ -3,7 +3,7 @@
 namespace Drupal\Core\Updater;
 
 /**
- * Defines a Exception class for the Drupal\Core\Updater\Updater class
+ * Defines an Exception class for the Drupal\Core\Updater\Updater class
  * hierarchy.
  *
  * This is identical to the base Exception class, we just give it a more
diff --git a/core/lib/Drupal/Core/Url.php b/core/lib/Drupal/Core/Url.php
index 05c53c3e8bb9..425d0daacdcf 100644
--- a/core/lib/Drupal/Core/Url.php
+++ b/core/lib/Drupal/Core/Url.php
@@ -334,7 +334,7 @@ public static function fromUri($uri, $options = []) {
    * Create a new Url object for entity URIs.
    *
    * @param array $uri_parts
-   *   Parts from an URI of the form entity:{entity_type}/{entity_id} as from
+   *   Parts from a URI of the form entity:{entity_type}/{entity_id} as from
    *   parse_url().
    * @param array $options
    *   An array of options, see \Drupal\Core\Url::fromUri() for details.
@@ -387,12 +387,12 @@ protected static function fromEntityUri(array $uri_parts, array $options, $uri)
    * - 'internal:/some-path' (path component is '/some-path') to 'some-path'
    *
    * @param array $uri_parts
-   *   Parts from an URI of the form internal:{path} as from parse_url().
+   *   Parts from a URI of the form internal:{path} as from parse_url().
    * @param array $options
    *   An array of options, see \Drupal\Core\Url::fromUri() for details.
    *
    * @return static
-   *   A new Url object for a 'internal:' URI.
+   *   A new Url object for an 'internal:' URI.
    *
    * @throws \InvalidArgumentException
    *   Thrown when the URI's path component doesn't have a leading slash.
@@ -432,7 +432,7 @@ protected static function fromInternalUri(array $uri_parts, array $options) {
    * Creates a new Url object for 'route:' URIs.
    *
    * @param array $uri_parts
-   *   Parts from an URI of the form route:{route_name};{route_parameters} as
+   *   Parts from a URI of the form route:{route_name};{route_parameters} as
    *   from parse_url(), where the path is the route name optionally followed by
    *   a ";" followed by route parameters in key=value format with & separators.
    * @param array $options
@@ -511,7 +511,7 @@ protected function setUnrouted() {
    * Generates a URI string that represents the data in the Url object.
    *
    * The URI will typically have the scheme of route: even if the object was
-   * constructed using an entity: or internal: scheme. A internal: URI that
+   * constructed using an entity: or internal: scheme. An internal: URI that
    * does not match a Drupal route with be returned here with the base: scheme,
    * and external URLs will be returned in their original form.
    *
diff --git a/core/lib/Drupal/Core/Utility/ProjectInfo.php b/core/lib/Drupal/Core/Utility/ProjectInfo.php
index 63e17da2abf1..ef7d7faf2ce3 100644
--- a/core/lib/Drupal/Core/Utility/ProjectInfo.php
+++ b/core/lib/Drupal/Core/Utility/ProjectInfo.php
@@ -130,7 +130,7 @@ public function processInfoList(array &$projects, array $list, $project_type, $s
       }
       elseif (empty($status)) {
         // If we have a project_name that matches, but the project_display_type
-        // does not, it means we're processing a uninstalled module or theme
+        // does not, it means we're processing an uninstalled module or theme
         // that belongs to a project that has some enabled code. In this case,
         // we add the uninstalled thing into a separate array for separate
         // display.
diff --git a/core/misc/ajax.es6.js b/core/misc/ajax.es6.js
index ce7407eaf0b5..da88f45f9e74 100644
--- a/core/misc/ajax.es6.js
+++ b/core/misc/ajax.es6.js
@@ -1208,7 +1208,7 @@
      * @param {string} [response.method]
      *   The jQuery DOM manipulation method to be used.
      * @param {string} [response.selector]
-     *   A optional jQuery selector string.
+     *   An optional jQuery selector string.
      * @param {object} [response.settings]
      *   An optional array of settings that will be used.
      */
diff --git a/core/misc/autocomplete.es6.js b/core/misc/autocomplete.es6.js
index 82a79eb9d9e3..c747986d141f 100644
--- a/core/misc/autocomplete.es6.js
+++ b/core/misc/autocomplete.es6.js
@@ -45,7 +45,7 @@
   }
 
   /**
-   * Returns the last value of an multi-value textfield.
+   * Returns the last value of a multi-value textfield.
    *
    * @function Drupal.autocomplete.extractLastTerm
    *
diff --git a/core/misc/dialog/dialog.ajax.es6.js b/core/misc/dialog/dialog.ajax.es6.js
index c67290ddc2c0..e481bdfa5f52 100644
--- a/core/misc/dialog/dialog.ajax.es6.js
+++ b/core/misc/dialog/dialog.ajax.es6.js
@@ -54,7 +54,7 @@
      * Scan a dialog for any primary buttons and move them to the button area.
      *
      * @param {jQuery} $dialog
-     *   An jQuery object containing the element that is the dialog target.
+     *   A jQuery object containing the element that is the dialog target.
      *
      * @return {Array}
      *   An array of buttons that need to be added to the button area.
diff --git a/core/misc/dialog/off-canvas.es6.js b/core/misc/dialog/off-canvas.es6.js
index f8e3fab491bb..adbce2ddf827 100644
--- a/core/misc/dialog/off-canvas.es6.js
+++ b/core/misc/dialog/off-canvas.es6.js
@@ -8,7 +8,7 @@
    * Off-canvas dialog implementation using jQuery Dialog.
    *
    * Transforms the regular dialogs created using Drupal.dialog when the dialog
-   * element equals '#drupal-off-canvas' into an side-loading dialog.
+   * element equals '#drupal-off-canvas' into a side-loading dialog.
    *
    * @namespace
    */
diff --git a/core/modules/aggregator/src/Plugin/AggregatorPluginManager.php b/core/modules/aggregator/src/Plugin/AggregatorPluginManager.php
index 96de3b5ed027..7c2bb96dc396 100644
--- a/core/modules/aggregator/src/Plugin/AggregatorPluginManager.php
+++ b/core/modules/aggregator/src/Plugin/AggregatorPluginManager.php
@@ -21,7 +21,7 @@
 class AggregatorPluginManager extends DefaultPluginManager {
 
   /**
-   * Constructs a AggregatorPluginManager object.
+   * Constructs an AggregatorPluginManager object.
    *
    * @param string $type
    *   The plugin type, for example fetcher.
diff --git a/core/modules/aggregator/src/Plugin/views/row/Rss.php b/core/modules/aggregator/src/Plugin/views/row/Rss.php
index 464a28592e4d..3bfd457ad8fe 100644
--- a/core/modules/aggregator/src/Plugin/views/row/Rss.php
+++ b/core/modules/aggregator/src/Plugin/views/row/Rss.php
@@ -26,7 +26,7 @@ class Rss extends RssPluginBase {
   public $base_table = 'aggregator_item';
 
   /**
-   * The actual field which is used to identify a aggregator item.
+   * The actual field which is used to identify an aggregator item.
    *
    * @var string
    */
diff --git a/core/modules/aggregator/tests/src/Functional/AggregatorTestBase.php b/core/modules/aggregator/tests/src/Functional/AggregatorTestBase.php
index cd128cae0508..761c89d92261 100644
--- a/core/modules/aggregator/tests/src/Functional/AggregatorTestBase.php
+++ b/core/modules/aggregator/tests/src/Functional/AggregatorTestBase.php
@@ -333,7 +333,7 @@ public function getEmptyOpml() {
   }
 
   /**
-   * Returns a example RSS091 feed.
+   * Returns an example RSS091 feed.
    *
    * @return string
    *   Path to the feed.
@@ -343,7 +343,7 @@ public function getRSS091Sample() {
   }
 
   /**
-   * Returns a example Atom feed.
+   * Returns an example Atom feed.
    *
    * @return string
    *   Path to the feed.
@@ -355,7 +355,7 @@ public function getAtomSample() {
   }
 
   /**
-   * Returns a example feed.
+   * Returns an example feed.
    *
    * @return string
    *   Path to the feed.
diff --git a/core/modules/aggregator/tests/src/Kernel/Views/IntegrationTest.php b/core/modules/aggregator/tests/src/Kernel/Views/IntegrationTest.php
index 51c1689d0eaf..9ad4196da325 100644
--- a/core/modules/aggregator/tests/src/Kernel/Views/IntegrationTest.php
+++ b/core/modules/aggregator/tests/src/Kernel/Views/IntegrationTest.php
@@ -91,7 +91,7 @@ public function testAggregatorItemView() {
       $values['timestamp'] = mt_rand(REQUEST_TIME - 10, REQUEST_TIME + 10);
       $values['title'] = $this->randomMachineName();
       $values['description'] = $this->randomMachineName();
-      // Add a image to ensure that the sanitizing can be tested below.
+      // Add an image to ensure that the sanitizing can be tested below.
       $values['author'] = $this->randomMachineName() . '<img src="http://example.com/example.png" \>"';
       $values['link'] = 'https://www.drupal.org/node/' . mt_rand(1000, 10000);
       $values['guid'] = $this->randomString();
diff --git a/core/modules/big_pipe/src/Render/BigPipe.php b/core/modules/big_pipe/src/Render/BigPipe.php
index f21640bc4e5c..9bbe7d99c2cb 100644
--- a/core/modules/big_pipe/src/Render/BigPipe.php
+++ b/core/modules/big_pipe/src/Render/BigPipe.php
@@ -23,7 +23,7 @@
 /**
  * Service for sending an HTML response in chunks (to get faster page loads).
  *
- * At a high level, BigPipe sends a HTML response in chunks:
+ * At a high level, BigPipe sends an HTML response in chunks:
  * 1. one chunk: everything until just before </body> — this contains BigPipe
  *    placeholders for the personalized parts of the page. Hence this sends the
  *    non-personalized parts of the page. Let's call it The Skeleton.
@@ -58,7 +58,7 @@
  * the logic though, we choose to call this "no-JS BigPipe".
  *
  * However, there is also a tangible benefit: some dynamic/expensive content is
- * not HTML, but for example a HTML attribute value (or part thereof). It's not
+ * not HTML, but for example an HTML attribute value (or part thereof). It's not
  * possible to efficiently replace such content using JavaScript, so "classic"
  * BigPipe is out of the question. For example: CSRF tokens in URLs.
  *
@@ -68,7 +68,7 @@
  * Finally, a closer look at the implementation, and how it supports and reuses
  * existing Drupal concepts:
  * 1. BigPipe placeholders: 1 HtmlResponse + N embedded AjaxResponses.
- *   - Before a BigPipe response is sent, it is just a HTML response that
+ *   - Before a BigPipe response is sent, it is just an HTML response that
  *     contains BigPipe placeholders. Those placeholders look like
  *     <span data-big-pipe-placeholder-id="…"></span>. JavaScript is used to
  *     replace those placeholders.
@@ -76,9 +76,9 @@
  *   - The Skeleton of course has attachments, including most notably asset
  *     libraries. And those we track in drupalSettings.ajaxPageState.libraries —
  *     so that when we load new content through AJAX, we don't load the same
- *     asset libraries again. A HTML page can have multiple AJAX responses, each
- *     of which should take into account the combined AJAX page state of the
- *     HTML document and all preceding AJAX responses.
+ *     asset libraries again. An HTML page can have multiple AJAX responses,
+ *     each of which should take into account the combined AJAX page state of
+ *     the HTML document and all preceding AJAX responses.
  *   - BigPipe does not make use of multiple AJAX requests/responses. It uses a
  *     single HTML response. But it is a more long-lived one: The Skeleton is
  *     sent first, the closing </body> tag is not yet sent, and the connection
@@ -100,7 +100,7 @@
  *     1. <span data-big-pipe-nojs-placeholder-id="…"></span> if it's a
  *        placeholder that will be replaced by HTML
  *     2. big_pipe_nojs_placeholder_attribute_safe:… if it's a placeholder
- *        inside a HTML attribute, in which 1. would be invalid (angle brackets
+ *        inside an HTML attribute, in which 1. would be invalid (angle brackets
  *        are not allowed inside HTML attributes)
  *     No-JS BigPipe placeholders are not replaced using JavaScript, they must
  *     be replaced upon sending the BigPipe response. So, while the response is
@@ -526,7 +526,7 @@ protected function sendPlaceholders(array $placeholders, array $placeholder_orde
     // Send the start signal.
     $this->sendChunk("\n" . static::START_SIGNAL . "\n");
 
-    // A BigPipe response consists of a HTML response plus multiple embedded
+    // A BigPipe response consists of an HTML response plus multiple embedded
     // AJAX responses. To process the attachments of those AJAX responses, we
     // need a fake request that is identical to the master request, but with
     // one change: it must have the right Accept header, otherwise the work-
@@ -617,7 +617,7 @@ protected function sendPlaceholders(array $placeholders, array $placeholder_orde
    *   A fake subrequest that contains the cumulative AJAX page state of the
    *   HTML document and all preceding Embedded HTML or AJAX responses.
    * @param \Symfony\Component\HttpFoundation\Response|\Drupal\Core\Render\HtmlResponse|\Drupal\Core\Ajax\AjaxResponse $embedded_response
-   *   Either a HTML response or an AJAX response that will be embedded in the
+   *   Either an HTML response or an AJAX response that will be embedded in the
    *   overall HTML response.
    *
    * @return \Symfony\Component\HttpFoundation\Response
@@ -752,7 +752,7 @@ protected function getPlaceholderOrder($html, $placeholders) {
   }
 
   /**
-   * Splits a HTML string into fragments.
+   * Splits an HTML string into fragments.
    *
    * Creates an array of HTML fragments, separated by placeholders. The result
    * includes the placeholders themselves. The original order is respected.
diff --git a/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php b/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php
index bd022f2ef372..69945eca6aba 100644
--- a/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php
+++ b/core/modules/big_pipe/src/Render/Placeholder/BigPipeStrategy.php
@@ -176,8 +176,8 @@ protected function doProcessPlaceholders(array $placeholders) {
    *   A placeholder.
    *
    * @return bool
-   *   Whether the placeholder is safe for use in a HTML attribute (in case it's
-   *   a placeholder for a HTML attribute value or a subset of it).
+   *   Whether the placeholder is safe for use in an HTML attribute (in case
+   *   it's a placeholder for an HTML attribute value or a subset of it).
    */
   protected static function placeholderIsAttributeSafe($placeholder) {
     assert(is_string($placeholder));
@@ -229,8 +229,8 @@ protected static function createBigPipeJsPlaceholder($original_placeholder, arra
    * @param array $placeholder_render_array
    *   The render array for a placeholder.
    * @param bool $placeholder_must_be_attribute_safe
-   *   Whether the placeholder must be safe for use in a HTML attribute (in case
-   *   it's a placeholder for a HTML attribute value or a subset of it).
+   *   Whether the placeholder must be safe for use in an HTML attribute (in
+   *   case it's a placeholder for an HTML attribute value or a subset of it).
    *
    * @return array
    *   The resulting BigPipe no-JS placeholder render array.
diff --git a/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php b/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php
index b15fa160ec71..5bb3505500bb 100644
--- a/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php
+++ b/core/modules/big_pipe/tests/modules/big_pipe_test/src/BigPipeTestController.php
@@ -9,7 +9,7 @@
 class BigPipeTestController implements TrustedCallbackInterface {
 
   /**
-   * Returns a all BigPipe placeholder test case render arrays.
+   * Returns all BigPipe placeholder test case render arrays.
    *
    * @return array
    */
diff --git a/core/modules/block/src/BlockListBuilder.php b/core/modules/block/src/BlockListBuilder.php
index 01ae598616e9..eb38b44ec036 100644
--- a/core/modules/block/src/BlockListBuilder.php
+++ b/core/modules/block/src/BlockListBuilder.php
@@ -182,7 +182,7 @@ protected function buildBlocksForm() {
 
     // Weights range from -delta to +delta, so delta should be at least half
     // of the amount of blocks present. This makes sure all blocks in the same
-    // region get an unique weight.
+    // region get a unique weight.
     $weight_delta = round(count($entities) / 2);
 
     $placement = FALSE;
diff --git a/core/modules/block_content/src/Access/RefinableDependentAccessInterface.php b/core/modules/block_content/src/Access/RefinableDependentAccessInterface.php
index 469de52b8a2c..5d9eaf430b43 100644
--- a/core/modules/block_content/src/Access/RefinableDependentAccessInterface.php
+++ b/core/modules/block_content/src/Access/RefinableDependentAccessInterface.php
@@ -35,7 +35,7 @@ public function setAccessDependency(AccessibleInterface $access_dependency);
    * instance with the existing and new dependencies as the members of the
    * group.
    *
-   * If there is an existing dependency and it is a instance of AccessGroupAnd
+   * If there is an existing dependency and it is an instance of AccessGroupAnd
    * the dependency will be added to the existing access group.
    *
    * @param \Drupal\Core\Access\AccessibleInterface $access_dependency
diff --git a/core/modules/book/src/BookManagerInterface.php b/core/modules/book/src/BookManagerInterface.php
index bee18c045903..44107f2f9066 100644
--- a/core/modules/book/src/BookManagerInterface.php
+++ b/core/modules/book/src/BookManagerInterface.php
@@ -31,7 +31,7 @@ interface BookManagerInterface {
    *   $link, in which case $max_depth should be greater than $link['depth'].
    *
    * @return array
-   *   An tree of menu links in an array, in the order they should be rendered.
+   *   A tree of menu links in an array, in the order they should be rendered.
    */
   public function bookTreeAllData($bid, $link = NULL, $max_depth = NULL);
 
diff --git a/core/modules/breakpoint/src/BreakpointManager.php b/core/modules/breakpoint/src/BreakpointManager.php
index 30caf27ebeb3..2e70062a8564 100644
--- a/core/modules/breakpoint/src/BreakpointManager.php
+++ b/core/modules/breakpoint/src/BreakpointManager.php
@@ -16,7 +16,7 @@
 /**
  * Defines a breakpoint plugin manager to deal with breakpoints.
  *
- * Extension can define breakpoints in a EXTENSION_NAME.breakpoints.yml file
+ * Extension can define breakpoints in an EXTENSION_NAME.breakpoints.yml file
  * contained in the extension's base directory. Each breakpoint has the
  * following structure:
  * @code
diff --git a/core/modules/color/tests/src/Functional/ColorSafePreviewTest.php b/core/modules/color/tests/src/Functional/ColorSafePreviewTest.php
index 5802e58ca759..6fab6afcfa23 100644
--- a/core/modules/color/tests/src/Functional/ColorSafePreviewTest.php
+++ b/core/modules/color/tests/src/Functional/ColorSafePreviewTest.php
@@ -49,7 +49,7 @@ public function testColorPreview() {
     \Drupal::service('theme_installer')->install(['color_test_theme']);
     $this->drupalLogin($this->bigUser);
 
-    // Markup is being printed from a HTML file located in:
+    // Markup is being printed from an HTML file located in:
     // core/modules/color/tests/modules/color_test/themes/color_test_theme/color/preview.html
     $url = Url::fromRoute('system.theme_settings_theme', ['theme' => 'color_test_theme']);
     $this->drupalGet($url);
diff --git a/core/modules/comment/comment.tokens.inc b/core/modules/comment/comment.tokens.inc
index 38529c959d47..dc16a7d767a1 100644
--- a/core/modules/comment/comment.tokens.inc
+++ b/core/modules/comment/comment.tokens.inc
@@ -22,7 +22,7 @@ function comment_token_info() {
   ];
 
   $tokens = [];
-  // Provide a integration for each entity type except comment.
+  // Provides an integration for each entity type except comment.
   foreach (\Drupal::entityTypeManager()->getDefinitions() as $entity_type_id => $entity_type) {
     if ($entity_type_id == 'comment' || !$entity_type->entityClassImplements(ContentEntityInterface::class)) {
       continue;
diff --git a/core/modules/comment/comment.views.inc b/core/modules/comment/comment.views.inc
index e5df31a1a05b..f9d83dbef96b 100644
--- a/core/modules/comment/comment.views.inc
+++ b/core/modules/comment/comment.views.inc
@@ -22,7 +22,7 @@ function comment_views_data_alter(&$data) {
     ],
   ];
 
-  // Provide a integration for each entity type except comment.
+  // Provides an integration for each entity type except comment.
   foreach (\Drupal::entityTypeManager()->getDefinitions() as $entity_type_id => $entity_type) {
     if ($entity_type_id == 'comment' || !$entity_type->entityClassImplements(ContentEntityInterface::class) || !$entity_type->getBaseTable()) {
       continue;
diff --git a/core/modules/comment/src/CommentFieldItemList.php b/core/modules/comment/src/CommentFieldItemList.php
index 73215e869816..60311ceeba47 100644
--- a/core/modules/comment/src/CommentFieldItemList.php
+++ b/core/modules/comment/src/CommentFieldItemList.php
@@ -7,7 +7,7 @@
 use Drupal\Core\Session\AccountInterface;
 
 /**
- * Defines a item list class for comment fields.
+ * Defines an item list class for comment fields.
  */
 class CommentFieldItemList extends FieldItemList {
 
diff --git a/core/modules/comment/src/Controller/CommentController.php b/core/modules/comment/src/Controller/CommentController.php
index b44cf13245cb..2cba4ac918df 100644
--- a/core/modules/comment/src/Controller/CommentController.php
+++ b/core/modules/comment/src/Controller/CommentController.php
@@ -242,7 +242,7 @@ public function getReplyForm(Request $request, EntityInterface $entity, $field_n
         $build['comment_parent'] = $this->entityTypeManager()->getViewBuilder('comment')->view($comment);
       }
 
-      // The comment is in response to a entity.
+      // The comment is in response to an entity.
       elseif ($entity->access('view', $account)) {
         // We make sure the field value isn't set so we don't end up with a
         // redirect loop.
diff --git a/core/modules/comment/src/Plugin/Action/UnpublishByKeywordComment.php b/core/modules/comment/src/Plugin/Action/UnpublishByKeywordComment.php
index f02aa3386653..b0eb8bb50bbb 100644
--- a/core/modules/comment/src/Plugin/Action/UnpublishByKeywordComment.php
+++ b/core/modules/comment/src/Plugin/Action/UnpublishByKeywordComment.php
@@ -37,7 +37,7 @@ class UnpublishByKeywordComment extends ConfigurableActionBase implements Contai
   protected $renderer;
 
   /**
-   * Constructs a UnpublishByKeywordComment object.
+   * Constructs an UnpublishByKeywordComment object.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/comment/src/Plugin/migrate/destination/EntityComment.php b/core/modules/comment/src/Plugin/migrate/destination/EntityComment.php
index 410fd6701aef..d096a3b53226 100644
--- a/core/modules/comment/src/Plugin/migrate/destination/EntityComment.php
+++ b/core/modules/comment/src/Plugin/migrate/destination/EntityComment.php
@@ -33,7 +33,7 @@ class EntityComment extends EntityContentBase {
   protected $stubCommentedEntityIds;
 
   /**
-   * Builds an comment entity destination.
+   * Builds a comment entity destination.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/comment/tests/src/Unit/CommentLinkBuilderTest.php b/core/modules/comment/tests/src/Unit/CommentLinkBuilderTest.php
index 64cdc6079e81..033dab80c199 100644
--- a/core/modules/comment/tests/src/Unit/CommentLinkBuilderTest.php
+++ b/core/modules/comment/tests/src/Unit/CommentLinkBuilderTest.php
@@ -227,7 +227,7 @@ public function getLinkCombinations() {
             // If the view mode is teaser, or the user can access comments and
             // comments exist or the form is on a separate page.
             if ($combination['view_mode'] == 'teaser' || ($combination['has_access_comments'] && $combination['comment_count']) || $combination['form_location'] == CommentItemInterface::FORM_SEPARATE_PAGE) {
-              // There should be a add comment link.
+              // There should be an add comment link.
               $expected['comment-add'] = ['title' => 'Add new comment'];
               if ($combination['form_location'] == CommentItemInterface::FORM_BELOW) {
                 // On the same page.
diff --git a/core/modules/config/tests/src/Functional/ConfigExportImportUITest.php b/core/modules/config/tests/src/Functional/ConfigExportImportUITest.php
index 114468b419dc..feea86fbf5d9 100644
--- a/core/modules/config/tests/src/Functional/ConfigExportImportUITest.php
+++ b/core/modules/config/tests/src/Functional/ConfigExportImportUITest.php
@@ -173,7 +173,7 @@ public function testExportImport() {
     $this->assertText($this->contentType->label());
 
     $this->drupalPostForm(NULL, [], 'Import all');
-    // After importing the snapshot has been updated an there are no warnings.
+    // After importing the snapshot has been updated and there are no warnings.
     $this->assertNoText('Warning message');
     $this->assertText('There are no configuration changes to import.');
 
diff --git a/core/modules/config_translation/src/Controller/ConfigTranslationMapperList.php b/core/modules/config_translation/src/Controller/ConfigTranslationMapperList.php
index 4e510aaf38e4..0d612a7a356a 100644
--- a/core/modules/config_translation/src/Controller/ConfigTranslationMapperList.php
+++ b/core/modules/config_translation/src/Controller/ConfigTranslationMapperList.php
@@ -14,7 +14,7 @@
 class ConfigTranslationMapperList extends ControllerBase {
 
   /**
-   * A array of configuration mapper instances.
+   * An array of configuration mapper instances.
    *
    * @var \Drupal\config_translation\ConfigMapperInterface[]
    */
diff --git a/core/modules/content_moderation/src/Plugin/Derivative/DynamicLocalTasks.php b/core/modules/content_moderation/src/Plugin/Derivative/DynamicLocalTasks.php
index 9f09a9a8908e..49fb4740bc6e 100644
--- a/core/modules/content_moderation/src/Plugin/Derivative/DynamicLocalTasks.php
+++ b/core/modules/content_moderation/src/Plugin/Derivative/DynamicLocalTasks.php
@@ -40,7 +40,7 @@ class DynamicLocalTasks extends DeriverBase implements ContainerDeriverInterface
   protected $moderationInfo;
 
   /**
-   * Creates an FieldUiLocalTask object.
+   * Creates a FieldUiLocalTask object.
    *
    * @param string $base_plugin_id
    *   The base plugin ID.
diff --git a/core/modules/content_translation/migrations/node_translation_menu_links.yml b/core/modules/content_translation/migrations/node_translation_menu_links.yml
index d6809f8fa601..5fa28654a0ac 100644
--- a/core/modules/content_translation/migrations/node_translation_menu_links.yml
+++ b/core/modules/content_translation/migrations/node_translation_menu_links.yml
@@ -38,7 +38,7 @@ process:
   new_nid:
     -
       # If the path is of the form "node/<ID>" and is not routed, we will get
-      # back an URI of the form "base:node/<ID>".
+      # back a URI of the form "base:node/<ID>".
       plugin: link_uri
       source: link_path
       validate_route: false
diff --git a/core/modules/datetime/tests/src/Functional/DateTestBase.php b/core/modules/datetime/tests/src/Functional/DateTestBase.php
index 0a85d7a60bb0..805ea0d4d9d4 100644
--- a/core/modules/datetime/tests/src/Functional/DateTestBase.php
+++ b/core/modules/datetime/tests/src/Functional/DateTestBase.php
@@ -151,7 +151,7 @@ protected function createField() {
   }
 
   /**
-   * Renders a entity_test and sets the output in the internal browser.
+   * Renders an entity_test and sets the output in the internal browser.
    *
    * @param int $id
    *   The entity_test ID to render.
diff --git a/core/modules/datetime_range/tests/src/Functional/DateRangeFieldTest.php b/core/modules/datetime_range/tests/src/Functional/DateRangeFieldTest.php
index 23ea25897dfe..8cdc936c5e91 100644
--- a/core/modules/datetime_range/tests/src/Functional/DateRangeFieldTest.php
+++ b/core/modules/datetime_range/tests/src/Functional/DateRangeFieldTest.php
@@ -466,7 +466,7 @@ public function testAlldayRangeField() {
     $field_name = $this->fieldStorage->getName();
     $field_label = $this->field->label();
 
-    // Ensure field is set to a all-day field.
+    // Ensure field is set to an all-day field.
     $this->fieldStorage->setSetting('datetime_type', DateRangeItem::DATETIME_TYPE_ALLDAY);
     $this->fieldStorage->save();
 
diff --git a/core/modules/dblog/tests/src/Kernel/ConnectionFailureTest.php b/core/modules/dblog/tests/src/Kernel/ConnectionFailureTest.php
index b17c138d131e..3aaf8232af1a 100644
--- a/core/modules/dblog/tests/src/Kernel/ConnectionFailureTest.php
+++ b/core/modules/dblog/tests/src/Kernel/ConnectionFailureTest.php
@@ -26,7 +26,7 @@ public function testConnectionFailureLogging() {
     // MySQL errors like "1153 - Got a packet bigger than 'max_allowed_packet'
     // bytes" or "1100 - Table 'xyz' was not locked with LOCK TABLES" lead to a
     // database connection unusable for further requests. All further request
-    // will result in an "2006 - MySQL server had gone away" error. As a
+    // will result in a "2006 - MySQL server had gone away" error. As a
     // consequence it's impossible to use this connection to log the causing
     // initial error itself. Using Database::closeConnection() we simulate such
     // a corrupted connection. In this case dblog has to establish a different
diff --git a/core/modules/dynamic_page_cache/tests/src/Functional/DynamicPageCacheIntegrationTest.php b/core/modules/dynamic_page_cache/tests/src/Functional/DynamicPageCacheIntegrationTest.php
index 49deda3057bf..fcf640f67e42 100644
--- a/core/modules/dynamic_page_cache/tests/src/Functional/DynamicPageCacheIntegrationTest.php
+++ b/core/modules/dynamic_page_cache/tests/src/Functional/DynamicPageCacheIntegrationTest.php
@@ -96,7 +96,7 @@ public function testDynamicPageCache() {
       $this->assertSession()->responseHeaderEquals(DynamicPageCacheSubscriber::HEADER, 'HIT');
     }
 
-    // Controllers returning render arrays, rendered as anything except a HTML
+    // Controllers returning render arrays, rendered as anything except an HTML
     // response, are ignored by Dynamic Page Cache (but only because those
     // wrapper formats' responses do not implement CacheableResponseInterface).
     $this->drupalGet('dynamic-page-cache-test/html', ['query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']]);
diff --git a/core/modules/editor/js/editor.admin.es6.js b/core/modules/editor/js/editor.admin.es6.js
index 744c4d975f78..2b97cfa3fcf3 100644
--- a/core/modules/editor/js/editor.admin.es6.js
+++ b/core/modules/editor/js/editor.admin.es6.js
@@ -765,7 +765,7 @@
   };
 
   /**
-   * Adds a HTML rule to the list of HTML rules for this feature.
+   * Adds an HTML rule to the list of HTML rules for this feature.
    *
    * @param {Drupal.EditorFeatureHTMLRule} rule
    *   A text editor feature HTML rule.
@@ -818,7 +818,7 @@
   };
 
   /**
-   * Adds a HTML rule to the list of HTML rules for this filter.
+   * Adds an HTML rule to the list of HTML rules for this filter.
    *
    * @param {Drupal.FilterHTMLRule} rule
    *   A text filter HTML rule.
diff --git a/core/modules/editor/src/Ajax/EditorDialogSave.php b/core/modules/editor/src/Ajax/EditorDialogSave.php
index 48a7867ad621..880f536c95ca 100644
--- a/core/modules/editor/src/Ajax/EditorDialogSave.php
+++ b/core/modules/editor/src/Ajax/EditorDialogSave.php
@@ -20,7 +20,7 @@ class EditorDialogSave implements CommandInterface {
   protected $values;
 
   /**
-   * Constructs a EditorDialogSave object.
+   * Constructs an EditorDialogSave object.
    *
    * @param string $values
    *   The values that should be passed to the form constructor in Drupal.
diff --git a/core/modules/editor/tests/src/Functional/EditorAdminTest.php b/core/modules/editor/tests/src/Functional/EditorAdminTest.php
index 556c16d75e9c..4015bd1403c7 100644
--- a/core/modules/editor/tests/src/Functional/EditorAdminTest.php
+++ b/core/modules/editor/tests/src/Functional/EditorAdminTest.php
@@ -137,7 +137,7 @@ public function testDisableFormatWithEditor() {
     $node->body->format = 'monoceros';
     $node->save();
 
-    // Log in as an user able to use both formats and edit nodes of created type.
+    // Log in as a user able to use both formats and edit nodes of created type.
     $account = $this->drupalCreateUser($permissions);
     $this->drupalLogin($account);
 
diff --git a/core/modules/editor/tests/src/Functional/EditorLoadingTest.php b/core/modules/editor/tests/src/Functional/EditorLoadingTest.php
index 1cdf63b074dd..c3579936fb5c 100644
--- a/core/modules/editor/tests/src/Functional/EditorLoadingTest.php
+++ b/core/modules/editor/tests/src/Functional/EditorLoadingTest.php
@@ -259,7 +259,7 @@ public function testSupportedElementTypes() {
     ]);
     $editor->save();
 
-    // Create an "page" node that uses the full_html text format.
+    // Create a "page" node that uses the full_html text format.
     $this->drupalCreateNode([
       'type' => 'page',
       'field_text' => [
diff --git a/core/modules/editor/tests/src/Functional/QuickEditIntegrationLoadingTest.php b/core/modules/editor/tests/src/Functional/QuickEditIntegrationLoadingTest.php
index 076d4ac8d537..7a4bae5f5386 100644
--- a/core/modules/editor/tests/src/Functional/QuickEditIntegrationLoadingTest.php
+++ b/core/modules/editor/tests/src/Functional/QuickEditIntegrationLoadingTest.php
@@ -91,7 +91,7 @@ public function testUsersWithoutPermission() {
 
       $client = $this->getHttpClient();
 
-      // Retrieving the untransformed text should result in an 403 response and
+      // Retrieving the untransformed text should result in a 403 response and
       // return a different error message depending of the missing permission.
       $response = $client->post($this->buildUrl('editor/node/1/body/en/full'), [
         'query' => http_build_query([MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']),
diff --git a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceAdminTest.php b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceAdminTest.php
index 6899c66008b0..ffc1652d3ddd 100644
--- a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceAdminTest.php
+++ b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceAdminTest.php
@@ -78,7 +78,7 @@ protected function setUp(): void {
    */
   public function testFieldAdminHandler() {
     $bundle_path = 'admin/structure/types/manage/' . $this->type;
-    // Create a new view and display it as a entity reference.
+    // Create a new view and display it as an entity reference.
     $edit = [
       'id' => 'node_test_view',
       'label' => 'Node Test View',
diff --git a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceFieldTranslatedReferenceViewTest.php b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceFieldTranslatedReferenceViewTest.php
index 5fb84bf3fefc..b8893e534e12 100644
--- a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceFieldTranslatedReferenceViewTest.php
+++ b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceFieldTranslatedReferenceViewTest.php
@@ -107,7 +107,7 @@ class EntityReferenceFieldTranslatedReferenceViewTest extends BrowserTestBase {
   protected $translatedLabel;
 
   /**
-   * An user with permission to edit the referrer entity.
+   * A user with permission to edit the referrer entity.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php
index 910bd4e0333e..82804909e76b 100644
--- a/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php
+++ b/core/modules/field/tests/src/Functional/EntityReference/EntityReferenceIntegrationTest.php
@@ -89,7 +89,7 @@ public function testSupportedEntityTypesAndWidgets() {
       $edit = [
         'name[0][value]' => $entity_name,
         $this->fieldName . '[0][target_id]' => $referenced_entities[0]->label() . ' (' . $referenced_entities[0]->id() . ')',
-        // Test an input of the entity label without a ' (entity_id)' suffix.
+        // Test an input of the entity label without an ' (entity_id)' suffix.
         $this->fieldName . '[1][target_id]' => $referenced_entities[1]->label(),
       ];
       $this->drupalPostForm($this->entityType . '/add', $edit, t('Save'));
@@ -115,7 +115,7 @@ public function testSupportedEntityTypesAndWidgets() {
 
       $entity_name = $this->randomMachineName();
       $target_id = $referenced_entities[0]->label() . ' (' . $referenced_entities[0]->id() . ')';
-      // Test an input of the entity label without a ' (entity_id)' suffix.
+      // Test an input of the entity label without an ' (entity_id)' suffix.
       $target_id .= ', ' . $referenced_entities[1]->label();
       $edit = [
         'name[0][value]' => $entity_name,
diff --git a/core/modules/field_ui/src/Element/FieldUiTable.php b/core/modules/field_ui/src/Element/FieldUiTable.php
index 3c9a14b78ba6..839a0ed5f44a 100644
--- a/core/modules/field_ui/src/Element/FieldUiTable.php
+++ b/core/modules/field_ui/src/Element/FieldUiTable.php
@@ -110,7 +110,7 @@ public static function tablePreRender($elements) {
 
     $elements['#attached']['drupalSettings']['fieldUIRowsData'] = $js_settings;
 
-    // If the custom #tabledrag is set and there is a HTML ID, add the table's
+    // If the custom #tabledrag is set and there is an HTML ID, add the table's
     // HTML ID to the options and attach the behavior.
     // @see \Drupal\Core\Render\Element\Table::preRenderTable()
     if (!empty($elements['#tabledrag']) && isset($elements['#attributes']['id'])) {
diff --git a/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php b/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php
index e762ab572e83..979942b9657d 100644
--- a/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php
+++ b/core/modules/field_ui/src/Plugin/Derivative/FieldUiLocalTask.php
@@ -39,7 +39,7 @@ class FieldUiLocalTask extends DeriverBase implements ContainerDeriverInterface
   protected $entityDisplayRepository;
 
   /**
-   * Creates an FieldUiLocalTask object.
+   * Creates a FieldUiLocalTask object.
    *
    * @param \Drupal\Core\Routing\RouteProviderInterface $route_provider
    *   The route provider.
diff --git a/core/modules/file/src/FileAccessControlHandler.php b/core/modules/file/src/FileAccessControlHandler.php
index 7c1aed94557b..e5c444dc3e9f 100644
--- a/core/modules/file/src/FileAccessControlHandler.php
+++ b/core/modules/file/src/FileAccessControlHandler.php
@@ -125,7 +125,7 @@ protected function checkCreateAccess(AccountInterface $account, array $context,
     // The file entity has no "create" permission because by default Drupal core
     // does not allow creating file entities independently. It allows you to
     // create file entities that are referenced from another entity
-    // (e.g. an image for a article). A contributed module is free to alter
+    // (e.g. an image for an article). A contributed module is free to alter
     // this to allow file entities to be created directly.
     return AccessResult::neutral();
   }
diff --git a/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php b/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
index a1dee5cceef5..2ae265d1e81a 100644
--- a/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
+++ b/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
@@ -64,7 +64,7 @@ public function add(FileInterface $file, $module, $type, $id, $count = 1) {
    * {@inheritdoc}
    */
   public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {
-    // Delete rows that have a exact or less value to prevent empty rows.
+    // Delete rows that have an exact or less value to prevent empty rows.
     $query = $this->connection->delete($this->tableName)
       ->condition('module', $module)
       ->condition('fid', $file->id());
diff --git a/core/modules/file/tests/src/Functional/FileFieldTestBase.php b/core/modules/file/tests/src/Functional/FileFieldTestBase.php
index 4d4eb5e6668f..dbb7a4e4b0c8 100644
--- a/core/modules/file/tests/src/Functional/FileFieldTestBase.php
+++ b/core/modules/file/tests/src/Functional/FileFieldTestBase.php
@@ -26,7 +26,7 @@ abstract class FileFieldTestBase extends BrowserTestBase {
   protected static $modules = ['node', 'file', 'file_module_test', 'field_ui'];
 
   /**
-   * An user with administration permissions.
+   * A user with administration permissions.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/file/tests/src/Functional/FileFieldWidgetTest.php b/core/modules/file/tests/src/Functional/FileFieldWidgetTest.php
index 4cfba900ae67..3486c626ada0 100644
--- a/core/modules/file/tests/src/Functional/FileFieldWidgetTest.php
+++ b/core/modules/file/tests/src/Functional/FileFieldWidgetTest.php
@@ -407,7 +407,7 @@ public function testWidgetElement() {
 
     $elements = $this->xpath($xpath);
 
-    // If the field has at least a item, the table should be visible.
+    // If the field has at least one item, the table should be visible.
     $this->assertCount(1, $elements);
 
     // Test for AJAX error when using progress bar on file field widget.
diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index f43e374f5d0a..cd8a5c5bde98 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -262,11 +262,11 @@ function filter_fallback_format() {
  * preview of content in a disallowed format.
  *
  * Note: this function should only be used when filtering text for use elsewhere
- * than on a rendered HTML page. If this is part of a HTML page, then a
+ * than on a rendered HTML page. If this is part of an HTML page, then a
  * renderable array with a #type 'processed_text' element should be used instead
  * of this, because that will allow cacheability metadata to be set and bubbled
  * up and attachments to be associated (assets, placeholders, etc.). In other
- * words: if you are presenting the filtered text in a HTML page, the only way
+ * words: if you are presenting the filtered text in an HTML page, the only way
  * this will be presented correctly, is by using the 'processed_text' element.
  *
  * @param string $text
diff --git a/core/modules/filter/src/Annotation/Filter.php b/core/modules/filter/src/Annotation/Filter.php
index 4d90c584263d..c65f9058e697 100644
--- a/core/modules/filter/src/Annotation/Filter.php
+++ b/core/modules/filter/src/Annotation/Filter.php
@@ -5,7 +5,7 @@
 use Drupal\Component\Annotation\Plugin;
 
 /**
- * Defines an filter annotation object.
+ * Defines a filter annotation object.
  *
  * Plugin Namespace: Plugin\Filter
  *
diff --git a/core/modules/filter/tests/src/Functional/FilterAdminTest.php b/core/modules/filter/tests/src/Functional/FilterAdminTest.php
index 361fb051b8e6..249506935057 100644
--- a/core/modules/filter/tests/src/Functional/FilterAdminTest.php
+++ b/core/modules/filter/tests/src/Functional/FilterAdminTest.php
@@ -34,14 +34,14 @@ class FilterAdminTest extends BrowserTestBase {
   protected $defaultTheme = 'classy';
 
   /**
-   * An user with administration permissions.
+   * A user with administration permissions.
    *
    * @var \Drupal\user\UserInterface
    */
   protected $adminUser;
 
   /**
-   * An user with permissions to create pages.
+   * A user with permissions to create pages.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/filter/tests/src/Functional/FilterFormTest.php b/core/modules/filter/tests/src/Functional/FilterFormTest.php
index 131c4fdcfc8b..a06f5e7a42ef 100644
--- a/core/modules/filter/tests/src/Functional/FilterFormTest.php
+++ b/core/modules/filter/tests/src/Functional/FilterFormTest.php
@@ -33,7 +33,7 @@ class FilterFormTest extends BrowserTestBase {
   protected $adminUser;
 
   /**
-   * An basic user account that can only access basic HTML text format.
+   * A basic user account that can only access basic HTML text format.
    *
    * @var \Drupal\user\Entity\User
    */
diff --git a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
index 0aedecc3fdde..8ab45cfada09 100644
--- a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
@@ -562,7 +562,7 @@ public function testUrlFilter() {
     // - absolute, mail, partial
     // - characters/encoding, surrounding markup, security
 
-    // Create a email that is too long.
+    // Create an email that is too long.
     $long_email = str_repeat('a', 254) . '@example.com';
     $too_long_email = str_repeat('b', 255) . '@example.com';
     $email_with_plus_sign = 'one+two@example.com';
@@ -862,7 +862,7 @@ public function testUrlFilter() {
    * Asserts multiple filter output expectations for multiple input strings.
    *
    * @param FilterInterface $filter
-   *   A input filter object.
+   *   An input filter object.
    * @param array $tests
    *   An associative array, whereas each key is an arbitrary input string and
    *   each value is again an associative array whose keys are filter output
diff --git a/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php b/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php
index f7c5552f0192..f1a7f0a21546 100644
--- a/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php
+++ b/core/modules/hal/src/Normalizer/ContentEntityNormalizer.php
@@ -41,7 +41,7 @@ class ContentEntityNormalizer extends NormalizerBase {
   protected $moduleHandler;
 
   /**
-   * Constructs an ContentEntityNormalizer object.
+   * Constructs a ContentEntityNormalizer object.
    *
    * @param \Drupal\hal\LinkManager\LinkManagerInterface $link_manager
    *   The hypermedia link manager.
diff --git a/core/modules/help/tests/src/Functional/HelpTest.php b/core/modules/help/tests/src/Functional/HelpTest.php
index 3cc9beeaf48c..46967c37f20e 100644
--- a/core/modules/help/tests/src/Functional/HelpTest.php
+++ b/core/modules/help/tests/src/Functional/HelpTest.php
@@ -89,8 +89,8 @@ public function testHelp() {
       $this->assertSession()->linkExists($name, 0, new FormattableMarkup('Link properly added to @name (admin/help/@module)', ['@module' => $module, '@name' => $name]));
     }
 
-    // Ensure that module which does not provide an module overview page is
-    // handled correctly.
+    // Ensure a module which does not provide a module overview page is handled
+    // correctly.
     $this->clickLink(\Drupal::moduleHandler()->getName('help_test'));
     $this->assertRaw(t('No help is available for module %module.', ['%module' => \Drupal::moduleHandler()->getName('help_test')]));
 
diff --git a/core/modules/image/src/Controller/ImageStyleDownloadController.php b/core/modules/image/src/Controller/ImageStyleDownloadController.php
index 742886ae4ab2..79e0bcbf92dd 100644
--- a/core/modules/image/src/Controller/ImageStyleDownloadController.php
+++ b/core/modules/image/src/Controller/ImageStyleDownloadController.php
@@ -52,7 +52,7 @@ class ImageStyleDownloadController extends FileDownloadController {
   protected $fileSystem;
 
   /**
-   * Constructs a ImageStyleDownloadController object.
+   * Constructs an ImageStyleDownloadController object.
    *
    * @param \Drupal\Core\Lock\LockBackendInterface $lock
    *   The lock backend.
diff --git a/core/modules/image/src/ImageStyleStorageInterface.php b/core/modules/image/src/ImageStyleStorageInterface.php
index 2678f487fd55..7a5223d4b006 100644
--- a/core/modules/image/src/ImageStyleStorageInterface.php
+++ b/core/modules/image/src/ImageStyleStorageInterface.php
@@ -11,7 +11,7 @@ interface ImageStyleStorageInterface {
    * Stores a replacement ID for an image style being deleted.
    *
    * The method stores a replacement style to be used by the configuration
-   * dependency system when a image style is deleted. The replacement style is
+   * dependency system when an image style is deleted. The replacement style is
    * replacing the deleted style in other configuration entities that are
    * depending on the image style being deleted.
    *
diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
index 8f80ef6f46de..26bff11e4d63 100644
--- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
+++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
@@ -468,7 +468,7 @@ protected function defaultImageForm(array &$element, array $settings) {
    * Validates the managed_file element for the default Image form.
    *
    * This function ensures the fid is a scalar value and not an array. It is
-   * assigned as a #element_validate callback in
+   * assigned as an #element_validate callback in
    * \Drupal\image\Plugin\Field\FieldType\ImageItem::defaultImageForm().
    *
    * @param array $element
diff --git a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
index 05aab0b05d7a..2a1805c67479 100644
--- a/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
+++ b/core/modules/image/src/Plugin/Field/FieldWidget/ImageWidget.php
@@ -186,7 +186,7 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
   }
 
   /**
-   * Form API callback: Processes a image_image field element.
+   * Form API callback: Processes an image_image field element.
    *
    * Expands the image_image type to include the alt and title fields.
    *
diff --git a/core/modules/image/tests/src/Functional/ImageFieldTestBase.php b/core/modules/image/tests/src/Functional/ImageFieldTestBase.php
index f7754197a70f..3bd5fe5d8769 100644
--- a/core/modules/image/tests/src/Functional/ImageFieldTestBase.php
+++ b/core/modules/image/tests/src/Functional/ImageFieldTestBase.php
@@ -39,7 +39,7 @@ abstract class ImageFieldTestBase extends BrowserTestBase {
   ];
 
   /**
-   * An user with permissions to administer content types and image styles.
+   * A user with permissions to administer content types and image styles.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/image/tests/src/Functional/ImageOnTranslatedEntityTest.php b/core/modules/image/tests/src/Functional/ImageOnTranslatedEntityTest.php
index 6667c9e5cff4..b687a430eca2 100644
--- a/core/modules/image/tests/src/Functional/ImageOnTranslatedEntityTest.php
+++ b/core/modules/image/tests/src/Functional/ImageOnTranslatedEntityTest.php
@@ -48,7 +48,7 @@ protected function setUp(): void {
     //   https://www.drupal.org/node/1239558.
     $this->drupalCreateContentType(['type' => 'basicpage', 'name' => 'Basic page', 'new_revision' => FALSE]);
 
-    // Create a image field on the "Basic page" node type.
+    // Create an image field on the "Basic page" node type.
     $this->fieldName = strtolower($this->randomMachineName());
     $this->createImageField($this->fieldName, 'basicpage', [], ['title_field' => 1]);
 
diff --git a/core/modules/image/tests/src/Functional/QuickEditImageControllerTest.php b/core/modules/image/tests/src/Functional/QuickEditImageControllerTest.php
index bae4dbb9ba57..66e386eae259 100644
--- a/core/modules/image/tests/src/Functional/QuickEditImageControllerTest.php
+++ b/core/modules/image/tests/src/Functional/QuickEditImageControllerTest.php
@@ -139,7 +139,7 @@ public function testValidImageUpload() {
   }
 
   /**
-   * Tests that uploading a invalid image does not work.
+   * Tests that uploading an invalid image does not work.
    */
   public function testInvalidUpload() {
     // Create a test Node.
diff --git a/core/modules/image/tests/src/FunctionalJavascript/ImageFieldTestBase.php b/core/modules/image/tests/src/FunctionalJavascript/ImageFieldTestBase.php
index efe566a19a33..faf352ed1675 100644
--- a/core/modules/image/tests/src/FunctionalJavascript/ImageFieldTestBase.php
+++ b/core/modules/image/tests/src/FunctionalJavascript/ImageFieldTestBase.php
@@ -29,7 +29,7 @@ abstract class ImageFieldTestBase extends WebDriverTestBase {
   ];
 
   /**
-   * An user with permissions to administer content types and image styles.
+   * A user with permissions to administer content types and image styles.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/jsonapi/src/Controller/EntityResource.php b/core/modules/jsonapi/src/Controller/EntityResource.php
index c7438feb9c72..52a9799bd338 100644
--- a/core/modules/jsonapi/src/Controller/EntityResource.php
+++ b/core/modules/jsonapi/src/Controller/EntityResource.php
@@ -152,7 +152,7 @@ class EntityResource {
   protected $user;
 
   /**
-   * Instantiates a EntityResource object.
+   * Instantiates an EntityResource object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
@@ -1263,7 +1263,7 @@ protected static function getRequestLink(Request $request, $query = NULL) {
    *   An associative array with extra data to build the links.
    *
    * @return \Drupal\jsonapi\JsonApiResource\LinkCollection
-   *   An LinkCollection, with:
+   *   A LinkCollection, with:
    *   - a 'next' key if it is not the last page;
    *   - 'prev' and 'first' keys if it's not the first page.
    */
diff --git a/core/modules/jsonapi/src/IncludeResolver.php b/core/modules/jsonapi/src/IncludeResolver.php
index ad0e36ca4056..e68c9b218ebf 100644
--- a/core/modules/jsonapi/src/IncludeResolver.php
+++ b/core/modules/jsonapi/src/IncludeResolver.php
@@ -166,7 +166,7 @@ protected function resolveIncludeTree(array $include_tree, Data $data, Data $inc
    *   The raw include parameter value.
    *
    * @return array
-   *   An multi-dimensional array representing a tree of field names to be
+   *   A multi-dimensional array representing a tree of field names to be
    *   included. Array keys are the field names. Leaves are empty arrays.
    */
   protected static function toIncludeTree(ResourceObjectData $data, $include_parameter) {
@@ -238,7 +238,7 @@ protected static function resolveInternalIncludePaths(ResourceType $base_resourc
    *   An array of exploded include paths.
    *
    * @return array
-   *   An multi-dimensional array representing a tree of field names to be
+   *   A multi-dimensional array representing a tree of field names to be
    *   included. Array keys are the field names. Leaves are empty arrays.
    */
   protected static function buildTree(array $paths) {
diff --git a/core/modules/language/src/Plugin/Block/LanguageBlock.php b/core/modules/language/src/Plugin/Block/LanguageBlock.php
index be8571b975f3..2765971b8e6d 100644
--- a/core/modules/language/src/Plugin/Block/LanguageBlock.php
+++ b/core/modules/language/src/Plugin/Block/LanguageBlock.php
@@ -38,7 +38,7 @@ class LanguageBlock extends BlockBase implements ContainerFactoryPluginInterface
   protected $pathMatcher;
 
   /**
-   * Constructs an LanguageBlock object.
+   * Constructs a LanguageBlock object.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php
index 87e12c7d4b9e..0ddd7355d0c9 100644
--- a/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php
+++ b/core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationContentEntity.php
@@ -201,7 +201,7 @@ protected function hasLowerLanguageNegotiationWeight() {
   /**
    * Determines if content entity route condition is met.
    *
-   * Requirements: currently being on an content entity route and processing
+   * Requirements: currently being on a content entity route and processing
    * outbound url pointing to the same content entity.
    *
    * @param \Symfony\Component\Routing\Route $outbound_route
diff --git a/core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php b/core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php
index 2ff5950c92f6..5a64197be4b4 100644
--- a/core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php
+++ b/core/modules/language/tests/src/Functional/LanguageConfigurationElementTest.php
@@ -146,7 +146,7 @@ public function testDefaultLangcode() {
 
     // Check the default value of a language field when authors preferred option
     // is selected.
-    // Create first an user and assign a preferred langcode.
+    // First create a user, then assign a langcode.
     $some_user = $this->drupalCreateUser();
     $some_user->preferred_langcode = 'bb';
     $some_user->save();
diff --git a/core/modules/language/tests/src/Functional/LanguageUrlRewritingTest.php b/core/modules/language/tests/src/Functional/LanguageUrlRewritingTest.php
index 399425379c7b..0a72a3ddf0bf 100644
--- a/core/modules/language/tests/src/Functional/LanguageUrlRewritingTest.php
+++ b/core/modules/language/tests/src/Functional/LanguageUrlRewritingTest.php
@@ -29,7 +29,7 @@ class LanguageUrlRewritingTest extends BrowserTestBase {
   protected $defaultTheme = 'stark';
 
   /**
-   * An user with permissions to administer languages.
+   * A user with permissions to administer languages.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/language/tests/src/Kernel/EntityUrlLanguageTest.php b/core/modules/language/tests/src/Kernel/EntityUrlLanguageTest.php
index 699dcee4c575..c7bfa77a136f 100644
--- a/core/modules/language/tests/src/Kernel/EntityUrlLanguageTest.php
+++ b/core/modules/language/tests/src/Kernel/EntityUrlLanguageTest.php
@@ -77,7 +77,7 @@ public function testEntityUrlLanguageWithLanguageContentEnabled() {
     ]);
     $config->save();
 
-    // Without being on an content entity route the default entity URL tests
+    // Without being on a content entity route the default entity URL tests
     // should still pass.
     $this->testEntityUrlLanguage();
 
diff --git a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php
index 3243be97a6b6..28b17399abdc 100644
--- a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php
+++ b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php
@@ -11,7 +11,7 @@
 use Drupal\layout_builder\SectionStorage\SectionStorageTrait;
 
 /**
- * Defines a item list class for layout section fields.
+ * Defines an item list class for layout section fields.
  *
  * @internal
  *   Plugin classes are internal.
diff --git a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
index 593e7812a376..b4dbdd8c36cf 100644
--- a/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
+++ b/core/modules/link/src/Plugin/Field/FieldWidget/LinkWidget.php
@@ -104,7 +104,7 @@ protected static function getUriAsDisplayableString($uri) {
    * @see static::getUriAsDisplayableString()
    */
   protected static function getUserEnteredStringAsUri($string) {
-    // By default, assume the entered string is an URI.
+    // By default, assume the entered string is a URI.
     $uri = trim($string);
 
     // Detect entity autocomplete string, map to 'entity:' URI.
@@ -142,7 +142,7 @@ public static function validateUriElement($element, FormStateInterface $form_sta
     $uri = static::getUserEnteredStringAsUri($element['#value']);
     $form_state->setValueForElement($element, $uri);
 
-    // If getUserEnteredStringAsUri() mapped the entered value to a 'internal:'
+    // If getUserEnteredStringAsUri() mapped the entered value to an 'internal:'
     // URI , ensure the raw value begins with '/', '?' or '#'.
     // @todo '<front>' is valid input for BC reasons, may be removed by
     //   https://www.drupal.org/node/2421941
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index d68746ae104f..f18e8b8247d0 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -996,7 +996,7 @@ function locale_translation_use_remote_source() {
  * not have any false positives. But it is only a test, not a transformation,
  * as it destroys valid HTML. We cannot reliably filter translation strings
  * on import because some strings are irreversibly corrupted. For example,
- * a &amp; in the translation would get encoded to &amp;amp; by
+ * an &amp; in the translation would get encoded to &amp;amp; by
  * \Drupal\Component\Utility\Xss::filter() before being put in the database,
  * and thus would be displayed incorrectly.
  *
diff --git a/core/modules/locale/src/Form/TranslationStatusForm.php b/core/modules/locale/src/Form/TranslationStatusForm.php
index a6d914afe9d1..4ac817c784dc 100644
--- a/core/modules/locale/src/Form/TranslationStatusForm.php
+++ b/core/modules/locale/src/Form/TranslationStatusForm.php
@@ -277,8 +277,8 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
     $options = _locale_translation_default_update_options();
 
     // If the status was updated recently we can immediately start fetching the
-    // translation updates. If the status is expired we clear it an run a batch to
-    // update the status and then fetch the translation updates.
+    // translation updates. If the status is expired we clear it and run a batch
+    // to update the status and then fetch the translation updates.
     $last_checked = $this->state->get('locale.translation_last_checked');
     if ($last_checked < REQUEST_TIME - LOCALE_TRANSLATION_STATUS_TTL) {
       locale_translation_clear_status();
diff --git a/core/modules/locale/src/Gettext.php b/core/modules/locale/src/Gettext.php
index 44677aa28b64..b30eb4a7e6ce 100644
--- a/core/modules/locale/src/Gettext.php
+++ b/core/modules/locale/src/Gettext.php
@@ -18,7 +18,7 @@ class Gettext {
    * Reads the given PO files into the database.
    *
    * @param object $file
-   *   File object with an URI property pointing at the file's path.
+   *   File object with a URI property pointing at the file's path.
    *   - "langcode": The language the strings will be added to.
    *   - "uri": File URI.
    * @param array $options
diff --git a/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php b/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php
index de6ea989ab34..7bab05decc79 100644
--- a/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php
+++ b/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php
@@ -447,7 +447,7 @@ public function getPoFile() {
   }
 
   /**
-   * Helper function that returns a empty .po file.
+   * Helper function that returns an empty .po file.
    */
   public function getEmptyPoFile() {
     return '';
diff --git a/core/modules/media/src/Plugin/Field/FieldFormatter/MediaThumbnailFormatter.php b/core/modules/media/src/Plugin/Field/FieldFormatter/MediaThumbnailFormatter.php
index dbceaf8a1120..238545678ac7 100644
--- a/core/modules/media/src/Plugin/Field/FieldFormatter/MediaThumbnailFormatter.php
+++ b/core/modules/media/src/Plugin/Field/FieldFormatter/MediaThumbnailFormatter.php
@@ -35,7 +35,7 @@ class MediaThumbnailFormatter extends ImageFormatter {
   protected $renderer;
 
   /**
-   * Constructs an MediaThumbnailFormatter object.
+   * Constructs a MediaThumbnailFormatter object.
    *
    * @param string $plugin_id
    *   The plugin_id for the formatter.
diff --git a/core/modules/media/tests/src/Functional/MediaAccessTest.php b/core/modules/media/tests/src/Functional/MediaAccessTest.php
index ae604fcfb5f7..be40eccfd1a2 100644
--- a/core/modules/media/tests/src/Functional/MediaAccessTest.php
+++ b/core/modules/media/tests/src/Functional/MediaAccessTest.php
@@ -328,7 +328,7 @@ public function testReferencedRendering() {
 
     $this->container->get('router.builder')->rebuild();
 
-    // Create a media type and a entity reference to itself.
+    // Create a media type and an entity reference to itself.
     $media_type = $this->createMediaType('test');
 
     FieldStorageConfig::create([
diff --git a/core/modules/media/tests/src/Functional/MediaRevisionTest.php b/core/modules/media/tests/src/Functional/MediaRevisionTest.php
index 6ec57bea2cb9..184a1b284c4c 100644
--- a/core/modules/media/tests/src/Functional/MediaRevisionTest.php
+++ b/core/modules/media/tests/src/Functional/MediaRevisionTest.php
@@ -119,7 +119,7 @@ public function testFileMediaRevision() {
   }
 
   /**
-   * Tests creating revisions of a Image media item.
+   * Tests creating revisions of an Image media item.
    */
   public function testImageMediaRevision() {
     $assert = $this->assertSession();
diff --git a/core/modules/media_library/src/Form/AddFormBase.php b/core/modules/media_library/src/Form/AddFormBase.php
index ac765fb862b6..317f0842a1a9 100644
--- a/core/modules/media_library/src/Form/AddFormBase.php
+++ b/core/modules/media_library/src/Form/AddFormBase.php
@@ -63,7 +63,7 @@ abstract class AddFormBase extends FormBase implements BaseFormIdInterface, Trus
   protected $openerResolver;
 
   /**
-   * Constructs a AddFormBase object.
+   * Constructs an AddFormBase object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
@@ -738,7 +738,7 @@ protected function buildMediaLibraryUi(FormStateInterface $form_state) {
    *   The current form state.
    *
    * @return array|\Drupal\Core\Ajax\AjaxResponse
-   *   The form array when there are form errors or a AJAX response to select
+   *   The form array when there are form errors or an AJAX response to select
    *   the created items in the media library.
    */
   public function updateWidget(array &$form, FormStateInterface $form_state) {
diff --git a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
index 90ff62eaea1b..1132883cd6e6 100644
--- a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
+++ b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
@@ -217,7 +217,7 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
     /** @var \Drupal\Core\Menu\MenuLinkManagerInterface $menu_link_manager */
     $menu_link_manager = \Drupal::service('plugin.manager.menu.link');
 
-    // The menu link can just be updated if there is already an menu link entry
+    // The menu link can just be updated if there is already a menu link entry
     // on both entity and menu link plugin level.
     $definition = $this->getPluginDefinition();
     // Even when $update is FALSE, for top level links it is possible the link
diff --git a/core/modules/menu_ui/src/Form/MenuDeleteForm.php b/core/modules/menu_ui/src/Form/MenuDeleteForm.php
index 57848dfcbd34..c876fd93f102 100644
--- a/core/modules/menu_ui/src/Form/MenuDeleteForm.php
+++ b/core/modules/menu_ui/src/Form/MenuDeleteForm.php
@@ -83,7 +83,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
 
     // Delete all links to the overview page for this menu.
     // @todo Add a more generic helper function to the menu link plugin
-    //   manager to remove links to a entity or other ID used as a route
+    //   manager to remove links to an entity or other ID used as a route
     //   parameter that is being removed. Also, consider moving this to
     //   menu_ui.module as part of a generic response to entity deletion.
     //   https://www.drupal.org/node/2310329
diff --git a/core/modules/migrate/src/Event/MigrateRollbackEvent.php b/core/modules/migrate/src/Event/MigrateRollbackEvent.php
index 078b19997fcd..b04fab42677f 100644
--- a/core/modules/migrate/src/Event/MigrateRollbackEvent.php
+++ b/core/modules/migrate/src/Event/MigrateRollbackEvent.php
@@ -18,7 +18,7 @@ class MigrateRollbackEvent extends Event {
   protected $migration;
 
   /**
-   * Constructs an rollback event object.
+   * Constructs a rollback event object.
    *
    * @param \Drupal\migrate\Plugin\MigrationInterface $migration
    *   Migration entity.
diff --git a/core/modules/migrate/src/Plugin/Discovery/ProviderFilterDecorator.php b/core/modules/migrate/src/Plugin/Discovery/ProviderFilterDecorator.php
index 2f657119e715..6f5df50959ca 100644
--- a/core/modules/migrate/src/Plugin/Discovery/ProviderFilterDecorator.php
+++ b/core/modules/migrate/src/Plugin/Discovery/ProviderFilterDecorator.php
@@ -32,7 +32,7 @@ class ProviderFilterDecorator implements DiscoveryInterface {
   protected $providerExists;
 
   /**
-   * Constructs a InheritProviderDecorator object.
+   * Constructs an InheritProviderDecorator object.
    *
    * @param \Drupal\Component\Plugin\Discovery\DiscoveryInterface $decorated
    *   The object implementing DiscoveryInterface that is being decorated.
diff --git a/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php b/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
index 2692a633f053..37436b892ef3 100644
--- a/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
+++ b/core/modules/migrate/src/Plugin/migrate/id_map/Sql.php
@@ -198,7 +198,7 @@ public static function create(ContainerInterface $container, array $configuratio
    *   The source identifiers
    *
    * @return string
-   *   An hash containing the hashed values of the source identifiers.
+   *   A hash containing the hashed values of the source identifiers.
    */
   public function getSourceIdsHash(array $source_id_values) {
     // When looking up the destination ID we require an array with both the
diff --git a/core/modules/node/src/Access/NodeAddAccessCheck.php b/core/modules/node/src/Access/NodeAddAccessCheck.php
index e915cb114f82..5a61b05d9494 100644
--- a/core/modules/node/src/Access/NodeAddAccessCheck.php
+++ b/core/modules/node/src/Access/NodeAddAccessCheck.php
@@ -23,7 +23,7 @@ class NodeAddAccessCheck implements AccessInterface {
   protected $entityTypeManager;
 
   /**
-   * Constructs a EntityCreateAccessCheck object.
+   * Constructs an EntityCreateAccessCheck object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
diff --git a/core/modules/node/src/Access/NodePreviewAccessCheck.php b/core/modules/node/src/Access/NodePreviewAccessCheck.php
index 54c3e815e953..847ef61bb5ae 100644
--- a/core/modules/node/src/Access/NodePreviewAccessCheck.php
+++ b/core/modules/node/src/Access/NodePreviewAccessCheck.php
@@ -22,7 +22,7 @@ class NodePreviewAccessCheck implements AccessInterface {
   protected $entityTypeManager;
 
   /**
-   * Constructs a EntityCreateAccessCheck object.
+   * Constructs an EntityCreateAccessCheck object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager service.
diff --git a/core/modules/node/src/Controller/NodePreviewController.php b/core/modules/node/src/Controller/NodePreviewController.php
index 886a1a48d551..f47a22493024 100644
--- a/core/modules/node/src/Controller/NodePreviewController.php
+++ b/core/modules/node/src/Controller/NodePreviewController.php
@@ -22,7 +22,7 @@ class NodePreviewController extends EntityViewController {
   protected $entityRepository;
 
   /**
-   * Creates an NodeViewController object.
+   * Creates a NodeViewController object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
diff --git a/core/modules/node/src/Controller/NodeViewController.php b/core/modules/node/src/Controller/NodeViewController.php
index 167483cef90e..a0787d4abccc 100644
--- a/core/modules/node/src/Controller/NodeViewController.php
+++ b/core/modules/node/src/Controller/NodeViewController.php
@@ -30,7 +30,7 @@ class NodeViewController extends EntityViewController {
   protected $entityRepository;
 
   /**
-   * Creates an NodeViewController object.
+   * Creates a NodeViewController object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
diff --git a/core/modules/node/tests/src/Functional/NodeFormSaveChangedTimeTest.php b/core/modules/node/tests/src/Functional/NodeFormSaveChangedTimeTest.php
index 4ba76663749e..018d6f19324b 100644
--- a/core/modules/node/tests/src/Functional/NodeFormSaveChangedTimeTest.php
+++ b/core/modules/node/tests/src/Functional/NodeFormSaveChangedTimeTest.php
@@ -26,7 +26,7 @@ class NodeFormSaveChangedTimeTest extends BrowserTestBase {
   protected $defaultTheme = 'stark';
 
   /**
-   * An user with permissions to create and edit articles.
+   * A user with permissions to create and edit articles.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/node/tests/src/Kernel/NodeAccessLanguageAwareCombinationTest.php b/core/modules/node/tests/src/Kernel/NodeAccessLanguageAwareCombinationTest.php
index 0c0327167b04..2a71d6446f3b 100644
--- a/core/modules/node/tests/src/Kernel/NodeAccessLanguageAwareCombinationTest.php
+++ b/core/modules/node/tests/src/Kernel/NodeAccessLanguageAwareCombinationTest.php
@@ -214,7 +214,7 @@ public function testNodeAccessLanguageAwareCombination() {
     $this->assertNodeAccess($expected_node_access, $this->nodes['private_both_public']->getTranslation('hu'), $this->webUser);
     $this->assertNodeAccess($expected_node_access, $this->nodes['private_both_public']->getTranslation('ca'), $this->webUser);
 
-    // If the node is marked private, but a existing translation is public,
+    // If the node is marked private, but an existing translation is public,
     // access should only be granted for the public translation. With the
     // Hungarian translation marked as private, but the Catalan translation
     // public, the access is granted.
diff --git a/core/modules/node/tests/src/Kernel/Views/NidArgumentTest.php b/core/modules/node/tests/src/Kernel/Views/NidArgumentTest.php
index 0cee9b34a279..274baa2b14f4 100644
--- a/core/modules/node/tests/src/Kernel/Views/NidArgumentTest.php
+++ b/core/modules/node/tests/src/Kernel/Views/NidArgumentTest.php
@@ -68,7 +68,7 @@ public function testNidArgument() {
     $view->preview();
     $this->assertCount(2, $view->result, 'Found the expected number of results.');
 
-    // Set an the second node id as an argument.
+    // Set the second node id as an argument.
     $view->destroy();
     $view->preview('default', [$node2->id()]);
     // Verify that the title is overridden.
diff --git a/core/modules/path/tests/src/Functional/PathLanguageTest.php b/core/modules/path/tests/src/Functional/PathLanguageTest.php
index 0ca320166d5b..677557ae3ca0 100644
--- a/core/modules/path/tests/src/Functional/PathLanguageTest.php
+++ b/core/modules/path/tests/src/Functional/PathLanguageTest.php
@@ -27,7 +27,7 @@ class PathLanguageTest extends PathTestBase {
   protected $defaultTheme = 'stark';
 
   /**
-   * An user with permissions to administer content types.
+   * A user with permissions to administer content types.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/path_alias/tests/src/Functional/UrlAlterFunctionalTest.php b/core/modules/path_alias/tests/src/Functional/UrlAlterFunctionalTest.php
index d529a0bb4fd8..a100d5151eee 100644
--- a/core/modules/path_alias/tests/src/Functional/UrlAlterFunctionalTest.php
+++ b/core/modules/path_alias/tests/src/Functional/UrlAlterFunctionalTest.php
@@ -107,7 +107,7 @@ protected function assertUrlOutboundAlter($original, $final) {
   }
 
   /**
-   * Assert that a inbound path is altered to an expected value.
+   * Assert that an inbound path is altered to an expected value.
    *
    * @param $original
    *   The original path before it has been altered by inbound URL processing.
diff --git a/core/modules/quickedit/js/models/EntityModel.es6.js b/core/modules/quickedit/js/models/EntityModel.es6.js
index 84a68818b074..433e1d5216c4 100644
--- a/core/modules/quickedit/js/models/EntityModel.es6.js
+++ b/core/modules/quickedit/js/models/EntityModel.es6.js
@@ -68,7 +68,7 @@
         fields: null,
 
         // The attributes below are stateful. The ones above will never change
-        // during the life of a EntityModel instance.
+        // during the life of an EntityModel instance.
 
         /**
          * Indicates whether this entity is currently being edited in-place.
diff --git a/core/modules/quickedit/js/views/EntityToolbarView.es6.js b/core/modules/quickedit/js/views/EntityToolbarView.es6.js
index ac56729cbc6a..d9bf8746dd16 100644
--- a/core/modules/quickedit/js/views/EntityToolbarView.es6.js
+++ b/core/modules/quickedit/js/views/EntityToolbarView.es6.js
@@ -100,8 +100,8 @@
           if ($body.children('#quickedit-entity-toolbar').length === 0) {
             $body.append(this.$el);
           }
-          // The fence will define a area on the screen that the entity toolbar
-          // will be position within.
+          // The fence will define an area on the screen that the entity toolbar
+          // will be positioned within.
           if ($body.children('#quickedit-toolbar-fence').length === 0) {
             this.$fence = $(Drupal.theme('quickeditEntityToolbarFence'))
               .css(Drupal.displace())
diff --git a/core/modules/quickedit/src/Ajax/EntitySavedCommand.php b/core/modules/quickedit/src/Ajax/EntitySavedCommand.php
index 1dcd6d088407..a0366515e920 100644
--- a/core/modules/quickedit/src/Ajax/EntitySavedCommand.php
+++ b/core/modules/quickedit/src/Ajax/EntitySavedCommand.php
@@ -11,7 +11,7 @@
 class EntitySavedCommand extends BaseCommand {
 
   /**
-   * Constructs a EntitySaveCommand object.
+   * Constructs an EntitySaveCommand object.
    *
    * @param string $data
    *   The data to pass on to the client side.
diff --git a/core/modules/quickedit/src/Plugin/InPlaceEditorManager.php b/core/modules/quickedit/src/Plugin/InPlaceEditorManager.php
index 4dcb7547dc8b..a65fe13ecb04 100644
--- a/core/modules/quickedit/src/Plugin/InPlaceEditorManager.php
+++ b/core/modules/quickedit/src/Plugin/InPlaceEditorManager.php
@@ -19,7 +19,7 @@
 class InPlaceEditorManager extends DefaultPluginManager {
 
   /**
-   * Constructs a InPlaceEditorManager object.
+   * Constructs an InPlaceEditorManager object.
    *
    * @param \Traversable $namespaces
    *   An object that implements \Traversable which contains the root paths
diff --git a/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditAutocompleteTermTest.php b/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditAutocompleteTermTest.php
index 7b6d0dcada4d..241d9376db4c 100644
--- a/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditAutocompleteTermTest.php
+++ b/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditAutocompleteTermTest.php
@@ -72,7 +72,7 @@ class QuickEditAutocompleteTermTest extends WebDriverTestBase {
   protected $fieldName;
 
   /**
-   * An user with permissions to access in-place editor.
+   * A user with permissions to access in-place editor.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditLoadingTest.php b/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditLoadingTest.php
index 25df4a33151d..cd0470f3b980 100644
--- a/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditLoadingTest.php
+++ b/core/modules/quickedit/tests/src/FunctionalJavascript/QuickEditLoadingTest.php
@@ -47,7 +47,7 @@ class QuickEditLoadingTest extends WebDriverTestBase {
   protected $defaultTheme = 'classy';
 
   /**
-   * An user with permissions to create and edit articles.
+   * A user with permissions to create and edit articles.
    *
    * @var \Drupal\user\UserInterface
    */
@@ -61,7 +61,7 @@ class QuickEditLoadingTest extends WebDriverTestBase {
   protected $testNode;
 
   /**
-   * A author user with permissions to access in-place editor.
+   * An author user with permissions to access in-place editor.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/responsive_image/src/ResponsiveImageStyleInterface.php b/core/modules/responsive_image/src/ResponsiveImageStyleInterface.php
index 226797188aef..a858f56861c7 100644
--- a/core/modules/responsive_image/src/ResponsiveImageStyleInterface.php
+++ b/core/modules/responsive_image/src/ResponsiveImageStyleInterface.php
@@ -129,7 +129,7 @@ public function getImageStyleMapping($breakpoint_id, $multiplier);
   public static function isEmptyImageStyleMapping(array $image_style_mapping);
 
   /**
-   * Adds a image style mapping to the responsive image configuration entity.
+   * Adds an image style mapping to the responsive image configuration entity.
    *
    * @param string $breakpoint_id
    *   The breakpoint ID.
diff --git a/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php b/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php
index 4d349f163829..43750fb75870 100644
--- a/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php
+++ b/core/modules/rest/tests/src/Functional/Views/StyleSerializerTest.php
@@ -586,7 +586,7 @@ public function testFieldRawOutput() {
    * Tests the live preview output for json output.
    */
   public function testLivePreview() {
-    // We set up a request so it looks like an request in the live preview.
+    // We set up a request so it looks like a request in the live preview.
     $request = new Request();
     $request->query->add([MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax']);
     /** @var \Symfony\Component\HttpFoundation\RequestStack $request_stack */
diff --git a/core/modules/search/tests/src/Kernel/Migrate/d7/MigrateSearchPageTest.php b/core/modules/search/tests/src/Kernel/Migrate/d7/MigrateSearchPageTest.php
index 14585675d6c9..16106e75302f 100644
--- a/core/modules/search/tests/src/Kernel/Migrate/d7/MigrateSearchPageTest.php
+++ b/core/modules/search/tests/src/Kernel/Migrate/d7/MigrateSearchPageTest.php
@@ -21,7 +21,7 @@ class MigrateSearchPageTest extends MigrateDrupal7TestBase {
   protected static $modules = ['search'];
 
   /**
-   * Asserts various aspects of an SearchPage entity.
+   * Asserts various aspects of a SearchPage entity.
    *
    * @param string $id
    *   The expected search page ID.
diff --git a/core/modules/serialization/src/EntityResolver/ChainEntityResolverInterface.php b/core/modules/serialization/src/EntityResolver/ChainEntityResolverInterface.php
index dc3e211574da..c9191f2087a5 100644
--- a/core/modules/serialization/src/EntityResolver/ChainEntityResolverInterface.php
+++ b/core/modules/serialization/src/EntityResolver/ChainEntityResolverInterface.php
@@ -3,7 +3,7 @@
 namespace Drupal\serialization\EntityResolver;
 
 /**
- * An interface for delegating a entity resolution to a chain of resolvers.
+ * An interface for delegating an entity resolution to a chain of resolvers.
  */
 interface ChainEntityResolverInterface extends EntityResolverInterface {
 
diff --git a/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php b/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
index 67b1a433d62f..0bfed445c9fd 100644
--- a/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
+++ b/core/modules/serialization/src/Normalizer/EntityReferenceFieldItemNormalizer.php
@@ -27,7 +27,7 @@ class EntityReferenceFieldItemNormalizer extends FieldItemNormalizer {
   protected $entityRepository;
 
   /**
-   * Constructs a EntityReferenceFieldItemNormalizer object.
+   * Constructs an EntityReferenceFieldItemNormalizer object.
    *
    * @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
    *   The entity repository.
diff --git a/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php b/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php
index c5ade5da8bbe..bfbe7c4c299e 100644
--- a/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php
+++ b/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php
@@ -135,7 +135,7 @@ protected function doTestBlocks($theme, $block_plugin, $new_page_text, $element_
 
     $this->enableEditMode();
 
-    // Open block form by clicking a element inside the block.
+    // Open block form by clicking an element inside the block.
     // This confirms that default action for links and form elements is
     // suppressed.
     $this->openBlockForm("$block_selector {$element_selector}", $block_selector);
diff --git a/core/modules/statistics/src/Plugin/Block/StatisticsPopularBlock.php b/core/modules/statistics/src/Plugin/Block/StatisticsPopularBlock.php
index efdb72a6cd8e..fbd5b1c76dd2 100644
--- a/core/modules/statistics/src/Plugin/Block/StatisticsPopularBlock.php
+++ b/core/modules/statistics/src/Plugin/Block/StatisticsPopularBlock.php
@@ -50,7 +50,7 @@ class StatisticsPopularBlock extends BlockBase implements ContainerFactoryPlugin
   protected $renderer;
 
   /**
-   * Constructs an StatisticsPopularBlock object.
+   * Constructs a StatisticsPopularBlock object.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/statistics/src/StatisticsStorageInterface.php b/core/modules/statistics/src/StatisticsStorageInterface.php
index ad6d6d5dceb0..9109929ff144 100644
--- a/core/modules/statistics/src/StatisticsStorageInterface.php
+++ b/core/modules/statistics/src/StatisticsStorageInterface.php
@@ -11,7 +11,7 @@
 interface StatisticsStorageInterface {
 
   /**
-   * Count a entity view.
+   * Counts an entity view.
    *
    * @param int $id
    *   The ID of the entity to count.
@@ -47,7 +47,7 @@ public function fetchViews($ids);
   public function fetchView($id);
 
   /**
-   * Returns the number of times a entity has been viewed.
+   * Returns the number of times an entity has been viewed.
    *
    * @param string $order
    *   The counter name to order by:
diff --git a/core/modules/system/src/ActionConfigEntityInterface.php b/core/modules/system/src/ActionConfigEntityInterface.php
index 32b6eef6ecdd..b6a5bbda0c2d 100644
--- a/core/modules/system/src/ActionConfigEntityInterface.php
+++ b/core/modules/system/src/ActionConfigEntityInterface.php
@@ -5,7 +5,7 @@
 use Drupal\Core\Config\Entity\ConfigEntityInterface;
 
 /**
- * Provides an interface defining a action entity.
+ * Provides an interface defining an action entity.
  */
 interface ActionConfigEntityInterface extends ConfigEntityInterface {
 
diff --git a/core/modules/system/src/Controller/EntityAutocompleteController.php b/core/modules/system/src/Controller/EntityAutocompleteController.php
index 5921642a3429..1bffd291a477 100644
--- a/core/modules/system/src/Controller/EntityAutocompleteController.php
+++ b/core/modules/system/src/Controller/EntityAutocompleteController.php
@@ -33,7 +33,7 @@ class EntityAutocompleteController extends ControllerBase {
   protected $keyValue;
 
   /**
-   * Constructs a EntityAutocompleteController object.
+   * Constructs an EntityAutocompleteController object.
    *
    * @param \Drupal\Core\Entity\EntityAutocompleteMatcherInterface $matcher
    *   The autocomplete matcher for entity references.
diff --git a/core/modules/system/src/EventSubscriber/AdminRouteSubscriber.php b/core/modules/system/src/EventSubscriber/AdminRouteSubscriber.php
index a6a19d6d5a6c..06a6ba4890e4 100644
--- a/core/modules/system/src/EventSubscriber/AdminRouteSubscriber.php
+++ b/core/modules/system/src/EventSubscriber/AdminRouteSubscriber.php
@@ -39,7 +39,7 @@ public static function getSubscribedEvents() {
   }
 
   /**
-   * Determines whether the given route is a HTML route.
+   * Determines whether the given route is an HTML route.
    *
    * @param \Symfony\Component\Routing\Route $route
    *   The route to analyze.
diff --git a/core/modules/system/src/Form/DateFormatDeleteForm.php b/core/modules/system/src/Form/DateFormatDeleteForm.php
index 155803282500..382cd44aa9aa 100644
--- a/core/modules/system/src/Form/DateFormatDeleteForm.php
+++ b/core/modules/system/src/Form/DateFormatDeleteForm.php
@@ -21,7 +21,7 @@ class DateFormatDeleteForm extends EntityDeleteForm {
   protected $dateFormatter;
 
   /**
-   * Constructs an DateFormatDeleteForm object.
+   * Constructs a DateFormatDeleteForm object.
    *
    * @param \Drupal\Core\Datetime\DateFormatterInterface $date_formatter
    *   The date formatter service.
diff --git a/core/modules/system/src/Form/ImageToolkitForm.php b/core/modules/system/src/Form/ImageToolkitForm.php
index 8684c773123f..f11f695a42af 100644
--- a/core/modules/system/src/Form/ImageToolkitForm.php
+++ b/core/modules/system/src/Form/ImageToolkitForm.php
@@ -23,7 +23,7 @@ class ImageToolkitForm extends ConfigFormBase {
   protected $availableToolkits = [];
 
   /**
-   * Constructs a ImageToolkitForm object.
+   * Constructs an ImageToolkitForm object.
    *
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The factory for configuration objects.
diff --git a/core/modules/system/templates/admin-page.html.twig b/core/modules/system/templates/admin-page.html.twig
index a2483f189d2a..0faa5294b8cb 100644
--- a/core/modules/system/templates/admin-page.html.twig
+++ b/core/modules/system/templates/admin-page.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables:
  * - system_compact_link: Themed link to toggle compact view.
- * - containers: An list of administrative blocks keyed by position: left or
+ * - containers: A list of administrative blocks keyed by position: left or
  *   right. Contains:
  *   - blocks: A list of blocks within a container.
  *
diff --git a/core/modules/system/tests/modules/early_rendering_controller_test/src/EarlyRenderingTestController.php b/core/modules/system/tests/modules/early_rendering_controller_test/src/EarlyRenderingTestController.php
index 2a6b83965ec9..a6aeb389e679 100644
--- a/core/modules/system/tests/modules/early_rendering_controller_test/src/EarlyRenderingTestController.php
+++ b/core/modules/system/tests/modules/early_rendering_controller_test/src/EarlyRenderingTestController.php
@@ -29,7 +29,7 @@ class EarlyRenderingTestController extends ControllerBase {
   protected $renderer;
 
   /**
-   * Constructs a EarlyRenderingTestController.
+   * Constructs an EarlyRenderingTestController.
    *
    * @param \Drupal\Core\Render\RendererInterface $renderer
    */
diff --git a/core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestMapFieldResourceTestBase.php b/core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestMapFieldResourceTestBase.php
index cea0a49e7a1b..6514ae517260 100644
--- a/core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestMapFieldResourceTestBase.php
+++ b/core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestMapFieldResourceTestBase.php
@@ -29,7 +29,7 @@ abstract class EntityTestMapFieldResourceTestBase extends EntityResourceTestBase
   protected $entity;
 
   /**
-   * The complex nested value to assign to a @FieldType=map field.
+   * The complex nested value to assign to a map field.
    *
    * @var array
    */
diff --git a/core/modules/system/tests/modules/path_encoded_test/src/Controller/PathEncodedTestController.php b/core/modules/system/tests/modules/path_encoded_test/src/Controller/PathEncodedTestController.php
index 027c24f73fe5..18026c44dd52 100644
--- a/core/modules/system/tests/modules/path_encoded_test/src/Controller/PathEncodedTestController.php
+++ b/core/modules/system/tests/modules/path_encoded_test/src/Controller/PathEncodedTestController.php
@@ -10,7 +10,7 @@
 class PathEncodedTestController {
 
   /**
-   * Returns a HTML simple response.
+   * Returns an HTML simple response.
    *
    * @return \Symfony\Component\HttpFoundation\Response
    */
diff --git a/core/modules/system/tests/src/Functional/Form/ElementTest.php b/core/modules/system/tests/src/Functional/Form/ElementTest.php
index 75b6c8a6f725..08195fd66721 100644
--- a/core/modules/system/tests/src/Functional/Form/ElementTest.php
+++ b/core/modules/system/tests/src/Functional/Form/ElementTest.php
@@ -198,7 +198,7 @@ public function testRequiredFieldsetsAndDetails() {
   }
 
   /**
-   * Tests a form with a autocomplete setting..
+   * Tests a form with an autocomplete setting..
    */
   public function testFormAutocomplete() {
     $this->drupalGet('form-test/autocomplete');
diff --git a/core/modules/system/tests/src/Functional/System/HtaccessTest.php b/core/modules/system/tests/src/Functional/System/HtaccessTest.php
index 80a680971b40..0652713039d8 100644
--- a/core/modules/system/tests/src/Functional/System/HtaccessTest.php
+++ b/core/modules/system/tests/src/Functional/System/HtaccessTest.php
@@ -113,7 +113,7 @@ public function testFileAccess() {
     // Test that it is possible to have path aliases containing .php.
     $type = $this->drupalCreateContentType();
 
-    // Create an node aliased to test.php.
+    // Create a node aliased to test.php.
     $node = $this->drupalCreateNode([
       'title' => 'This is a node',
       'type' => $type->id(),
diff --git a/core/modules/system/tests/src/Kernel/DateFormatAccessControlHandlerTest.php b/core/modules/system/tests/src/Kernel/DateFormatAccessControlHandlerTest.php
index d892aaf62a5e..2ba491e40a80 100644
--- a/core/modules/system/tests/src/Kernel/DateFormatAccessControlHandlerTest.php
+++ b/core/modules/system/tests/src/Kernel/DateFormatAccessControlHandlerTest.php
@@ -53,7 +53,7 @@ protected function setUp(): void {
    * @dataProvider testAccessProvider
    */
   public function testAccess($which_user, $which_entity, $view_label_access_result, $view_access_result, $update_access_result, $delete_access_result, $create_access_result) {
-    // We must always create user 1, so that a "normal" user has a ID >1.
+    // We must always create user 1, so that a "normal" user has an ID >1.
     $root_user = $this->drupalCreateUser();
 
     if ($which_user === 'user1') {
diff --git a/core/modules/system/tests/src/Kernel/Entity/ConfigEntityImportTest.php b/core/modules/system/tests/src/Kernel/Entity/ConfigEntityImportTest.php
index bd3e967976b6..dd0a802a514a 100644
--- a/core/modules/system/tests/src/Kernel/Entity/ConfigEntityImportTest.php
+++ b/core/modules/system/tests/src/Kernel/Entity/ConfigEntityImportTest.php
@@ -54,7 +54,7 @@ public function testConfigUpdateImport() {
   }
 
   /**
-   * Tests updating a action during import.
+   * Tests updating an action during import.
    */
   protected function doActionUpdate() {
     // Create a test action with a known label.
diff --git a/core/modules/system/tests/src/Kernel/MenuAccessControlHandlerTest.php b/core/modules/system/tests/src/Kernel/MenuAccessControlHandlerTest.php
index c27bbc39d90c..548c20040266 100644
--- a/core/modules/system/tests/src/Kernel/MenuAccessControlHandlerTest.php
+++ b/core/modules/system/tests/src/Kernel/MenuAccessControlHandlerTest.php
@@ -53,7 +53,7 @@ protected function setUp(): void {
    * @dataProvider testAccessProvider
    */
   public function testAccess($which_user, $which_entity, $view_label_access_result, $view_access_result, $update_access_result, $delete_access_result, $create_access_result) {
-    // We must always create user 1, so that a "normal" user has a ID >1.
+    // We must always create user 1, so that a "normal" user has an ID >1.
     $root_user = $this->drupalCreateUser();
 
     if ($which_user === 'user1') {
diff --git a/core/modules/taxonomy/taxonomy.es6.js b/core/modules/taxonomy/taxonomy.es6.js
index c09efbee8e3b..7b9d9298e258 100644
--- a/core/modules/taxonomy/taxonomy.es6.js
+++ b/core/modules/taxonomy/taxonomy.es6.js
@@ -13,7 +13,7 @@
    * @type {Drupal~behavior}
    *
    * @prop {Drupal~behaviorAttach} attach
-   *   Attaches the drag behavior to a applicable table element.
+   *   Attaches the drag behavior to an applicable table element.
    */
   Drupal.behaviors.termDrag = {
     attach(context, settings) {
diff --git a/core/modules/taxonomy/tests/src/Functional/Views/TaxonomyTermViewTest.php b/core/modules/taxonomy/tests/src/Functional/Views/TaxonomyTermViewTest.php
index ed0f5d263eac..bbb2c517386e 100644
--- a/core/modules/taxonomy/tests/src/Functional/Views/TaxonomyTermViewTest.php
+++ b/core/modules/taxonomy/tests/src/Functional/Views/TaxonomyTermViewTest.php
@@ -29,7 +29,7 @@ class TaxonomyTermViewTest extends TaxonomyTestBase {
   protected $defaultTheme = 'stark';
 
   /**
-   * An user with permissions to administer taxonomy.
+   * A user with permissions to administer taxonomy.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php b/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php
index ad946381587b..6ef93f92549a 100644
--- a/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php
+++ b/core/modules/taxonomy/tests/src/Kernel/Views/ArgumentValidatorTermTest.php
@@ -71,7 +71,7 @@ public function testArgumentValidatorTerm() {
       $view->argument['tid']->argument_validated = NULL;
     }
 
-    // Pass in a invalid term.
+    // Pass in an invalid term.
     $this->assertFalse($view->argument['tid']->setArgument(rand(1000, 10000)));
     $this->assertEmpty($view->argument['tid']->getTitle());
     $view->argument['tid']->validated_title = NULL;
diff --git a/core/modules/toolbar/tests/src/Functional/ToolbarAdminMenuTest.php b/core/modules/toolbar/tests/src/Functional/ToolbarAdminMenuTest.php
index dd5ecd3b29fd..4aab63aae850 100644
--- a/core/modules/toolbar/tests/src/Functional/ToolbarAdminMenuTest.php
+++ b/core/modules/toolbar/tests/src/Functional/ToolbarAdminMenuTest.php
@@ -141,7 +141,7 @@ public function testModuleStatusChangeSubtreesHashCacheClear() {
    * Tests toolbar cache tags implementation.
    */
   public function testMenuLinkUpdateSubtreesHashCacheClear() {
-    // The ID of a (any) admin menu link.
+    // The ID of (any) admin menu link.
     $admin_menu_link_id = 'system.admin_config_development';
 
     // Disable the link.
diff --git a/core/modules/tour/js/tour.es6.js b/core/modules/tour/js/tour.es6.js
index 52fe8d7dae65..27ad054a54b4 100644
--- a/core/modules/tour/js/tour.es6.js
+++ b/core/modules/tour/js/tour.es6.js
@@ -188,7 +188,7 @@
        * Gets the tour.
        *
        * @return {jQuery}
-       *   A jQuery element pointing to a `<ol>` containing tour items.
+       *   A jQuery element pointing to an `<ol>` containing tour items.
        */
       _getTour() {
         return this.model.get('tour');
@@ -216,7 +216,7 @@
        * http://example.com/foo?tips=bar
        *
        * @param {jQuery} $tour
-       *   A jQuery element pointing to a `<ol>` containing tour items.
+       *   A jQuery element pointing to an `<ol>` containing tour items.
        * @param {jQuery} $document
        *   A jQuery element pointing to the document within which the elements
        *   should be sought.
diff --git a/core/modules/tour/src/Plugin/tour/tip/TipPluginText.php b/core/modules/tour/src/Plugin/tour/tip/TipPluginText.php
index b809a64ee418..7724c676472a 100644
--- a/core/modules/tour/src/Plugin/tour/tip/TipPluginText.php
+++ b/core/modules/tour/src/Plugin/tour/tip/TipPluginText.php
@@ -71,7 +71,7 @@ public static function create(ContainerInterface $container, array $configuratio
   }
 
   /**
-   * Returns a ID that is guaranteed uniqueness.
+   * Returns an ID that is guaranteed uniqueness.
    *
    * @return string
    *   A unique id to be used to generate aria attributes.
diff --git a/core/modules/tour/tests/tour_test/src/Plugin/tour/tip/TipPluginImage.php b/core/modules/tour/tests/tour_test/src/Plugin/tour/tip/TipPluginImage.php
index 0e1d80f13c69..68f15bb7f1ef 100644
--- a/core/modules/tour/tests/tour_test/src/Plugin/tour/tip/TipPluginImage.php
+++ b/core/modules/tour/tests/tour_test/src/Plugin/tour/tip/TipPluginImage.php
@@ -27,7 +27,7 @@ class TipPluginImage extends TipPluginBase {
    * The alt text which is used for the image in this Tip.
    *
    * @var string
-   *   A alt text used for the image.
+   *   An alt text used for the image.
    */
   protected $alt;
 
diff --git a/core/modules/update/src/Access/UpdateManagerAccessCheck.php b/core/modules/update/src/Access/UpdateManagerAccessCheck.php
index 12e34cd349fc..64fdeb01676e 100644
--- a/core/modules/update/src/Access/UpdateManagerAccessCheck.php
+++ b/core/modules/update/src/Access/UpdateManagerAccessCheck.php
@@ -19,7 +19,7 @@ class UpdateManagerAccessCheck implements AccessInterface {
   protected $settings;
 
   /**
-   * Constructs a UpdateManagerAccessCheck object.
+   * Constructs an UpdateManagerAccessCheck object.
    *
    * @param \Drupal\Core\Site\Settings $settings
    *   The read-only settings container.
diff --git a/core/modules/update/src/UpdateFetcher.php b/core/modules/update/src/UpdateFetcher.php
index 015b354a2c8d..cd04cee102c5 100644
--- a/core/modules/update/src/UpdateFetcher.php
+++ b/core/modules/update/src/UpdateFetcher.php
@@ -49,7 +49,7 @@ class UpdateFetcher implements UpdateFetcherInterface {
   protected $withHttpFallback;
 
   /**
-   * Constructs a UpdateFetcher.
+   * Constructs an UpdateFetcher.
    *
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The config factory.
diff --git a/core/modules/update/src/UpdateManager.php b/core/modules/update/src/UpdateManager.php
index 056dce6a6d3d..8c41ee1b5bee 100644
--- a/core/modules/update/src/UpdateManager.php
+++ b/core/modules/update/src/UpdateManager.php
@@ -76,7 +76,7 @@ class UpdateManager implements UpdateManagerInterface {
   protected $moduleExtensionList;
 
   /**
-   * Constructs a UpdateManager.
+   * Constructs an UpdateManager.
    *
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The config factory.
diff --git a/core/modules/update/src/UpdateProcessor.php b/core/modules/update/src/UpdateProcessor.php
index 8d42dd53622a..a05a372e17be 100644
--- a/core/modules/update/src/UpdateProcessor.php
+++ b/core/modules/update/src/UpdateProcessor.php
@@ -78,7 +78,7 @@ class UpdateProcessor implements UpdateProcessorInterface {
   protected $privateKey;
 
   /**
-   * Constructs a UpdateProcessor.
+   * Constructs an UpdateProcessor.
    *
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The config factory.
diff --git a/core/modules/update/tests/src/Functional/UpdateCoreTest.php b/core/modules/update/tests/src/Functional/UpdateCoreTest.php
index c5236493a237..c52c85348467 100644
--- a/core/modules/update/tests/src/Functional/UpdateCoreTest.php
+++ b/core/modules/update/tests/src/Functional/UpdateCoreTest.php
@@ -787,7 +787,7 @@ public function testFetchTasks() {
     $this->assertEqual($queue->numberOfItems(), 1, 'Queue contains one item');
     update_create_fetch_task($projectb);
     $this->assertEqual($queue->numberOfItems(), 2, 'Queue contains two items');
-    // Try to add project a again.
+    // Try to add a project again.
     update_create_fetch_task($projecta);
     $this->assertEqual($queue->numberOfItems(), 2, 'Queue still contains two items');
 
diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index d6107962d606..ec5e65a0e550 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -8,7 +8,7 @@
  * contributed modules and themes. It warns site administrators if newer
  * releases are available via the system status report (admin/reports/status),
  * the module and theme pages, and optionally via email. It also provides the
- * ability to install contributed modules and themes via an user interface.
+ * ability to install contributed modules and themes via a user interface.
  */
 
 use Drupal\Core\File\Exception\FileException;
diff --git a/core/modules/user/src/Plugin/migrate/destination/EntityUser.php b/core/modules/user/src/Plugin/migrate/destination/EntityUser.php
index 5ee10f7685a8..e9d732a6799e 100644
--- a/core/modules/user/src/Plugin/migrate/destination/EntityUser.php
+++ b/core/modules/user/src/Plugin/migrate/destination/EntityUser.php
@@ -75,7 +75,7 @@ class EntityUser extends EntityContentBase {
   protected $password;
 
   /**
-   * Builds an user entity destination.
+   * Builds a user entity destination.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/user/src/Plugin/migrate/destination/UserData.php b/core/modules/user/src/Plugin/migrate/destination/UserData.php
index e1775ad42a78..b3d46558a538 100644
--- a/core/modules/user/src/Plugin/migrate/destination/UserData.php
+++ b/core/modules/user/src/Plugin/migrate/destination/UserData.php
@@ -22,7 +22,7 @@ class UserData extends DestinationBase implements ContainerFactoryPluginInterfac
   protected $userData;
 
   /**
-   * Builds an user data entity destination.
+   * Builds a user data entity destination.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/user/src/Plugin/views/argument_validator/UserName.php b/core/modules/user/src/Plugin/views/argument_validator/UserName.php
index 6b7e498e2d55..19ddc7c57709 100644
--- a/core/modules/user/src/Plugin/views/argument_validator/UserName.php
+++ b/core/modules/user/src/Plugin/views/argument_validator/UserName.php
@@ -68,7 +68,7 @@ public function validateArgument($argument) {
    * {@inheritdoc}
    */
   public function processSummaryArguments(&$args) {
-    // If the validation says the input is an username, we should reverse the
+    // If the validation says the input is a username, we should reverse the
     // argument so it works for example for generation summary urls.
     $uids_arg_keys = array_flip($args);
 
diff --git a/core/modules/user/tests/src/Functional/Views/BulkFormTest.php b/core/modules/user/tests/src/Functional/Views/BulkFormTest.php
index 156043edf8ff..9edd0a84e3ca 100644
--- a/core/modules/user/tests/src/Functional/Views/BulkFormTest.php
+++ b/core/modules/user/tests/src/Functional/Views/BulkFormTest.php
@@ -41,7 +41,7 @@ public function testBulkForm() {
     $this->drupalLogin($this->drupalCreateUser(['administer permissions']));
     $user_storage = $this->container->get('entity_type.manager')->getStorage('user');
 
-    // Create an user which actually can change users.
+    // Create a user which actually can change users.
     $this->drupalLogin($this->drupalCreateUser(['administer users']));
     $this->drupalGet('test-user-bulk-form');
     $result = $this->cssSelect('#edit-action option');
diff --git a/core/modules/user/tests/src/Kernel/UserValidationTest.php b/core/modules/user/tests/src/Kernel/UserValidationTest.php
index 66925613a1df..8fc39a196a55 100644
--- a/core/modules/user/tests/src/Kernel/UserValidationTest.php
+++ b/core/modules/user/tests/src/Kernel/UserValidationTest.php
@@ -208,7 +208,7 @@ protected function assertLengthViolation(EntityInterface $entity, $field_name, $
   }
 
   /**
-   * Verifies that a AllowedValues violation exists for the given field.
+   * Verifies that an AllowedValues violation exists for the given field.
    *
    * @param \Drupal\Core\Entity\EntityInterface $entity
    *   The entity object to validate.
diff --git a/core/modules/user/tests/src/Kernel/Views/HandlerArgumentUserUidTest.php b/core/modules/user/tests/src/Kernel/Views/HandlerArgumentUserUidTest.php
index 2b5df96e9e32..0e01571f9fc1 100644
--- a/core/modules/user/tests/src/Kernel/Views/HandlerArgumentUserUidTest.php
+++ b/core/modules/user/tests/src/Kernel/Views/HandlerArgumentUserUidTest.php
@@ -35,7 +35,7 @@ class HandlerArgumentUserUidTest extends KernelTestBase {
   public static $testViews = ['test_user_uid_argument'];
 
   /**
-   * Tests the generated title of an user: uid argument.
+   * Tests the generated title of a user: uid argument.
    */
   public function testArgumentTitle() {
     $this->installSchema('system', ['sequences']);
diff --git a/core/modules/views/src/Form/ViewsExposedForm.php b/core/modules/views/src/Form/ViewsExposedForm.php
index 368f4da6b9b6..a6ea8866a46c 100644
--- a/core/modules/views/src/Form/ViewsExposedForm.php
+++ b/core/modules/views/src/Form/ViewsExposedForm.php
@@ -101,7 +101,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
           // Grouped exposed filters have their own forms.
           // Instead of render the standard exposed form, a new Select or
           // Radio form field is rendered with the available groups.
-          // When an user chooses an option the selected value is split
+          // When a user chooses an option the selected value is split
           // into the operator and value that the item represents.
           if ($handler->isAGroup()) {
             $handler->groupForm($form, $form_state);
diff --git a/core/modules/views/src/Plugin/Block/ViewsBlockBase.php b/core/modules/views/src/Plugin/Block/ViewsBlockBase.php
index 3b18ce94fd1f..ac041a2e04a0 100644
--- a/core/modules/views/src/Plugin/Block/ViewsBlockBase.php
+++ b/core/modules/views/src/Plugin/Block/ViewsBlockBase.php
@@ -193,7 +193,7 @@ public function blockSubmit($form, FormStateInterface $form_state) {
    * Converts Views block content to a renderable array with contextual links.
    *
    * @param string|array $output
-   *   An string|array representing the block. This will be modified to be a
+   *   A string|array representing the block. This will be modified to be a
    *   renderable array, containing the optional '#contextual_links' property (if
    *   there are any contextual links associated with the block).
    * @param string $block_type
diff --git a/core/modules/views/src/Plugin/Derivative/ViewsEntityArgumentValidator.php b/core/modules/views/src/Plugin/Derivative/ViewsEntityArgumentValidator.php
index 9c2baeea820d..8f059602fb21 100644
--- a/core/modules/views/src/Plugin/Derivative/ViewsEntityArgumentValidator.php
+++ b/core/modules/views/src/Plugin/Derivative/ViewsEntityArgumentValidator.php
@@ -41,7 +41,7 @@ class ViewsEntityArgumentValidator extends DeriverBase implements ContainerDeriv
   protected $derivatives = [];
 
   /**
-   * Constructs an ViewsEntityArgumentValidator object.
+   * Constructs a ViewsEntityArgumentValidator object.
    *
    * @param string $base_plugin_id
    *   The base plugin ID.
diff --git a/core/modules/views/src/Plugin/views/argument_validator/Entity.php b/core/modules/views/src/Plugin/views/argument_validator/Entity.php
index eca9155c29eb..d41de8482786 100644
--- a/core/modules/views/src/Plugin/views/argument_validator/Entity.php
+++ b/core/modules/views/src/Plugin/views/argument_validator/Entity.php
@@ -11,7 +11,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Defines a argument validator plugin for each entity type.
+ * Defines an argument validator plugin for each entity type.
  *
  * @ViewsArgumentValidator(
  *   id = "entity",
@@ -44,7 +44,7 @@ class Entity extends ArgumentValidatorPluginBase {
   protected $multipleCapable = TRUE;
 
   /**
-   * Constructs an \Drupal\views\Plugin\views\argument_validator\Entity object.
+   * Constructs a \Drupal\views\Plugin\views\argument_validator\Entity object.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/views/src/Plugin/views/display/EntityReference.php b/core/modules/views/src/Plugin/views/display/EntityReference.php
index 1cfec9391365..47c372bc37d0 100644
--- a/core/modules/views/src/Plugin/views/display/EntityReference.php
+++ b/core/modules/views/src/Plugin/views/display/EntityReference.php
@@ -9,7 +9,7 @@
  * The plugin that handles an EntityReference display.
  *
  * "entity_reference_display" is a custom property, used with
- * \Drupal\views\Views::getApplicableViews() to retrieve all views with a
+ * \Drupal\views\Views::getApplicableViews() to retrieve all views with an
  * 'Entity Reference' display.
  *
  * @ingroup views_display_plugins
diff --git a/core/modules/views/src/Plugin/views/display/PathPluginBase.php b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
index cf280fb82524..c23100382bd2 100644
--- a/core/modules/views/src/Plugin/views/display/PathPluginBase.php
+++ b/core/modules/views/src/Plugin/views/display/PathPluginBase.php
@@ -242,7 +242,7 @@ protected function overrideApplies($view_path, Route $view_route, Route $route)
   }
 
   /**
-   * Determines whether a override for the path and method should happen.
+   * Determines whether an override for the path and method should happen.
    *
    * @param string $view_path
    *   The path of the view.
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 d07a303058b9..cfb593d6e663 100644
--- a/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
+++ b/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginBase.php
@@ -347,7 +347,7 @@ public function getCacheMaxAge() {
   public function getCacheContexts() {
     $contexts = [];
     if ($this->options['expose_sort_order']) {
-      // The sort order query arg is just important in case there is a exposed
+      // The sort order query arg is just important in case there is an exposed
       // sort order.
       $has_exposed_sort_handler = FALSE;
       /** @var \Drupal\views\Plugin\views\sort\SortPluginBase $sort_handler */
diff --git a/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginInterface.php b/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginInterface.php
index 9759ae50a36d..b06b83193197 100644
--- a/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginInterface.php
+++ b/core/modules/views/src/Plugin/views/exposed_form/ExposedFormPluginInterface.php
@@ -15,7 +15,7 @@
  * validation, and submission of exposed forms, and may add additional form
  * elements.
  *
- * To define a Exposed Form Plugin in a module you need to:
+ * To define an Exposed Form Plugin in a module you need to:
  * - Implement
  *   \Drupal\views\Plugin\views\exposed_form\ExposedFormPluginInterface.
  * - Usually you will want to extend the
diff --git a/core/modules/views/src/Plugin/views/field/BulkForm.php b/core/modules/views/src/Plugin/views/field/BulkForm.php
index a94bc5fad4df..04c58e46acf0 100644
--- a/core/modules/views/src/Plugin/views/field/BulkForm.php
+++ b/core/modules/views/src/Plugin/views/field/BulkForm.php
@@ -20,7 +20,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Defines a actions-based bulk operation form element.
+ * Defines an actions-based bulk operation form element.
  *
  * @ViewsField("bulk_form")
  */
diff --git a/core/modules/views/src/Plugin/views/field/EntityLabel.php b/core/modules/views/src/Plugin/views/field/EntityLabel.php
index 9d7dbfe6f980..10c708b64c4f 100644
--- a/core/modules/views/src/Plugin/views/field/EntityLabel.php
+++ b/core/modules/views/src/Plugin/views/field/EntityLabel.php
@@ -33,7 +33,7 @@ class EntityLabel extends FieldPluginBase {
   protected $entityTypeManager;
 
   /**
-   * Constructs a EntityLabel object.
+   * Constructs an EntityLabel object.
    *
    * @param array $configuration
    *   A configuration array containing information about the plugin instance.
diff --git a/core/modules/views/src/Plugin/views/field/LinkBase.php b/core/modules/views/src/Plugin/views/field/LinkBase.php
index 6e2347378553..dfbf50c41bc9 100644
--- a/core/modules/views/src/Plugin/views/field/LinkBase.php
+++ b/core/modules/views/src/Plugin/views/field/LinkBase.php
@@ -195,7 +195,7 @@ protected function checkUrlAccess(ResultRow $row) {
   abstract protected function getUrlInfo(ResultRow $row);
 
   /**
-   * Prepares the link to view a entity.
+   * Prepares the link to view an entity.
    *
    * @param \Drupal\views\ResultRow $row
    *   A view result row.
diff --git a/core/modules/views/src/Plugin/views/field/Links.php b/core/modules/views/src/Plugin/views/field/Links.php
index 4e731a9af574..899d082504ca 100644
--- a/core/modules/views/src/Plugin/views/field/Links.php
+++ b/core/modules/views/src/Plugin/views/field/Links.php
@@ -7,7 +7,7 @@
 use Drupal\Core\Url as UrlObject;
 
 /**
- * A abstract handler which provides a collection of links.
+ * An abstract handler which provides a collection of links.
  *
  * @ingroup views_field_handlers
  */
diff --git a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
index 03b25b43d8a8..6c48cb3283c7 100644
--- a/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
+++ b/core/modules/views/src/Plugin/views/filter/FilterPluginBase.php
@@ -77,7 +77,7 @@ abstract class FilterPluginBase extends HandlerBase implements CacheableDependen
 
   /**
    * @var bool
-   * Disable the possibility to allow a exposed input to be optional.
+   * Disable the possibility to allow an exposed input to be optional.
    */
   public $always_required = FALSE;
 
@@ -739,7 +739,7 @@ protected function buildGroupValidate($form, FormStateInterface $form_state) {
   /**
    * Validates a filter identifier.
    *
-   * Sets the form error if $form_state is passed or a error string if
+   * Sets the form error if $form_state is passed or an error string if
    * $form_state is not passed.
    *
    * @param string $identifier
diff --git a/core/modules/views/src/Plugin/views/join/JoinPluginInterface.php b/core/modules/views/src/Plugin/views/join/JoinPluginInterface.php
index f3fca7df219f..275224160083 100644
--- a/core/modules/views/src/Plugin/views/join/JoinPluginInterface.php
+++ b/core/modules/views/src/Plugin/views/join/JoinPluginInterface.php
@@ -15,7 +15,7 @@ interface JoinPluginInterface {
    * When possible, try to use table alias instead of table names.
    *
    * @param $select_query
-   *   An select query object.
+   *   A select query object.
    * @param $table
    *   The base table to join.
    * @param \Drupal\views\Plugin\views\query\QueryPluginBase $view_query
diff --git a/core/modules/views/src/Plugin/views/query/SqliteDateSql.php b/core/modules/views/src/Plugin/views/query/SqliteDateSql.php
index 2275d4c6c3ac..d6006ac71f97 100644
--- a/core/modules/views/src/Plugin/views/query/SqliteDateSql.php
+++ b/core/modules/views/src/Plugin/views/query/SqliteDateSql.php
@@ -83,7 +83,7 @@ public function getDateField($field, $string_date) {
   public function getDateFormat($field, $format) {
     $format = strtr($format, static::$replace);
 
-    // SQLite does not have a ISO week substitution string, so it needs special
+    // SQLite does not have an ISO week substitution string, so it needs special
     // handling.
     // @see http://wikipedia.org/wiki/ISO_week_date#Calculation
     // @see http://stackoverflow.com/a/15511864/1499564
diff --git a/core/modules/views/src/Plugin/views/style/StylePluginBase.php b/core/modules/views/src/Plugin/views/style/StylePluginBase.php
index f031a32f6d67..c78690f647b9 100644
--- a/core/modules/views/src/Plugin/views/style/StylePluginBase.php
+++ b/core/modules/views/src/Plugin/views/style/StylePluginBase.php
@@ -246,7 +246,8 @@ public function tokenizeValue($value, $row_index) {
   }
 
   /**
-   * Should the output of the style plugin be rendered even if it's a empty view.
+   * Should the output of the style plugin be rendered even if it's an empty
+   * view.
    */
   public function evenEmpty() {
     return !empty($this->definition['even empty']);
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index ddfe15e09df1..94720430dacc 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -2210,7 +2210,7 @@ public function addHandler($display_id, $type, $table, $field, $options = [], $i
   }
 
   /**
-   * Generates a unique ID for an handler instance.
+   * Generates a unique ID for a handler instance.
    *
    * These handler instances are typically fields, filters, sort criteria, or
    * arguments.
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php
index ac068e17af41..3cc81e279d57 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_default/ArgumentDefaultTest.php
@@ -5,7 +5,7 @@
 use Drupal\views\Plugin\views\argument_default\ArgumentDefaultPluginBase;
 
 /**
- * Defines a argument default test plugin.
+ * Defines an argument default test plugin.
  *
  * @ViewsArgumentDefault(
  *   id = "argument_default_test",
diff --git a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_validator/ArgumentValidatorTest.php b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_validator/ArgumentValidatorTest.php
index 7bccb9b3831b..ebffc7af7dca 100644
--- a/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_validator/ArgumentValidatorTest.php
+++ b/core/modules/views/tests/modules/views_test_data/src/Plugin/views/argument_validator/ArgumentValidatorTest.php
@@ -5,7 +5,7 @@
 use Drupal\views\Plugin\views\argument_validator\ArgumentValidatorPluginBase;
 
 /**
- * Defines a argument validator test plugin.
+ * Defines an argument validator test plugin.
  *
  * @ViewsArgumentValidator(
  *   id = "argument_validator_test",
diff --git a/core/modules/views/tests/src/Functional/Handler/AreaTest.php b/core/modules/views/tests/src/Functional/Handler/AreaTest.php
index 9138cc7aa5fb..133119a59a31 100644
--- a/core/modules/views/tests/src/Functional/Handler/AreaTest.php
+++ b/core/modules/views/tests/src/Functional/Handler/AreaTest.php
@@ -54,7 +54,7 @@ protected function viewsData() {
   }
 
   /**
-   * Tests the generic UI of a area handler.
+   * Tests the generic UI of an area handler.
    */
   public function testUI() {
     $admin_user = $this->drupalCreateUser([
diff --git a/core/modules/views/tests/src/Functional/Plugin/PagerTest.php b/core/modules/views/tests/src/Functional/Plugin/PagerTest.php
index 3c7b7c933df7..3abe753a7f9c 100644
--- a/core/modules/views/tests/src/Functional/Plugin/PagerTest.php
+++ b/core/modules/views/tests/src/Functional/Plugin/PagerTest.php
@@ -216,7 +216,7 @@ public function testNoLimit() {
     $this->executeView($view);
     $this->assertCount(11, $view->result, 'Make sure that every item is returned in the result');
 
-    // Setup and test a offset.
+    // Setup and test an offset.
     $view = Views::getView('test_pager_none');
     $view->setDisplay();
     $pager = [
@@ -264,7 +264,7 @@ public function testLimit() {
     $this->executeView($view);
     $this->assertCount(5, $view->result, 'Make sure that only a certain count of items is returned');
 
-    // Setup and test a offset.
+    // Setup and test an offset.
     $view = Views::getView('test_pager_some');
     $view->setDisplay();
     $pager = [
@@ -298,7 +298,7 @@ public function testNormalPager() {
     $this->executeView($view);
     $this->assertCount(5, $view->result, 'Make sure that only a certain count of items is returned');
 
-    // Setup and test a offset.
+    // Setup and test an offset.
     $view = Views::getView('test_pager_full');
     $view->setDisplay();
     $pager = [
@@ -321,7 +321,7 @@ public function testNormalPager() {
     // TODO test number of pages.
 
     // Test items per page = 0.
-    // Setup and test a offset.
+    // Setup and test an offset.
     $view = Views::getView('test_pager_full');
     $view->setDisplay();
     $pager = [
diff --git a/core/modules/views/tests/src/Kernel/Handler/ArgumentNullTest.php b/core/modules/views/tests/src/Kernel/Handler/ArgumentNullTest.php
index 1b5683c3c500..29014ddeac19 100644
--- a/core/modules/views/tests/src/Kernel/Handler/ArgumentNullTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/ArgumentNullTest.php
@@ -56,7 +56,7 @@ public function testAreaText() {
     $view->destroy();
     $view->setDisplay();
 
-    // Add a argument, which has null as handler.
+    // Add an argument, which has null as handler.
     $view->displayHandlers->get('default')->overrideOption('arguments', [
       'id' => [
         'id' => 'id',
diff --git a/core/modules/views/tests/src/Kernel/Handler/FieldFieldAccessTestBase.php b/core/modules/views/tests/src/Kernel/Handler/FieldFieldAccessTestBase.php
index 1f9b017bdbb7..0c41f387c919 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FieldFieldAccessTestBase.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FieldFieldAccessTestBase.php
@@ -14,14 +14,14 @@
 abstract class FieldFieldAccessTestBase extends ViewsKernelTestBase {
 
   /**
-   * Stores an user entity with access to fields.
+   * Stores a user entity with access to fields.
    *
    * @var \Drupal\user\UserInterface
    */
   protected $userWithAccess;
 
   /**
-   * Stores an user entity without access to fields.
+   * Stores a user entity without access to fields.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/modules/views/tests/src/Kernel/Handler/FilterInOperatorTest.php b/core/modules/views/tests/src/Kernel/Handler/FilterInOperatorTest.php
index 6e7e084f9c0a..fe30f125d015 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FilterInOperatorTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FilterInOperatorTest.php
@@ -46,7 +46,7 @@ public function testFilterInOperatorSimple() {
     $view = Views::getView('test_view');
     $view->setDisplay();
 
-    // Add a in_operator ordering.
+    // Add an in_operator ordering.
     $view->displayHandlers->get('default')->overrideOption('filters', [
       'age' => [
         'id' => 'age',
@@ -76,7 +76,7 @@ public function testFilterInOperatorSimple() {
     $view->destroy();
     $view->setDisplay();
 
-    // Add a in_operator ordering.
+    // Add an in_operator ordering.
     $view->displayHandlers->get('default')->overrideOption('filters', [
       'age' => [
         'id' => 'age',
diff --git a/core/modules/views/tests/src/Kernel/ModuleTest.php b/core/modules/views/tests/src/Kernel/ModuleTest.php
index e3b132cdcdff..d0c34f3c9850 100644
--- a/core/modules/views/tests/src/Kernel/ModuleTest.php
+++ b/core/modules/views/tests/src/Kernel/ModuleTest.php
@@ -334,7 +334,7 @@ protected function formatViewOptions(array $views = []) {
   }
 
   /**
-   * Ensure that a certain handler is a instance of a certain table/field.
+   * Ensure that a certain handler is an instance of a certain table/field.
    */
   public function assertInstanceHandler($handler, $table, $field, $id) {
     $table_data = $this->container->get('views.views_data')->get($table);
diff --git a/core/modules/views/tests/src/Kernel/Plugin/StyleTableUnitTest.php b/core/modules/views/tests/src/Kernel/Plugin/StyleTableUnitTest.php
index c30780c3fcd8..e4262f27f0c9 100644
--- a/core/modules/views/tests/src/Kernel/Plugin/StyleTableUnitTest.php
+++ b/core/modules/views/tests/src/Kernel/Plugin/StyleTableUnitTest.php
@@ -100,7 +100,7 @@ public function testTable() {
     $this->assertIdentical($style_plugin->active, NULL, 'No sort field was set, when invalid sort order was specified.');
     $view->destroy();
 
-    // Use a existing field, and sort both ascending and descending.
+    // Use an existing field, and sort both ascending and descending.
     foreach (['asc', 'desc'] as $order) {
       $this->prepareView($view);
       $style_plugin = $view->style_plugin;
diff --git a/core/modules/views/tests/src/Kernel/QueryGroupByTest.php b/core/modules/views/tests/src/Kernel/QueryGroupByTest.php
index 83d819f8ea6f..507c40eb5f00 100644
--- a/core/modules/views/tests/src/Kernel/QueryGroupByTest.php
+++ b/core/modules/views/tests/src/Kernel/QueryGroupByTest.php
@@ -71,7 +71,7 @@ public function testAggregateCount() {
 
     $types = [];
     foreach ($view->result as $item) {
-      // num_records is a alias for id.
+      // num_records is an alias for id.
       $types[$item->entity_test_name] = $item->num_records;
     }
 
diff --git a/core/modules/views/tests/src/Kernel/RenderCacheIntegrationTest.php b/core/modules/views/tests/src/Kernel/RenderCacheIntegrationTest.php
index 838649599333..e019414a9b43 100644
--- a/core/modules/views/tests/src/Kernel/RenderCacheIntegrationTest.php
+++ b/core/modules/views/tests/src/Kernel/RenderCacheIntegrationTest.php
@@ -185,7 +185,7 @@ protected function assertCacheTagsForFieldBasedView($do_assert_views_caches) {
   }
 
   /**
-   * Tests a entity-based view's cache tags when using the "none" cache plugin.
+   * Tests an entity-based view's cache tags when using the "none" cache plugin.
    */
   public function testEntityBasedViewCacheTagsWithCachePluginNone() {
     $view = Views::getview('entity_test_row');
@@ -198,7 +198,7 @@ public function testEntityBasedViewCacheTagsWithCachePluginNone() {
   }
 
   /**
-   * Tests a entity-based view's cache tags when using the "tag" cache plugin.
+   * Tests an entity-based view's cache tags when using the "tag" cache plugin.
    */
   public function testEntityBasedViewCacheTagsWithCachePluginTag() {
     $view = Views::getview('entity_test_row');
@@ -211,7 +211,7 @@ public function testEntityBasedViewCacheTagsWithCachePluginTag() {
   }
 
   /**
-   * Tests a entity-based view's cache tags when using the "time" cache plugin.
+   * Tests an entity-based view's cache tags when using the "time" cache plugin.
    */
   public function testEntityBasedViewCacheTagsWithCachePluginTime() {
     $view = Views::getview('entity_test_row');
diff --git a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
index 2338d469c32b..6e0621e40fde 100644
--- a/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/EntityViewsDataTest.php
@@ -1129,7 +1129,7 @@ protected function assertLanguageField($data) {
   }
 
   /**
-   * Tests views data for a entity reference field.
+   * Tests views data for an entity reference field.
    */
   protected function assertEntityReferenceField($data) {
     $this->assertEquals('field', $data['field']['id']);
diff --git a/core/modules/views/tests/src/Unit/PluginBaseTest.php b/core/modules/views/tests/src/Unit/PluginBaseTest.php
index cc169d0d8b03..8d2f8e0d4cce 100644
--- a/core/modules/views/tests/src/Unit/PluginBaseTest.php
+++ b/core/modules/views/tests/src/Unit/PluginBaseTest.php
@@ -87,7 +87,7 @@ public function providerTestUnpackOptions() {
         'key' => 'value',
       ],
     ];
-    // Set a storage and a option value, so the option value should be kept.
+    // Set a storage and an option value, so the option value should be kept.
     $test_parameters[] = [
       'storage' => [
         'key' => 'value',
diff --git a/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php b/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php
index 2250acf7b375..56bd1235129c 100644
--- a/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php
+++ b/core/modules/views/tests/src/Unit/Routing/ViewPageControllerTest.php
@@ -101,7 +101,7 @@ public function testHandleWithArgumentsWithoutOverridden() {
   }
 
   /**
-   * Tests the page controller with arguments of a overridden page view.
+   * Tests the page controller with arguments of an overridden page view.
    *
    * Note: This test does not care about upcasting for now.
    */
@@ -137,7 +137,7 @@ public function testHandleWithArgumentsOnOverriddenRoute() {
   }
 
   /**
-   * Tests the page controller with arguments of a overridden page view.
+   * Tests the page controller with arguments of an overridden page view.
    *
    * This test care about upcasted values and ensures that the raw variables
    * are pulled in.
diff --git a/core/modules/views/tests/src/Unit/ViewsDataTest.php b/core/modules/views/tests/src/Unit/ViewsDataTest.php
index c198128a491b..10c66ac02de6 100644
--- a/core/modules/views/tests/src/Unit/ViewsDataTest.php
+++ b/core/modules/views/tests/src/Unit/ViewsDataTest.php
@@ -480,7 +480,7 @@ public function testCacheCallsWithWarmCacheAndDifferentTable() {
   }
 
   /**
-   * Tests the cache calls for an non-existent table:
+   * Tests the cache calls for a non-existent table:
    *
    * Warm cache:
    *   - all tables
@@ -518,7 +518,7 @@ public function testCacheCallsWithWarmCacheAndInvalidTable() {
   }
 
   /**
-   * Tests the cache calls for an non-existent table:
+   * Tests the cache calls for a non-existent table:
    *
    * Warm cache:
    *   - all tables
diff --git a/core/modules/views_ui/admin.inc b/core/modules/views_ui/admin.inc
index a37ea0e11ca5..7f8163d1f444 100644
--- a/core/modules/views_ui/admin.inc
+++ b/core/modules/views_ui/admin.inc
@@ -248,7 +248,7 @@ function views_ui_standard_display_dropdown(&$form, FormStateInterface $form_sta
 
   $display_dropdown['default'] = ($section_overrides ? t('All displays (except overridden)') : t('All displays'));
   $display_dropdown[$display_id] = t('This @display_type (override)', ['@display_type' => $current_display->getPluginId()]);
-  // Only display the revert option if we are in a overridden section.
+  // Only display the revert option if we are in an overridden section.
   if (!$section_defaulted) {
     $display_dropdown['default_revert'] = t('Revert to default');
   }
diff --git a/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php b/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php
index c19c73c6d726..44b2087a18ed 100644
--- a/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php
+++ b/core/modules/views_ui/src/Form/Ajax/ViewsFormInterface.php
@@ -44,7 +44,7 @@ public function getFormState(ViewEntityInterface $view, $display_id, $js);
    *   be 'nojs'. This determines the response.
    *
    * @return array
-   *   An form for a specific operation in the Views UI, or an array of AJAX
+   *   A form for a specific operation in the Views UI, or an array of AJAX
    *   commands to render a form.
    *
    * @todo When https://www.drupal.org/node/1843224 is in, this will return
diff --git a/core/modules/views_ui/src/ViewEditForm.php b/core/modules/views_ui/src/ViewEditForm.php
index c4a5a94b336e..34085ca080f6 100644
--- a/core/modules/views_ui/src/ViewEditForm.php
+++ b/core/modules/views_ui/src/ViewEditForm.php
@@ -792,7 +792,7 @@ public function renderDisplayTop(ViewUI $view) {
         '#submit' => ['::submitDisplayAdd', '::submitDelayDestination'],
         '#attributes' => ['class' => ['add-display']],
         // Allow JavaScript to remove the 'Add ' prefix from the button label when
-        // placing the button in a "Add" dropdown menu.
+        // placing the button in an "Add" dropdown menu.
         '#process' => array_merge(['views_ui_form_button_was_clicked'], $this->elementInfo->getInfoProperty('submit', '#process', [])),
         '#values' => [$this->t('Add @display', ['@display' => $label]), $label],
       ];
diff --git a/core/modules/views_ui/tests/src/Functional/AreaEntityUITest.php b/core/modules/views_ui/tests/src/Functional/AreaEntityUITest.php
index 7810aec59384..dba8326f97db 100644
--- a/core/modules/views_ui/tests/src/Functional/AreaEntityUITest.php
+++ b/core/modules/views_ui/tests/src/Functional/AreaEntityUITest.php
@@ -25,7 +25,7 @@ class AreaEntityUITest extends UITestBase {
   protected $defaultTheme = 'stark';
 
   public function testUI() {
-    // Set up a block and a entity_test entity.
+    // Set up a block and an entity_test entity.
     $block = Block::create(['id' => 'test_id', 'plugin' => 'system_main_block']);
     $block->save();
 
diff --git a/core/modules/workflows/src/Annotation/WorkflowType.php b/core/modules/workflows/src/Annotation/WorkflowType.php
index 496a9b822412..97330c90c1eb 100644
--- a/core/modules/workflows/src/Annotation/WorkflowType.php
+++ b/core/modules/workflows/src/Annotation/WorkflowType.php
@@ -5,7 +5,7 @@
 use Drupal\Component\Annotation\Plugin;
 
 /**
- * Defines an Workflow type annotation object.
+ * Defines a Workflow type annotation object.
  *
  * Plugin Namespace: Plugin\WorkflowType
  *
diff --git a/core/scripts/run-tests.sh b/core/scripts/run-tests.sh
index 91b47782610a..2db30d956b6b 100755
--- a/core/scripts/run-tests.sh
+++ b/core/scripts/run-tests.sh
@@ -908,9 +908,9 @@ function simpletest_script_command($test_id, $test_class) {
 /**
  * Removes all remnants of a test runner.
  *
- * In case a (e.g., fatal) error occurs after the test site has been fully setup
- * and the error happens in many tests, the environment that executes the tests
- * can easily run out of memory or disk space. This function ensures that all
+ * In case a fatal error occurs after the test site has been fully setup and
+ * the error happens in many tests, the environment that executes the tests can
+ * easily run out of memory or disk space. This function ensures that all
  * created resources are properly cleaned up after every executed test.
  *
  * This clean-up only exists in this script, since SimpleTest module itself does
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php
index 721174dc3f71..7f521b41de65 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxFormPageCacheTest.php
@@ -48,7 +48,7 @@ public function testSimpleAJAXFormValue() {
     $this->drupalGet('ajax_forms_test_get_form');
     $build_id_initial = $this->getFormBuildId();
 
-    // Changing the value of a select input element, triggers a AJAX
+    // Changing the value of a select input element, triggers an AJAX
     // request/response. The callback on the form responds with three AJAX
     // commands:
     // - UpdateBuildIdCommand
@@ -66,7 +66,7 @@ public function testSimpleAJAXFormValue() {
     $build_id_first_ajax = $this->getFormBuildId();
     $this->assertNotEquals($build_id_initial, $build_id_first_ajax, 'Build id is changed in the form_build_id element on first AJAX submission');
 
-    // Changing the value of a select input element, triggers a AJAX
+    // Changing the value of a select input element, triggers an AJAX
     // request/response.
     $session->getPage()->selectFieldOption('select', 'red');
 
@@ -84,7 +84,7 @@ public function testSimpleAJAXFormValue() {
     $build_id_from_cache_initial = $this->getFormBuildId();
     $this->assertEquals($build_id_initial, $build_id_from_cache_initial, 'Build id is the same as on the first request');
 
-    // Changing the value of a select input element, triggers a AJAX
+    // Changing the value of a select input element, triggers an AJAX
     // request/response.
     $session->getPage()->selectFieldOption('select', 'green');
 
@@ -96,7 +96,7 @@ public function testSimpleAJAXFormValue() {
     $this->assertNotEquals($build_id_from_cache_initial, $build_id_from_cache_first_ajax, 'Build id is changed in the simpletest-DOM on first AJAX submission');
     $this->assertNotEquals($build_id_first_ajax, $build_id_from_cache_first_ajax, 'Build id from first user is not reused');
 
-    // Changing the value of a select input element, triggers a AJAX
+    // Changing the value of a select input element, triggers an AJAX
     // request/response.
     $session->getPage()->selectFieldOption('select', 'red');
 
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxInGroupTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxInGroupTest.php
index 08c36b3517f8..8d093569d0d9 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxInGroupTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/AjaxInGroupTest.php
@@ -45,7 +45,7 @@ public function testSimpleAjaxFormValue() {
     $this->assertNotNull($checkbox_original, 'The checkbox_in_group is on the page.');
     $original_id = $checkbox_original->getAttribute('id');
 
-    // Triggers a AJAX request/response.
+    // Triggers an AJAX request/response.
     $checkbox_original->check();
 
     // The response contains a new nested "test group" form element, similar
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/DialogTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/DialogTest.php
index 4d31ecda8bc6..f5238eee7f7c 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/DialogTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/DialogTest.php
@@ -46,7 +46,7 @@ public function testDialog() {
     // expected.
     $this->getSession()->getPage()->clickLink('Link 1 (modal)');
 
-    // Clicking the link triggers a AJAX request/response.
+    // Clicking the link triggers an AJAX request/response.
     // Opens a Dialog panel.
     $link1_dialog_div = $this->assertSession()->waitForElementVisible('css', 'div.ui-dialog');
     $this->assertNotNull($link1_dialog_div, 'Link was used to open a dialog ( modal )');
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php
index af7bad75222e..de386436dac9 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/ElementValidationTest.php
@@ -48,9 +48,9 @@ public function testAjaxElementValidation() {
     $page->fillField('drivernumber', '12345');
     $page->findField('spare_required_field')->focus();
 
-    // The AJAX request/response will complete successfully when a InsertCommand
-    // injects a message with a placeholder element into the DOM with the
-    // submitted number.
+    // The AJAX request/response will complete successfully when an
+    // InsertCommand injects a message with a placeholder element into the DOM
+    // with the submitted number.
     $placeholder_number = $assert->waitForElement('css', "ul.messages__list li.messages__item em:contains('12345')");
     $this->assertNotNull($placeholder_number, 'A callback successfully echoed back a number.');
   }
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/FormValuesTest.php b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/FormValuesTest.php
index 1c65b1e02a86..d23c91653b99 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/Ajax/FormValuesTest.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/Ajax/FormValuesTest.php
@@ -42,7 +42,7 @@ public function testSimpleAjaxFormValue() {
 
     // Verify form values of a select element.
     foreach (['green', 'blue', 'red'] as $item) {
-      // Updating the field will trigger a AJAX request/response.
+      // Updating the field will trigger an AJAX request/response.
       $session->getPage()->selectFieldOption('select', $item);
 
       // The AJAX command in the response will update the DOM
@@ -67,7 +67,7 @@ public function testSimpleAjaxFormValue() {
     $this->assertAjaxHeader = FALSE;
     foreach (['null', 'empty', 'nonexistent'] as $key) {
       $element_name = 'select_' . $key . '_callback';
-      // Updating the field will trigger a AJAX request/response.
+      // Updating the field will trigger an AJAX request/response.
       $session->getPage()->selectFieldOption($element_name, 'green');
 
       // The select element is disabled as the AJAX request is issued.
diff --git a/core/tests/Drupal/FunctionalTests/Routing/RouteCachingLanguageTest.php b/core/tests/Drupal/FunctionalTests/Routing/RouteCachingLanguageTest.php
index 1ea340e6d561..1020ba5eb78b 100644
--- a/core/tests/Drupal/FunctionalTests/Routing/RouteCachingLanguageTest.php
+++ b/core/tests/Drupal/FunctionalTests/Routing/RouteCachingLanguageTest.php
@@ -34,7 +34,7 @@ class RouteCachingLanguageTest extends BrowserTestBase {
   protected $defaultTheme = 'stark';
 
   /**
-   * An user with permissions to administer content types.
+   * A user with permissions to administer content types.
    *
    * @var \Drupal\user\UserInterface
    */
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/Element/EntityAutocompleteElementFormTest.php b/core/tests/Drupal/KernelTests/Core/Entity/Element/EntityAutocompleteElementFormTest.php
index 1639a301b52a..dfe79ea835eb 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/Element/EntityAutocompleteElementFormTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/Element/EntityAutocompleteElementFormTest.php
@@ -272,7 +272,7 @@ public function testValidEntityAutocompleteElement() {
   public function testInvalidEntityAutocompleteElement() {
     $form_builder = $this->container->get('form_builder');
 
-    // Test 'single' with a entity label that doesn't exist
+    // Test 'single' with an entity label that doesn't exist
     $form_state = (new FormState())
       ->setValues([
         'single' => 'single - non-existent label',
@@ -281,7 +281,7 @@ public function testInvalidEntityAutocompleteElement() {
     $this->assertCount(1, $form_state->getErrors());
     $this->assertEqual($form_state->getErrors()['single'], t('There are no entities matching "%value".', ['%value' => 'single - non-existent label']));
 
-    // Test 'single' with a entity ID that doesn't exist.
+    // Test 'single' with an entity ID that doesn't exist.
     $form_state = (new FormState())
       ->setValues([
         'single' => 'single - non-existent label (42)',
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityAccessControlHandlerTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityAccessControlHandlerTest.php
index c6b7ae33cb95..397fce77d32d 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityAccessControlHandlerTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityAccessControlHandlerTest.php
@@ -78,7 +78,7 @@ public function testUserLabelAccess() {
       'view label' => TRUE,
     ], $user);
 
-    // Switch to a anonymous user account.
+    // Switch to an anonymous user account.
     $account_switcher = \Drupal::service('account_switcher');
     $account_switcher->switchTo(new AnonymousUserSession());
 
@@ -216,7 +216,7 @@ public function testEntityTranslationAccess() {
   }
 
   /**
-   * Ensures the static access cache works correctly in the absence of an UUID.
+   * Ensures the static access cache works correctly in the absence of a UUID.
    *
    * @see entity_test_entity_access()
    */
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php
index 728b9ea2515b..af2f11b1ef58 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityAutocompleteTest.php
@@ -54,14 +54,14 @@ public function testEntityReferenceAutocompletion() {
       ->create(['name' => 'label with, and / test']);
     $entity_3->save();
 
-    // Try to autocomplete a entity label that matches both entities.
+    // Try to autocomplete an entity label that matches both entities.
     // We should get both entities in a JSON encoded string.
     $input = '10/';
     $data = $this->getAutocompleteResult($input);
     $this->assertIdentical($data[0]['label'], Html::escape($entity_1->name->value), 'Autocomplete returned the first matching entity');
     $this->assertIdentical($data[1]['label'], Html::escape($entity_2->name->value), 'Autocomplete returned the second matching entity');
 
-    // Try to autocomplete a entity label that matches the first entity.
+    // Try to autocomplete an entity label that matches the first entity.
     // We should only get the first entity in a JSON encoded string.
     $input = '10/16';
     $data = $this->getAutocompleteResult($input);
@@ -71,13 +71,13 @@ public function testEntityReferenceAutocompletion() {
     ];
     $this->assertIdentical(reset($data), $target, 'Autocomplete returns only the expected matching entity.');
 
-    // Try to autocomplete a entity label that matches the second entity, and
+    // Try to autocomplete an entity label that matches the second entity, and
     // the first entity  is already typed in the autocomplete (tags) widget.
     $input = $entity_1->name->value . ' (1), 10/17';
     $data = $this->getAutocompleteResult($input);
     $this->assertIdentical($data[0]['label'], Html::escape($entity_2->name->value), 'Autocomplete returned the second matching entity');
 
-    // Try to autocomplete a entity label with both a comma, a slash and markup.
+    // Try to autocomplete an entity label with both comma, slash and markup.
     $input = '"label with, and /"';
     $data = $this->getAutocompleteResult($input);
     $n = $entity_3->name->value . ' (3)';
diff --git a/core/tests/Drupal/KernelTests/Core/Entity/EntityTranslationTest.php b/core/tests/Drupal/KernelTests/Core/Entity/EntityTranslationTest.php
index 506f1f458aa8..9683ae58315d 100644
--- a/core/tests/Drupal/KernelTests/Core/Entity/EntityTranslationTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Entity/EntityTranslationTest.php
@@ -639,7 +639,7 @@ protected function doTestLanguageFallback($entity_type) {
 
     // Check that if the entity has no translation no fallback is applied.
     $entity2 = $controller->create([$langcode_key => $default_langcode]);
-    // Get an view builder.
+    // Get a view builder.
     $controller = $this->entityTypeManager->getViewBuilder($entity_type);
     $entity2_build = $controller->view($entity2);
     $entity2_output = (string) $renderer->renderRoot($entity2_build);
diff --git a/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php b/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php
index 4955fb8c3699..86ca64c9c9f1 100644
--- a/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Form/FormCacheTest.php
@@ -84,7 +84,7 @@ public function testCacheToken() {
    * Tests the form cache without a logged-in user.
    */
   public function testNoCacheToken() {
-    // Switch to a anonymous user account.
+    // Switch to an anonymous user account.
     $account_switcher = \Drupal::service('account_switcher');
     $account_switcher->switchTo(new AnonymousUserSession());
 
diff --git a/core/tests/Drupal/KernelTests/Core/Http/LinkRelationsTest.php b/core/tests/Drupal/KernelTests/Core/Http/LinkRelationsTest.php
index d01537b7b2d7..0a9852d7d4a3 100644
--- a/core/tests/Drupal/KernelTests/Core/Http/LinkRelationsTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Http/LinkRelationsTest.php
@@ -19,7 +19,7 @@ public function testAvailableLinkRelationships() {
     /** @var \Drupal\Core\Http\LinkRelationTypeManager $link_relation_type_manager */
     $link_relation_type_manager = $this->container->get('plugin.manager.link_relation_type');
 
-    // An link relation type of the "registered" kind.
+    // A link relation type of the "registered" kind.
     /** @var \Drupal\Core\Http\LinkRelationTypeInterface $canonical */
     $canonical = $link_relation_type_manager->createInstance('canonical');
     $this->assertInstanceOf(LinkRelationType::class, $canonical);
@@ -31,7 +31,7 @@ public function testAvailableLinkRelationships() {
     $this->assertEquals('Designates the preferred version of a resource (the IRI and its contents).', $canonical->getDescription());
     $this->assertEquals('', $canonical->getNotes());
 
-    // An link relation type of the "extension" kind.
+    // A link relation type of the "extension" kind.
     /** @var \Drupal\Core\Http\LinkRelationTypeInterface $canonical */
     $add_form = $link_relation_type_manager->createInstance('add-form');
     $this->assertInstanceOf(LinkRelationType::class, $add_form);
diff --git a/core/tests/Drupal/KernelTests/Core/Lock/LockTest.php b/core/tests/Drupal/KernelTests/Core/Lock/LockTest.php
index db50bd91926c..24bd451fcc04 100644
--- a/core/tests/Drupal/KernelTests/Core/Lock/LockTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Lock/LockTest.php
@@ -48,7 +48,7 @@ public function testBackendLockRelease() {
 
     $this->lock->release('lock_b');
 
-    // Test acquiring an releasing a lock with a long key (over 255 chars).
+    // Test acquiring and releasing a lock with a long key (over 255 chars).
     $long_key = 'long_key:BZoMiSf9IIPULsJ98po18TxJ6T4usd3MZrLE0d3qMgG6iAgDlOi1G3oMap7zI5df84l7LtJBg4bOj6XvpO6vDRmP5h5QbA0Bj9rVFiPIPAIQZ9qFvJqTALiK1OR3GpOkWQ4vgEA4LkY0UfznrWBeuK7IWZfv1um6DLosnVXd1z1cJjvbEUqYGJj92rwHfhYihLm8IO9t3P2gAvEkH5Mhc8GBoiTsIDnP01Te1kxGFHO3RuvJIxPnHmZtSdBggmuVN7x9';
 
     $success = $this->lock->acquire($long_key);
diff --git a/core/tests/Drupal/TestSite/Commands/TestSiteTearDownCommand.php b/core/tests/Drupal/TestSite/Commands/TestSiteTearDownCommand.php
index 27351fe5c5f5..7a5ed59072e6 100644
--- a/core/tests/Drupal/TestSite/Commands/TestSiteTearDownCommand.php
+++ b/core/tests/Drupal/TestSite/Commands/TestSiteTearDownCommand.php
@@ -100,7 +100,7 @@ protected function tearDown(TestDatabase $test_database, $db_url): void {
    * test site can be torn down even if something in the test site is broken.
    *
    * @param string $path
-   *   A string containing either an URI or a file or directory path.
+   *   A string containing either a URI or a file or directory path.
    * @param callable $callback
    *   (optional) Callback function to run on each file prior to deleting it and
    *   on each directory prior to traversing it. For example, can be used to
diff --git a/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php b/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
index cde8dacad80f..ea8b44cc7499 100644
--- a/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
+++ b/core/tests/Drupal/Tests/Component/Datetime/DateTimePlusTest.php
@@ -668,7 +668,7 @@ public function providerTestDateDiff() {
         'expected' => $positive_19_hours,
       ],
       // In 1970 Sydney did not observe daylight savings time
-      // So there is only a 18 hour time interval.
+      // So there is only an 18 hour time interval.
       [
         'input2' => DateTimePlus::createFromFormat('Y-m-d H:i:s', '1970-01-01 00:00:00', new \DateTimeZone('Australia/Sydney')),
         'input1' => DateTimePlus::createFromFormat('Y-m-d H:i:s', '1970-01-01 00:00:00', new \DateTimeZone('America/Los_Angeles')),
diff --git a/core/tests/Drupal/Tests/Core/Command/QuickStartTest.php b/core/tests/Drupal/Tests/Core/Command/QuickStartTest.php
index 89612cc8ea65..ecd2a1a63695 100644
--- a/core/tests/Drupal/Tests/Core/Command/QuickStartTest.php
+++ b/core/tests/Drupal/Tests/Core/Command/QuickStartTest.php
@@ -298,7 +298,7 @@ public function testServerWithNoInstall() {
    * test site can be torn down even if something in the test site is broken.
    *
    * @param string $path
-   *   A string containing either an URI or a file or directory path.
+   *   A string containing either a URI or a file or directory path.
    * @param callable $callback
    *   (optional) Callback function to run on each file prior to deleting it and
    *   on each directory prior to traversing it. For example, can be used to
diff --git a/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php b/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php
index 83b53af1ecaf..3f73187a77c7 100644
--- a/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php
+++ b/core/tests/Drupal/Tests/Core/Config/Entity/Query/QueryFactoryTest.php
@@ -61,7 +61,7 @@ public function providerTestGetKeys() {
       $this->getConfigObject('test')->set('uuid', 'abc'),
     ];
 
-    // Tests a existent sub key.
+    // Tests an existent sub key.
     $tests[] = [
       ['uuid.blah:abc'],
       'uuid.blah',
diff --git a/core/tests/Drupal/Tests/Core/Datetime/DrupalDateTimeTest.php b/core/tests/Drupal/Tests/Core/Datetime/DrupalDateTimeTest.php
index 2809db08b936..03f75cca2f5a 100644
--- a/core/tests/Drupal/Tests/Core/Datetime/DrupalDateTimeTest.php
+++ b/core/tests/Drupal/Tests/Core/Datetime/DrupalDateTimeTest.php
@@ -85,7 +85,7 @@ public function providerTestDateDiff() {
         'expected' => $positive_19_hours,
       ],
       // In 1970 Sydney did not observe daylight savings time
-      // So there is only a 18 hour time interval.
+      // So there is only an 18 hour time interval.
       [
         'input2' => DrupalDateTime::createFromFormat('Y-m-d H:i:s', '1970-01-01 00:00:00', new \DateTimeZone('Australia/Sydney'), $settings),
         'input1' => DrupalDateTime::createFromFormat('Y-m-d H:i:s', '1970-01-01 00:00:00', new \DateTimeZone('America/Los_Angeles'), $settings),
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php
index 98cd6b8a89d0..4def2202b4d0 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityResolverManagerTest.php
@@ -266,7 +266,7 @@ public function testSetRouteOptionsWithEntityUpcastingNoCreate() {
   }
 
   /**
-   * Tests setRouteOptions() with an form parameter without interface.
+   * Tests setRouteOptions() with a form parameter without interface.
    *
    * @covers ::setRouteOptions
    * @covers ::getControllerClass
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
index 97b16de0f183..80e903a27a8c 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/DefaultTableMappingTest.php
@@ -317,7 +317,7 @@ public function testGetFieldColumnNameInvalid($base_field, $columns, $column) {
    * Provides test data for testGetFieldColumnName().
    *
    * @return array[]
-   *   An nested array where each inner array has the following values: test
+   *   A nested array where each inner array has the following values: test
    *   field name, base field status, list of field columns, name of the column
    *   to be retrieved, expected result, whether an exception is expected.
    */
diff --git a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php
index 2b578fac918b..e63dc51af9b5 100644
--- a/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/Sql/SqlContentEntityStorageTest.php
@@ -168,7 +168,7 @@ public function testGetBaseTable($base_table, $expected) {
    * Provides test data for testGetBaseTable().
    *
    * @return array[]
-   *   An nested array where each inner array has the base table to be returned
+   *   A nested array where each inner array has the base table to be returned
    *   by the mocked entity type as the first value and the expected return
    *   value of SqlContentEntityStorage::getBaseTable() as the second
    *   value.
@@ -216,7 +216,7 @@ public function testGetRevisionTable($revision_table, $expected) {
    * Provides test data for testGetRevisionTable().
    *
    * @return array[]
-   *   An nested array where each inner array has the revision table to be
+   *   A nested array where each inner array has the revision table to be
    *   returned by the mocked entity type as the first value and the expected
    *   return value of SqlContentEntityStorage::getRevisionTable() as the
    *   second value.
@@ -294,7 +294,7 @@ public function testGetRevisionDataTable($revision_data_table, $expected) {
    * Provides test data for testGetRevisionDataTable().
    *
    * @return array[]
-   *   An nested array where each inner array has the revision data table to be
+   *   A nested array where each inner array has the revision data table to be
    *   returned by the mocked entity type as the first value and the expected
    *   return value of SqlContentEntityStorage::getRevisionDataTable() as
    *   the second value.
diff --git a/core/tests/Drupal/Tests/Core/Form/FormStateTest.php b/core/tests/Drupal/Tests/Core/Form/FormStateTest.php
index 0a5e627a19fb..0a222ccaabcf 100644
--- a/core/tests/Drupal/Tests/Core/Form/FormStateTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/FormStateTest.php
@@ -120,7 +120,7 @@ public function providerTestSetErrorByName() {
     return [
       // Only validate the 'options' element.
       [[['options']], ['options' => '']],
-      // Do not limit an validation, and, ensuring the first error is returned
+      // Do not limit a validation, ensure the first error is returned
       // for the 'test' element.
       [NULL, ['test' => 'Fail 1', 'options' => '']],
       // Limit all validation.
diff --git a/core/tests/Drupal/Tests/UiHelperTrait.php b/core/tests/Drupal/Tests/UiHelperTrait.php
index ae20321026dc..5111d36fe743 100644
--- a/core/tests/Drupal/Tests/UiHelperTrait.php
+++ b/core/tests/Drupal/Tests/UiHelperTrait.php
@@ -352,7 +352,7 @@ protected function drupalGet($path, array $options = [], array $headers = []) {
   }
 
   /**
-   * Builds an a absolute URL from a system path or a URL object.
+   * Builds an absolute URL from a system path or a URL object.
    *
    * @param string|\Drupal\Core\Url $path
    *   A system path or a URL.
diff --git a/core/themes/stable/templates/admin/admin-page.html.twig b/core/themes/stable/templates/admin/admin-page.html.twig
index 106876f730a9..ea69e997a13e 100644
--- a/core/themes/stable/templates/admin/admin-page.html.twig
+++ b/core/themes/stable/templates/admin/admin-page.html.twig
@@ -5,7 +5,7 @@
  *
  * Available variables:
  * - system_compact_link: Themed link to toggle compact view.
- * - containers: An list of administrative blocks keyed by position: left or
+ * - containers: A list of administrative blocks keyed by position: left or
  *   right. Contains:
  *   - blocks: A list of blocks within a container.
  *
-- 
GitLab