diff -u b/core/misc/message.es6.js b/core/misc/message.es6.js
--- b/core/misc/message.es6.js
+++ b/core/misc/message.es6.js
@@ -209,25 +209,27 @@
* @return {HTMLElement}
* A DOM Node.
*/
- Drupal.theme.message = (message, options) => {
+ Drupal.theme.message = ({ text }, options) => {
const messagesTypes = Drupal.message.getMessageTypes();
const messageWraper = document.createElement('div');
- let messageText = message.text;
+ // let messageText = message.text;
+ const messageText = document.createElement('h2');
+ messageText.setAttribute('class', 'visually-hidden');
+
messageWraper.setAttribute('class', `messages messages--${options.type}`);
messageWraper.setAttribute('role', 'contentinfo');
messageWraper.setAttribute('data-drupal-message-id', options.id);
messageWraper.setAttribute('data-drupal-message-type', options.type);
if (options.type in messagesTypes) {
messageWraper.setAttribute('aria-label', messagesTypes[options.type]);
- messageText = `
${messagesTypes[options.type]}
\n${message.text}`;
+ messageText.innerHTML = messagesTypes[options.type];
}
// Alerts have a different HTML structure
if (options.type === 'error') {
- const ariaAlert = document.createElement('div');
- ariaAlert.setAttribute('role', 'alert');
- ariaAlert.innerHTML = messageText;
- messageWraper.appendChild(ariaAlert);
+ messageText.setAttribute('role', 'alert');
+ messageWraper.innerHTML = text;
+ messageWraper.insertAdjacentElement('afterbegin', messageText);
}
else {
messageWraper.innerHTML = messageText;
diff -u b/core/misc/message.js b/core/misc/message.js
--- b/core/misc/message.js
+++ b/core/misc/message.js
@@ -110,24 +110,28 @@
return _class;
}();
- Drupal.theme.message = function (message, options) {
+ Drupal.theme.message = function (_ref, options) {
+ var text = _ref.text;
+
var messagesTypes = Drupal.message.getMessageTypes();
var messageWraper = document.createElement('div');
- var messageText = message.text;
+
+ var messageText = document.createElement('h2');
+ messageText.setAttribute('class', 'visually-hidden');
+
messageWraper.setAttribute('class', 'messages messages--' + options.type);
messageWraper.setAttribute('role', 'contentinfo');
messageWraper.setAttribute('data-drupal-message-id', options.id);
messageWraper.setAttribute('data-drupal-message-type', options.type);
if (options.type in messagesTypes) {
messageWraper.setAttribute('aria-label', messagesTypes[options.type]);
- messageText = '' + messagesTypes[options.type] + '
\n' + message.text;
+ messageText.innerHTML = messagesTypes[options.type];
}
if (options.type === 'error') {
- var ariaAlert = document.createElement('div');
- ariaAlert.setAttribute('role', 'alert');
- ariaAlert.innerHTML = messageText;
- messageWraper.appendChild(ariaAlert);
+ messageText.setAttribute('role', 'alert');
+ messageWraper.innerHTML = text;
+ messageWraper.insertAdjacentElement('afterbegin', messageText);
} else {
messageWraper.innerHTML = messageText;
}