status-messages.html.twig

Same filename in this branch
  1. main core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  2. main core/themes/olivero/templates/misc/status-messages.html.twig
  3. main core/themes/stable9/templates/media-library/status-messages.html.twig
  4. main core/themes/claro/templates/misc/status-messages.html.twig
  5. main core/themes/starterkit_theme/templates/misc/status-messages.html.twig
  6. main core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  7. main core/modules/system/templates/status-messages.html.twig
  8. main core/themes/admin/templates/misc/status-messages.html.twig
Same filename and directory in other branches
  1. 10 core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  2. 10 core/themes/olivero/templates/misc/status-messages.html.twig
  3. 10 core/themes/stable9/templates/media-library/status-messages.html.twig
  4. 10 core/themes/claro/templates/misc/status-messages.html.twig
  5. 10 core/themes/starterkit_theme/templates/misc/status-messages.html.twig
  6. 11.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  7. 11.x core/themes/olivero/templates/misc/status-messages.html.twig
  8. 11.x core/themes/stable9/templates/media-library/status-messages.html.twig
  9. 11.x core/themes/claro/templates/misc/status-messages.html.twig
  10. 11.x core/themes/starterkit_theme/templates/misc/status-messages.html.twig
  11. 11.x core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  12. 11.x core/modules/system/templates/status-messages.html.twig
  13. 10 core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  14. 10 core/modules/system/templates/status-messages.html.twig
  15. 9 core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  16. 9 core/themes/olivero/templates/misc/status-messages.html.twig
  17. 9 core/themes/stable9/templates/media-library/status-messages.html.twig
  18. 9 core/themes/seven/templates/classy/misc/status-messages.html.twig
  19. 9 core/themes/claro/templates/misc/status-messages.html.twig
  20. 9 core/themes/bartik/templates/status-messages.html.twig
  21. 9 core/themes/stable/templates/misc/status-messages.html.twig
  22. 9 core/themes/starterkit_theme/templates/misc/status-messages.html.twig
  23. 9 core/themes/classy/templates/misc/status-messages.html.twig
  24. 9 core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  25. 9 core/modules/system/templates/status-messages.html.twig
  26. 8.9.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  27. 8.9.x core/themes/seven/templates/classy/misc/status-messages.html.twig
  28. 8.9.x core/themes/claro/templates/misc/status-messages.html.twig
  29. 8.9.x core/themes/bartik/templates/status-messages.html.twig
  30. 8.9.x core/themes/stable/templates/misc/status-messages.html.twig
  31. 8.9.x core/themes/classy/templates/misc/status-messages.html.twig
  32. 8.9.x core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  33. 8.9.x core/modules/system/templates/status-messages.html.twig
  34. 11.x core/themes/admin/templates/misc/status-messages.html.twig
  35. 11.x core/themes/default_admin/templates/misc/status-messages.html.twig

Theme override for status messages.

Displays status, error, and warning messages, grouped by type.

An invisible heading identifies the messages for assistive technology. Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html for info.

Each message block exposes an ARIA live region role so assistive technology user agents announce it appropriately: "alert" for errors and warnings (assertive) and "status" for other message types (polite). This matches the role assignment used by Drupal.theme.message() for messages added by JavaScript. The "contentinfo" landmark role is reserved for the page footer and is intentionally not used here, which avoids duplicate landmark and non-unique landmark accessibility violations.

Available variables:

  • message_list: List of messages to be displayed, grouped by type.
  • status_headings: List of all status types.
  • attributes: HTML attributes for the element, including:
    • class: HTML classes.
  • title_ids: A list of unique ids keyed by message type.

See also

\Drupal\default_admin\Hook\PreprocessHooks::preprocessStatusMessages()

