diff --git a/core/modules/editor/editor.module b/core/modules/editor/editor.module
index 2a052dc..c64d7c3 100644
--- a/core/modules/editor/editor.module
+++ b/core/modules/editor/editor.module
@@ -67,6 +67,20 @@ function editor_element_info_alter(&$types) {
 
 /**
  * Implements hook_form_FORM_ID_alter() for \Drupal\filter\FilterFormatListBuilder.
+ *
+ * Implements hook_field_formatter_info_alter().
+ *
+ * @see quickedit_field_formatter_info_alter()
+ */
+function editor_field_formatter_info_alter(&$info) {
+  // Update \Drupal\text\Plugin\Field\FieldFormatter\TextDefaultFormatter's
+  // annotation to indicate that it supports the 'editor' in-place editor
+  // provided by this module.
+  $info['text_default']['quickedit'] = ['editor' => 'editor'];
+}
+
+/**
+ * Implements hook_form_FORM_ID_alter().
  */
 function editor_form_filter_admin_overview_alter(&$form, FormStateInterface $form_state) {
   // @todo Cleanup column injection: https://www.drupal.org/node/1876718.
diff --git a/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php b/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php
index 24b43ea..4e552a6 100644
--- a/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php
+++ b/core/modules/editor/src/Plugin/InPlaceEditor/Editor.php
@@ -11,8 +11,7 @@
  * Defines the formatted text in-place editor.
  *
  * @InPlaceEditor(
- *   id = "editor",
- *   alternativeTo = {"plain_text"}
+ *   id = "editor"
  * )
  */
 class Editor extends PluginBase implements InPlaceEditorInterface {
@@ -30,16 +29,14 @@ public function isCompatible(FieldItemListInterface $items) {
     // This editor is compatible with formatted ("rich") text fields; but only
     // if there is a currently active text format, that text format has an
     // associated editor and that editor supports inline editing.
-    elseif (in_array($field_definition->getType(), array('text', 'text_long', 'text_with_summary'), TRUE)) {
-      if ($editor = editor_load($items[0]->format)) {
-        $definition = \Drupal::service('plugin.manager.editor')->getDefinition($editor->getEditor());
-        if ($definition['supports_inline_editing'] === TRUE) {
-          return TRUE;
-        }
+    elseif ($editor = editor_load($items[0]->format)) {
+      $definition = \Drupal::service('plugin.manager.editor')->getDefinition($editor->getEditor());
+      if ($definition['supports_inline_editing'] === TRUE) {
+        return TRUE;
       }
-
-      return FALSE;
     }
+
+    return FALSE;
   }
 
   /**
diff --git a/core/modules/quickedit/src/Annotation/InPlaceEditor.php b/core/modules/quickedit/src/Annotation/InPlaceEditor.php
index f30d8e0..8c9594b 100644
--- a/core/modules/quickedit/src/Annotation/InPlaceEditor.php
+++ b/core/modules/quickedit/src/Annotation/InPlaceEditor.php
@@ -28,14 +28,6 @@ class InPlaceEditor extends Plugin {
   public $id;
 
   /**
-   * An array of in-place editors plugin IDs that have registered themselves as
-   * alternatives to this in-place editor.
-   *
-   * @var array
-   */
-  public $alternativeTo;
-
-  /**
    * The name of the module providing the in-place editor plugin.
    *
    * @var string
diff --git a/core/modules/quickedit/src/EditorSelector.php b/core/modules/quickedit/src/EditorSelector.php
index 6b199fa..9e2252e 100644
--- a/core/modules/quickedit/src/EditorSelector.php
+++ b/core/modules/quickedit/src/EditorSelector.php
@@ -50,21 +50,8 @@ public function __construct(PluginManagerInterface $editor_manager, FormatterPlu
    * {@inheritdoc}
    */
   public function getEditor($formatter_type, FieldItemListInterface $items) {
-    // Build a static cache of the editors that have registered themselves as
-    // alternatives to a certain editor.
-    if (!isset($this->alternatives)) {
-      $editors = $this->editorManager->getDefinitions();
-      foreach ($editors as $alternative_editor_id => $editor) {
-        if (isset($editor['alternativeTo'])) {
-          foreach ($editor['alternativeTo'] as $original_editor_id) {
-            $this->alternatives[$original_editor_id][] = $alternative_editor_id;
-          }
-        }
-      }
-    }
-
     // Check if the formatter defines an appropriate in-place editor. For
-    // example, text formatters displaying untrimmed text can choose to use the
+    // example, text formatters displaying plain text can choose to use the
     // 'plain_text' editor. If the formatter doesn't specify, fall back to the
     // 'form' editor, since that can work for any field. Formatter definitions
     // can use 'disabled' to explicitly opt out of in-place editing.
diff --git a/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php b/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php
index 08f4efa..1f61a56 100644
--- a/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php
+++ b/core/modules/quickedit/src/Plugin/InPlaceEditor/PlainTextEditor.php
@@ -21,16 +21,7 @@ public function isCompatible(FieldItemListInterface $items) {
     $field_definition = $items->getFieldDefinition();
 
     // This editor is incompatible with multivalued fields.
-    if ($field_definition->getFieldStorageDefinition()->getCardinality() != 1) {
-      return FALSE;
-    }
-    // This editor is incompatible with formatted ("rich") text fields.
-    elseif (in_array($field_definition->getType(), array('text', 'text_long', 'text_with_summary'), TRUE)) {
-      return FALSE;
-    }
-    else {
-      return TRUE;
-    }
+    return $field_definition->getFieldStorageDefinition()->getCardinality() == 1;
   }
 
   /**
diff --git a/core/modules/quickedit/tests/modules/quickedit_test.module b/core/modules/quickedit/tests/modules/quickedit_test.module
index cd12fc9..0f37aa6 100644
--- a/core/modules/quickedit/tests/modules/quickedit_test.module
+++ b/core/modules/quickedit/tests/modules/quickedit_test.module
@@ -18,3 +18,17 @@ function quickedit_test_quickedit_render_field(EntityInterface $entity, $field_n
     '#suffix' => '</div>',
   );
 }
+
+/**
+ * Implements hook_field_formatter_info_alter().
+ *
+ * @see quickedit_field_formatter_info_alter()
+ * @see editor_field_formatter_info_alter()
+ */
+function quickedit_test_field_formatter_info_alter(&$info) {
+  // Update \Drupal\text\Plugin\Field\FieldFormatter\TextDefaultFormatter's
+  // annotation to indicate that it supports the 'wysiwyg' in-place editor
+  // provided by this module.
+  $info['text_default']['quickedit'] = ['editor' => 'wysiwyg'];
+}
+
diff --git a/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php b/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php
index 8ce768f..596df75 100644
--- a/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php
+++ b/core/modules/quickedit/tests/modules/src/Plugin/InPlaceEditor/WysiwygEditor.php
@@ -10,7 +10,6 @@
  *
  * @InPlaceEditor(
  *   id = "wysiwyg",
- *   alternativeTo = {"plain_text"}
  * )
  */
 class WysiwygEditor extends InPlaceEditorBase {
@@ -28,12 +27,7 @@ public function isCompatible(FieldItemListInterface $items) {
     // This editor is compatible with formatted ("rich") text fields; but only
     // if there is a currently active text format and that text format is the
     // 'full_html' text format.
-    elseif (in_array($field_definition->getType(), array('text', 'text_long', 'text_with_summary'), TRUE)) {
-      if ($items[0]->format === 'full_html') {
-        return TRUE;
-      }
-      return FALSE;
-    }
+    return $items[0]->format === 'full_html';
   }
 
   /**
diff --git a/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php b/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
index c57a6a8..0a78114 100644
--- a/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
+++ b/core/modules/text/src/Plugin/Field/FieldFormatter/TextDefaultFormatter.php
@@ -15,9 +15,6 @@
  *     "text",
  *     "text_long",
  *     "text_with_summary",
- *   },
- *   quickedit = {
- *     "editor" = "plain_text"
  *   }
  * )
  */
