diff --git a/core/misc/announce.js b/core/misc/announce.js
index 00ce14b..23c6ebd 100644
--- a/core/misc/announce.js
+++ b/core/misc/announce.js
@@ -27,14 +27,20 @@
    */
   Drupal.behaviors.drupalAnnounce = {
     attach: function (context) {
-      // Create only one aria-live element.
-      if (!liveElement) {
+       // Create only one aria-live element. Check for a live element in
+       // the parent window to address of the case of a page loading
+       // in the overlay or an iframe.
+       var el = parent.window.document.getElementById('drupal-live-announce');
+       if (el) {
+         liveElement = el;
+       }
+       else {
         liveElement = document.createElement('div');
         liveElement.id = 'drupal-live-announce';
         liveElement.className = 'visually-hidden';
         liveElement.setAttribute('aria-live', 'polite');
         liveElement.setAttribute('aria-busy', 'false');
-        document.body.appendChild(liveElement);
+        parent.window.document.body.appendChild(liveElement);
       }
     }
   };
diff --git a/core/misc/tabledrag.js b/core/misc/tabledrag.js
index f3c6c9e..e00e12a 100644
--- a/core/misc/tabledrag.js
+++ b/core/misc/tabledrag.js
@@ -1259,6 +1259,14 @@
       return '<div class="indentation">&nbsp;</div>';
     },
     tableDragChangedWarning: function () {
+    var text = Drupal.t('!changeMarker Changes made in this table will not be saved until the form is submitted.', {
+      '!changeMarker': Drupal.theme('tableDragChangedMarker')
+    });
+    // Announce the changes.
+    Drupal.announce(text);
+
+    return '<div class="tabledrag-changed-warning messages warning">' + text + '</div>';
+
       return '<div class="tabledrag-changed-warning messages messages--warning" role="alert">' + Drupal.theme('tableDragChangedMarker') + ' ' + Drupal.t('You have unsaved changes.') + '</div>';
     }
   });
diff --git a/core/modules/block/block.js b/core/modules/block/block.js
index 302c315..7913bea 100644
--- a/core/modules/block/block.js
+++ b/core/modules/block/block.js
@@ -131,4 +131,16 @@
     }
   };
 
+// A custom message for the blocks page specifically.
+Drupal.theme.tableDragChangedWarning = function () {
+  var text = Drupal.t('!changeMarker The changes to these blocks will not be saved until the %button button is clicked.', {
+    '!changeMarker': Drupal.theme('tableDragChangedMarker'),
+    '%button': Drupal.t('Save blocks')
+  });
+  // Announce the changes.
+  Drupal.announce(text);
+
+  return '<div class="messages warning">' + text + '</div>';
+};
+
 })(jQuery, window);