6 theme calls to status-messages.html.twig
AnnounceRenderer::render in core/modules/announcements_feed/src/AnnounceRenderer.php
Generates the announcements feed render array.
ConfigFormBase::checkConfigOverrides in core/lib/Drupal/Core/Form/ConfigFormBase.php
Form #after_build callback: Adds message if overrides exist.
ContentTranslationHandler::entityFormSharedElements in core/modules/content_translation/src/ContentTranslationHandler.php
Process callback: determines which elements get clue in the form.
ContentTranslationHandlerTest::providerTestEntityFormSharedElements in core/modules/content_translation/tests/src/Kernel/ContentTranslationHandlerTest.php
Returns test cases for ::testEntityFormSharedElements().
LayoutBuilderEntityFormTrait::buildMessageContainer in core/modules/layout_builder/src/Form/LayoutBuilderEntityFormTrait.php
Build the message container.

... See full list

File

core/themes/default_admin/templates/misc/status-messages.html.twig

View source
  1. {#
  2. /**
  3. * @file
  4. * Theme override for status messages.
  5. *
  6. * Displays status, error, and warning messages, grouped by type.
  7. *
  8. * An invisible heading identifies the messages for assistive technology.
  9. * Sighted users see a colored box. See http://www.w3.org/TR/WCAG-TECHS/H69.html
  10. * for info.
  11. *
  12. * Each message block exposes an ARIA live region role so assistive technology
  13. * user agents announce it appropriately: "alert" for errors and warnings
  14. * (assertive) and "status" for other message types (polite). This matches the
  15. * role assignment used by Drupal.theme.message() for messages added by
  16. * JavaScript. The "contentinfo" landmark role is reserved for the page footer
  17. * and is intentionally not used here, which avoids duplicate landmark and
  18. * non-unique landmark accessibility violations.
  19. *
  20. * Available variables:
  21. * - message_list: List of messages to be displayed, grouped by type.
  22. * - status_headings: List of all status types.
  23. * - attributes: HTML attributes for the element, including:
  24. * - class: HTML classes.
  25. * - title_ids: A list of unique ids keyed by message type.
  26. *
  27. * @see \Drupal\default_admin\Hook\PreprocessHooks::preprocessStatusMessages()
  28. */
  29. #}
  30. <div data-drupal-messages class="messages-list">
  31. <div class="messages__wrapper">
  32. {% for type, messages in message_list %}
  33. {%
  34. set classes = [
  35. 'messages-list__item',
  36. 'messages',
  37. 'messages--' ~ type,
  38. ]
  39. %}
  40. {%
  41. set is_message_with_title = status_headings[type]
  42. %}
  43. {%
  44. set is_message_with_icon = type in ['error', 'status', 'warning']
  45. %}
  46. <div role="{{ type in ['error', 'warning'] ? 'alert' : 'status' }}" aria-labelledby="{{ title_ids[type] }}"{{ attributes.addClass(classes)|without('role', 'aria-label') }}>
  47. {% if is_message_with_title or is_message_with_icon %}
  48. <div class="messages__header">
  49. {% if is_message_with_title %}
  50. <h2 id="{{ title_ids[type] }}" class="messages__title">
  51. {{ status_headings[type] }}
  52. </h2>
  53. {% endif %}
  54. </div>
  55. {% endif %}
  56. <div class="messages__content">
  57. {% if messages|length > 1 %}
  58. <ul class="messages__list">
  59. {% for message in messages %}
  60. <li class="messages__item">{{ message }}</li>
  61. {% endfor %}
  62. </ul>
  63. {% else %}
  64. {{ messages|first }}
  65. {% endif %}
  66. </div>
  67. <button type="button" class="button button--dismiss js-message-button-hide" title="{{ 'Hide'|t }}">
  68. <span class="icon-close"></span>
  69. {{ 'Hide'|t }}
  70. </button>
  71. </div>
  72. {# Remove type specific classes. #}
  73. {% set attributes = attributes.removeClass(classes) %}
  74. {% endfor %}
  75. </div>
  76. </div>

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.