From a2f5778f5646d075923538a7588bb2bd3e46ab24 Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Fri, 29 Nov 2019 12:53:41 +0000
Subject: [PATCH] Issue #3087405 by andrewmacpherson, bnjmnm, phenaproxima,
 rainbreaw, annagaz, cboyden: For screenreader users using the media and media
 library UI, the words "remove" and "removed" sound too similar

---
 .../src/Plugin/Field/FieldWidget/MediaLibraryWidget.php   | 4 +++-
 .../FunctionalJavascript/EntityReferenceWidgetTest.php    | 8 ++++----
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php b/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php
index 453d6180654a..ac9cb3b51056 100644
--- a/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php
+++ b/core/modules/media_library/src/Plugin/Field/FieldWidget/MediaLibraryWidget.php
@@ -667,7 +667,9 @@ public static function updateWidget(array $form, FormStateInterface $form_state)
 
     // Announce the updated content to screen readers.
     if ($is_remove_button) {
-      $announcement = t('Removed @label.', ['@label' => Media::load($field_state['removed_item_id'])->label()]);
+      $announcement = t('@label has been removed.', [
+        '@label' => Media::load($field_state['removed_item_id'])->label(),
+      ]);
     }
     else {
       $new_items = count(static::getNewMediaItems($element, $form_state));
diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php
index 46d86181fd87..4d8ee6060f99 100644
--- a/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php
+++ b/core/modules/media_library/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php
@@ -201,7 +201,7 @@ public function testWidget() {
     $button = $assert_session->buttonExists('Remove', $wrapper);
     $this->assertSame('Remove Dog', $button->getAttribute('aria-label'));
     $button->press();
-    $this->waitForText('Removed Dog.');
+    $this->waitForText('Dog has been removed.');
     // Assert the focus is set back on the open button of the media field.
     $this->assertJsCondition('jQuery("#field_twin_media-media-library-wrapper .js-media-library-open-button").is(":focus")');
 
@@ -218,9 +218,9 @@ public function testWidget() {
     $assert_session->hiddenFieldValueEquals('field_twin_media[selection][0][target_id]', 4);
     $assert_session->hiddenFieldValueEquals('field_twin_media[selection][1][target_id]', 4);
     $wrapper->pressButton('Remove');
-    $this->waitForText('Removed Dog.');
+    $this->waitForText('Dog has been removed.');
     $wrapper->pressButton('Remove');
-    $this->waitForText('Removed Dog.');
+    $this->waitForText('Dog has been removed.');
     $result = $wrapper->waitFor(10, function ($wrapper) {
       /** @var \Behat\Mink\Element\NodeElement $wrapper */
       return $wrapper->findButton('Remove') == NULL;
@@ -302,7 +302,7 @@ public function testWidget() {
     $button = $assert_session->buttonExists('Remove', $wrapper);
     $this->assertSame('Remove Cat', $button->getAttribute('aria-label'));
     $button->press();
-    $this->waitForText('Removed Cat.');
+    $this->waitForText('Cat has been removed.');
     // Assert the focus is set to the wrapper of the other selected item.
     $this->assertJsCondition('jQuery("#field_twin_media-media-library-wrapper [data-media-library-item-delta]").is(":focus")');
     $assert_session->elementTextNotContains('css', '#field_twin_media-media-library-wrapper', 'Cat');
-- 
GitLab