diff --git a/core/includes/entity.inc b/core/includes/entity.inc
index 3cfac3f66c1c2a8b18355f3567e28047c1ee9201..d48aa4eb274ff18e1a0c5c4b7a5561a58779e1ca 100644
--- a/core/includes/entity.inc
+++ b/core/includes/entity.inc
@@ -145,16 +145,15 @@ function entity_revision_delete($entity_type, $revision_id) {
  * database access if loaded again during the same page request.
  *
  * The actual loading is done through a class that has to implement the
- * Drupal\Core\Entity\EntityStorageInterface interface. By default,
- * Drupal\Core\Entity\Sql\SqlContentEntityStorage is used for content entities
+ * \Drupal\Core\Entity\EntityStorageInterface interface. By default,
+ * \Drupal\Core\Entity\Sql\SqlContentEntityStorage is used for content entities
  * and Drupal\Core\Config\Entity\ConfigEntityStorage for config entities. Entity
  * types can specify that a different class should be used by setting the
- * "controllers['storage']" key in the entity plugin annotation. These classes
- * can either implement the Drupal\Core\Entity\EntityStorageInterface
+ * "handlers['storage']" key in the entity plugin annotation. These classes
+ * can either implement the \Drupal\Core\Entity\EntityStorageInterface
  * interface, or, most commonly, extend the
- * Drupal\Core\Entity\Sql\SqlContentEntityStorage class.
- * See Drupal\node\Entity\Node and Drupal\node\NodeStorage
- * for an example.
+ * \Drupal\Core\Entity\Sql\SqlContentEntityStorage class. See
+ * \Drupal\node\Entity\Node and \Drupal\node\NodeStorage for an example.
  *
  * @param string $entity_type
  *   The entity type to load, e.g. node or user.
diff --git a/core/lib/Drupal/Core/Entity/EntityHandlerBase.php b/core/lib/Drupal/Core/Entity/EntityHandlerBase.php
index c4ec4a3552d6a38a2fe9f3ea7e86bda7516a2a6e..ef9eb34efc3c72a10b23010448f9f65b4ae868a1 100644
--- a/core/lib/Drupal/Core/Entity/EntityHandlerBase.php
+++ b/core/lib/Drupal/Core/Entity/EntityHandlerBase.php
@@ -18,6 +18,8 @@
  *   Implement the container injection pattern of
  *   \Drupal\Core\Entity\EntityHandlerInterface::createInstance() to obtain the
  *   module handler service for your class.
+ *
+ * @ingroup entity_api
  */
 abstract class EntityHandlerBase {
   use StringTranslationTrait;
diff --git a/core/lib/Drupal/Core/Entity/EntityHandlerInterface.php b/core/lib/Drupal/Core/Entity/EntityHandlerInterface.php
index f6b862a4bd1a2ae075b43a07d367ece005b1fd0a..f7811881d53d5116c86cee4e1a7e27caff96ee0e 100644
--- a/core/lib/Drupal/Core/Entity/EntityHandlerInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityHandlerInterface.php
@@ -14,6 +14,8 @@
  *
  * This interface can be implemented by entity handlers that require
  * dependency injection.
+ *
+ * @ingroup entity_api
  */
 interface EntityHandlerInterface {
 
diff --git a/core/lib/Drupal/Core/Entity/entity.api.php b/core/lib/Drupal/Core/Entity/entity.api.php
index 251a87c7bddc7cb0301dd412f79decba74cd21e9..064ef01bec8defdf8ac151648863e5c747c5eefa 100644
--- a/core/lib/Drupal/Core/Entity/entity.api.php
+++ b/core/lib/Drupal/Core/Entity/entity.api.php
@@ -277,8 +277,8 @@
  *   content entity type that uses bundles, the 'bundle_label' annotation gives
  *   the human-readable name to use for a bundle of this entity type (for
  *   example, "Content type" for the Node entity).
- * - The annotation will refer to several controller classes, which you will
- *   also need to define:
+ * - The annotation will refer to several handler classes, which you will also
+ *   need to define:
  *   - list_builder: Define a class that extends
  *     \Drupal\Core\Config\Entity\ConfigEntityListBuilder (for configuration
  *     entities) or \Drupal\Core\Entity\EntityListBuilder (for content
@@ -298,7 +298,7 @@
  *     annotation has value TRUE), define a class that extends
  *     \Drupal\content_translation\ContentTranslationHandler, to translate
  *     the content. Configuration translation is handled automatically by the
- *     Configuration Translation module, without the need of a controller class.
+ *     Configuration Translation module, without the need of a handler class.
  *   - access: If your configuration entity has complex permissions, you might
  *     need an access control handling, implementing
  *     \Drupal\Core\Entity\EntityAccessControlHandlerInterface, but most entities
@@ -381,10 +381,10 @@
  *   an object to the controller for the route.
  * - defaults: For entity form routes, use _entity_form rather than the generic
  *   _controller or _form. The value is composed of the entity type machine name
- *   and a form controller type from the entity annotation (see @ref define
- *   above more more on controllers and annotation). So, in this example,
- *   block.default refers to the 'default' form controller on the block entity
- *   type, whose annotation contains:
+ *   and a form handler type from the entity annotation (see @ref define above
+ *   more more on handlers and annotation). So, in this example, block.default
+ *   refers to the 'default' form handler on the block entity type, whose
+ *   annotation contains:
  *   @code
  *   handlers = {
  *     "form" = {
diff --git a/core/modules/aggregator/src/FeedForm.php b/core/modules/aggregator/src/FeedForm.php
index 3f06ddb41b37642f9dd111ec7573b0153722fc0a..7502f54e3c389295eaa7f7b177c8e62343b1e80c 100644
--- a/core/modules/aggregator/src/FeedForm.php
+++ b/core/modules/aggregator/src/FeedForm.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Url;
 
 /**
- * Form controller for the aggregator feed edit forms.
+ * Form handler for the aggregator feed edit forms.
  */
 class FeedForm extends ContentEntityForm {
 
diff --git a/core/modules/aggregator/src/FeedViewBuilder.php b/core/modules/aggregator/src/FeedViewBuilder.php
index 11b78ab4d366b475ca59cb4b9f2b801bb82049e3..e88090e248e8ce666e264e993f8929653838ec36 100644
--- a/core/modules/aggregator/src/FeedViewBuilder.php
+++ b/core/modules/aggregator/src/FeedViewBuilder.php
@@ -16,7 +16,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Render controller for aggregator feed items.
+ * View builder handler for aggregator feeds.
  */
 class FeedViewBuilder extends EntityViewBuilder {
 
diff --git a/core/modules/aggregator/src/ItemViewBuilder.php b/core/modules/aggregator/src/ItemViewBuilder.php
index 1f0c23a386ece07e1722b84b9a29563645d54a7d..0e386e9ef8746d9d08ee520da166b250fb346183 100644
--- a/core/modules/aggregator/src/ItemViewBuilder.php
+++ b/core/modules/aggregator/src/ItemViewBuilder.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
- * Render controller for aggregator feed items.
+ * View builder handler for aggregator feed items.
  */
 class ItemViewBuilder extends EntityViewBuilder {
 
diff --git a/core/modules/block_content/src/BlockContentForm.php b/core/modules/block_content/src/BlockContentForm.php
index 088c4d7bf41d022a4385191ab75fda466397cb1a..ffe2f992dd34e1527c775b5363dae218e913a0c5 100644
--- a/core/modules/block_content/src/BlockContentForm.php
+++ b/core/modules/block_content/src/BlockContentForm.php
@@ -16,7 +16,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Form controller for the custom block edit forms.
+ * Form handler for the custom block edit forms.
  */
 class BlockContentForm extends ContentEntityForm {
 
diff --git a/core/modules/block_content/src/BlockContentViewBuilder.php b/core/modules/block_content/src/BlockContentViewBuilder.php
index 87b7aed17306ff64415ea9903130479e7121b181..44380c54e210d567141449aeafd57cd2f70dd163 100644
--- a/core/modules/block_content/src/BlockContentViewBuilder.php
+++ b/core/modules/block_content/src/BlockContentViewBuilder.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
- * Render controller for custom blocks.
+ * View builder handler for custom blocks.
  */
 class BlockContentViewBuilder extends EntityViewBuilder {
 
diff --git a/core/modules/comment/src/CommentForm.php b/core/modules/comment/src/CommentForm.php
index dd92f2b2e3c48b4f3ecc7646721126c4b1e75c6c..d5b7f0c7b19a806ae8ab1931098f81ac01da1cdd 100644
--- a/core/modules/comment/src/CommentForm.php
+++ b/core/modules/comment/src/CommentForm.php
@@ -20,7 +20,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Base for controller for comment forms.
+ * Base handler for comment forms.
  */
 class CommentForm extends ContentEntityForm {
 
diff --git a/core/modules/comment/src/CommentStorage.php b/core/modules/comment/src/CommentStorage.php
index 099e5f41cd918ee32663cdc49dc9780d3313ba8b..5ed080fce0edcb5c3d450922dfc795f9631305a5 100644
--- a/core/modules/comment/src/CommentStorage.php
+++ b/core/modules/comment/src/CommentStorage.php
@@ -19,7 +19,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Defines the controller class for comments.
+ * Defines the storage handler class for comments.
  *
  * This extends the Drupal\Core\Entity\Sql\SqlContentEntityStorage class,
  * adding required special handling for comment entities.
diff --git a/core/modules/comment/src/CommentTypeForm.php b/core/modules/comment/src/CommentTypeForm.php
index 16a1c0436add8249a9b9e9cdad567c88bd8f3ce5..20c2820c77de37651f7b7f4604b0d9f076e1dfdb 100644
--- a/core/modules/comment/src/CommentTypeForm.php
+++ b/core/modules/comment/src/CommentTypeForm.php
@@ -16,7 +16,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Base form controller for category edit forms.
+ * Base form handler for comment type edit forms.
  */
 class CommentTypeForm extends EntityForm {
 
diff --git a/core/modules/comment/src/CommentViewBuilder.php b/core/modules/comment/src/CommentViewBuilder.php
index 22914d310abf20991b05b693b22bd91dadfcf0a9..9b47b7c7b14243d4ed4f737458639525db88df77 100644
--- a/core/modules/comment/src/CommentViewBuilder.php
+++ b/core/modules/comment/src/CommentViewBuilder.php
@@ -18,7 +18,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Render controller for comments.
+ * View builder handler for comments.
  */
 class CommentViewBuilder extends EntityViewBuilder {
 
diff --git a/core/modules/field_ui/src/EntityDisplayModeListBuilder.php b/core/modules/field_ui/src/EntityDisplayModeListBuilder.php
index 159596319aa59bd6d5a77ad2d4e44ae046f0c87e..080cf1ee364d52caf845263b8f95454e7b453cd1 100644
--- a/core/modules/field_ui/src/EntityDisplayModeListBuilder.php
+++ b/core/modules/field_ui/src/EntityDisplayModeListBuilder.php
@@ -130,14 +130,14 @@ public function render() {
   }
 
   /**
-   * Filters entities based on their controllers.
+   * Filters entities based on their view builder handlers.
    *
    * @param $entity_type
    *   The entity type of the entity that needs to be validated.
    *
    * @return bool
-   *   TRUE if the entity has the correct controller, FALSE if the entity
-   *   doesn't has the correct controller.
+   *   TRUE if the entity has the correct view builder handler, FALSE if the
+   *   entity doesn't have the correct view builder handler.
    */
   protected function isValidEntity($entity_type) {
     return $this->entityTypes[$entity_type]->get('field_ui_base_route') && $this->entityTypes[$entity_type]->hasViewBuilderClass();
diff --git a/core/modules/field_ui/src/EntityFormModeListBuilder.php b/core/modules/field_ui/src/EntityFormModeListBuilder.php
index f6fc24b47fc9f1a0e7dc4d7ec7bb49661265bb59..741b23efbdfb8848bd26e598300a559d1d901236 100644
--- a/core/modules/field_ui/src/EntityFormModeListBuilder.php
+++ b/core/modules/field_ui/src/EntityFormModeListBuilder.php
@@ -15,7 +15,7 @@
 class EntityFormModeListBuilder extends EntityDisplayModeListBuilder {
 
   /**
-   * Filters entities based on their controllers.
+   * Filters entities based on their form mode handlers.
    *
    * @param $entity_type
    *   The entity type of the entity that needs to be validated.
diff --git a/core/modules/language/src/LanguageListBuilder.php b/core/modules/language/src/LanguageListBuilder.php
index fe4e7a12fd3e6e6564b1b86843512655de0bdebc..e6b279d36697e8d03612f59cfb645d6346413b13 100644
--- a/core/modules/language/src/LanguageListBuilder.php
+++ b/core/modules/language/src/LanguageListBuilder.php
@@ -61,7 +61,7 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
    *   The entity type definition.
    * @param \Drupal\Core\Entity\EntityStorageInterface $storage
-   *   The entity storage controller class.
+   *   The entity storage handler class.
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    *   The language manager.
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
diff --git a/core/modules/node/src/NodeForm.php b/core/modules/node/src/NodeForm.php
index bb6c49d728fb6ab5cca3a129686f83f089384435..e273fc33971239a3e9086253e161be05d220cb86 100644
--- a/core/modules/node/src/NodeForm.php
+++ b/core/modules/node/src/NodeForm.php
@@ -14,7 +14,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Form controller for the node edit forms.
+ * Form handler for the node edit forms.
  */
 class NodeForm extends ContentEntityForm {
 
diff --git a/core/modules/node/src/NodeGrantDatabaseStorage.php b/core/modules/node/src/NodeGrantDatabaseStorage.php
index eb87a4dd026654e4354038cd1405f30de64056b4..58f8540432d7fb03147c8406339b385cd03ae922 100644
--- a/core/modules/node/src/NodeGrantDatabaseStorage.php
+++ b/core/modules/node/src/NodeGrantDatabaseStorage.php
@@ -16,7 +16,7 @@
 use Drupal\Core\Session\AccountInterface;
 
 /**
- * Defines a controller class that handles the node grants system.
+ * Defines a storage handler class that handles the node grants system.
  *
  * This is used to build node query access.
  *
diff --git a/core/modules/node/src/NodeStorage.php b/core/modules/node/src/NodeStorage.php
index 830fc3265daa554e3355d8328469164faecd2ebe..da8e4a3b390e5ca29f494f60c841a6e10a0215fe 100644
--- a/core/modules/node/src/NodeStorage.php
+++ b/core/modules/node/src/NodeStorage.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Language\LanguageInterface;
 
 /**
- * Defines the controller class for nodes.
+ * Defines the storage handler class for nodes.
  *
  * This extends the base storage class, adding required special handling for
  * node entities.
diff --git a/core/modules/node/src/NodeTypeForm.php b/core/modules/node/src/NodeTypeForm.php
index e4f8cf570ac43058f17733d48b3801f71c42700f..8c85e47b283d02a77bd8baf43595bfbf85148cf2 100644
--- a/core/modules/node/src/NodeTypeForm.php
+++ b/core/modules/node/src/NodeTypeForm.php
@@ -15,7 +15,7 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Form controller for node type forms.
+ * Form handler for node type forms.
  */
 class NodeTypeForm extends BundleEntityFormBase {
 
diff --git a/core/modules/node/src/NodeViewBuilder.php b/core/modules/node/src/NodeViewBuilder.php
index 1ee05f6afe22161ea95a481d8a55a2706b145847..db3a7b489fa1970f7b3ef0ee1dafe8fde9685bd4 100644
--- a/core/modules/node/src/NodeViewBuilder.php
+++ b/core/modules/node/src/NodeViewBuilder.php
@@ -13,7 +13,7 @@
 use Drupal\node\Entity\Node;
 
 /**
- * Render controller for nodes.
+ * View builder handler for nodes.
  */
 class NodeViewBuilder extends EntityViewBuilder {
 
diff --git a/core/modules/node/src/Plugin/views/argument/Type.php b/core/modules/node/src/Plugin/views/argument/Type.php
index 62ab17dbbfaf822b8ddd03f7fae3c1d46ab5e060..3ef433905fa1b0723e58d67de3503e986ad45989 100644
--- a/core/modules/node/src/Plugin/views/argument/Type.php
+++ b/core/modules/node/src/Plugin/views/argument/Type.php
@@ -19,7 +19,7 @@
 class Type extends StringArgument {
 
   /**
-   * NodeType storage controller.
+   * NodeType storage handler.
    *
    * @var \Drupal\Core\Entity\EntityStorageInterface
    */
diff --git a/core/modules/shortcut/src/ShortcutForm.php b/core/modules/shortcut/src/ShortcutForm.php
index c0f8714e3922e57b938aa401caecc869af861c5b..f2f16e91a39a3f0b5b823c42ce3a1ce8610c3ab0 100644
--- a/core/modules/shortcut/src/ShortcutForm.php
+++ b/core/modules/shortcut/src/ShortcutForm.php
@@ -11,7 +11,7 @@
 use Drupal\Core\Form\FormStateInterface;
 
 /**
- * Form controller for the shortcut entity forms.
+ * Form handler for the shortcut entity forms.
  */
 class ShortcutForm extends ContentEntityForm {
 
diff --git a/core/modules/shortcut/src/ShortcutSetForm.php b/core/modules/shortcut/src/ShortcutSetForm.php
index fd21f7c77624d30553f842f6ef34a49ed3eac1c2..7bb6ced92afc79702dbea379d1db92129d4739b2 100644
--- a/core/modules/shortcut/src/ShortcutSetForm.php
+++ b/core/modules/shortcut/src/ShortcutSetForm.php
@@ -11,7 +11,7 @@
 use Drupal\Core\Form\FormStateInterface;
 
 /**
- * Form controller for the shortcut set entity edit forms.
+ * Form handler for the shortcut set entity edit forms.
  */
 class ShortcutSetForm extends BundleEntityFormBase {
 
diff --git a/core/modules/taxonomy/src/Form/OverviewTerms.php b/core/modules/taxonomy/src/Form/OverviewTerms.php
index dffbe34e65f6673b6b8734348d0306a9b73334c3..a44bc54d4198dd92deee0c1780243b7d38531a0e 100644
--- a/core/modules/taxonomy/src/Form/OverviewTerms.php
+++ b/core/modules/taxonomy/src/Form/OverviewTerms.php
@@ -27,7 +27,7 @@ class OverviewTerms extends FormBase {
   protected $moduleHandler;
 
   /**
-   * The term storage controller.
+   * The term storage handler.
    *
    * @var \Drupal\taxonomy\TermStorageInterface
    */
diff --git a/core/modules/taxonomy/src/TermForm.php b/core/modules/taxonomy/src/TermForm.php
index 9da0993643d3572ba49258abbf167b19a14b8c58..ba1dcb329540c794556757cea3d711a139b3227c 100644
--- a/core/modules/taxonomy/src/TermForm.php
+++ b/core/modules/taxonomy/src/TermForm.php
@@ -11,7 +11,7 @@
 use Drupal\Core\Form\FormStateInterface;
 
 /**
- * Base for controller for taxonomy term edit forms.
+ * Base for handler for taxonomy term edit forms.
  */
 class TermForm extends ContentEntityForm {
 
diff --git a/core/modules/taxonomy/src/TermViewBuilder.php b/core/modules/taxonomy/src/TermViewBuilder.php
index efd4374f1f3564c825d8d010f44efb2f9ec6cbf8..ee9593f54a181b2828fa00abc81055c5f1a86574 100644
--- a/core/modules/taxonomy/src/TermViewBuilder.php
+++ b/core/modules/taxonomy/src/TermViewBuilder.php
@@ -12,7 +12,7 @@
 use Drupal\Core\Entity\EntityViewBuilder;
 
 /**
- * Render controller for taxonomy terms.
+ * View builder handler for taxonomy terms.
  */
 class TermViewBuilder extends EntityViewBuilder {
 
diff --git a/core/modules/taxonomy/src/VocabularyStorage.php b/core/modules/taxonomy/src/VocabularyStorage.php
index b761bcc22c7952091667e6ef6766f9387cba4009..5fb3c3f0e97ca42acfe885c932cd110bf1b5d8dd 100644
--- a/core/modules/taxonomy/src/VocabularyStorage.php
+++ b/core/modules/taxonomy/src/VocabularyStorage.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Config\Entity\ConfigEntityStorage;
 
 /**
- * Defines a controller class for taxonomy vocabularies.
+ * Defines a storage handler class for taxonomy vocabularies.
  */
 class VocabularyStorage extends ConfigEntityStorage implements VocabularyStorageInterface {
 
diff --git a/core/modules/user/src/ProfileForm.php b/core/modules/user/src/ProfileForm.php
index e1196931c512d2b793d8a986e6f7c2e89124fb8c..c8cc6138b18fa223158c02e3dda1318e37dc738a 100644
--- a/core/modules/user/src/ProfileForm.php
+++ b/core/modules/user/src/ProfileForm.php
@@ -13,7 +13,7 @@
 use Drupal\Core\Language\LanguageManagerInterface;
 
 /**
- * Form controller for the profile forms.
+ * Form handler for the profile forms.
  */
 class ProfileForm extends AccountForm {
 
diff --git a/core/modules/user/src/RegisterForm.php b/core/modules/user/src/RegisterForm.php
index 377b67c490cfdfedb237d0e63395a86dd02aa090..91d472f62ba3a6283600c882aa2ce25219f815fe 100644
--- a/core/modules/user/src/RegisterForm.php
+++ b/core/modules/user/src/RegisterForm.php
@@ -13,7 +13,7 @@
 use Drupal\Core\Language\LanguageManagerInterface;
 
 /**
- * Form controller for the user register forms.
+ * Form handler for the user register forms.
  */
 class RegisterForm extends AccountForm {
 
diff --git a/core/modules/views/src/EntityViewsData.php b/core/modules/views/src/EntityViewsData.php
index 1ae570923b57bb41a6dac41b58b6a729b0f96345..3b57d53f2a64e624dd77881c7eb20f632053dca3 100644
--- a/core/modules/views/src/EntityViewsData.php
+++ b/core/modules/views/src/EntityViewsData.php
@@ -28,7 +28,7 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
   use StringTranslationTrait;
 
   /**
-   * Entity type for this views controller instance.
+   * Entity type for this views data handler instance.
    *
    * @var \Drupal\Core\Entity\EntityTypeInterface
    */
@@ -68,7 +68,7 @@ class EntityViewsData implements EntityHandlerInterface, EntityViewsDataInterfac
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
    *   The entity type to provide views integration for.
    * @param \Drupal\Core\Entity\Sql\SqlEntityStorageInterface $storage_controller
-   *   The storage controller used for this entity type.
+   *   The storage handler used for this entity type.
    * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager
    *   The entity manager.
    * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler