status-messages.html.twig

Same filename in this branch
  1. 11.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  2. 11.x core/themes/olivero/templates/misc/status-messages.html.twig
  3. 11.x core/themes/stable9/templates/media-library/status-messages.html.twig
  4. 11.x core/themes/claro/templates/misc/status-messages.html.twig
  5. 11.x core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  6. 11.x core/modules/system/templates/status-messages.html.twig
  7. 11.x core/themes/admin/templates/misc/status-messages.html.twig
  8. 11.x core/themes/default_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. 10 core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  7. 10 core/modules/system/templates/status-messages.html.twig
  8. 9 core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  9. 9 core/themes/olivero/templates/misc/status-messages.html.twig
  10. 9 core/themes/stable9/templates/media-library/status-messages.html.twig
  11. 9 core/themes/seven/templates/classy/misc/status-messages.html.twig
  12. 9 core/themes/claro/templates/misc/status-messages.html.twig
  13. 9 core/themes/bartik/templates/status-messages.html.twig
  14. 9 core/themes/stable/templates/misc/status-messages.html.twig
  15. 9 core/themes/starterkit_theme/templates/misc/status-messages.html.twig
  16. 9 core/themes/classy/templates/misc/status-messages.html.twig
  17. 9 core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  18. 9 core/modules/system/templates/status-messages.html.twig
  19. 8.9.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  20. 8.9.x core/themes/seven/templates/classy/misc/status-messages.html.twig
  21. 8.9.x core/themes/claro/templates/misc/status-messages.html.twig
  22. 8.9.x core/themes/bartik/templates/status-messages.html.twig
  23. 8.9.x core/themes/stable/templates/misc/status-messages.html.twig
  24. 8.9.x core/themes/classy/templates/misc/status-messages.html.twig
  25. 8.9.x core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  26. 8.9.x core/modules/system/templates/status-messages.html.twig
  27. main core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  28. main core/themes/olivero/templates/misc/status-messages.html.twig
  29. main core/themes/stable9/templates/media-library/status-messages.html.twig
  30. main core/themes/claro/templates/misc/status-messages.html.twig
  31. main core/themes/starterkit_theme/templates/misc/status-messages.html.twig
  32. main core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
  33. main core/modules/system/templates/status-messages.html.twig
  34. main core/themes/admin/templates/misc/status-messages.html.twig
  35. main 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 https://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.
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/starterkit_theme/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 https://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. */
  26. #}
  27. <div data-drupal-messages>
  28. {% block messages %}
  29. {% for type, messages in message_list %}
  30. {%
  31. set classes = [
  32. 'messages',
  33. 'messages--' ~ type,
  34. ]
  35. %}
  36. <div role="{{ type in ['error', 'warning'] ? 'alert' : 'status' }}" aria-label="{{ status_headings[type] }}"{{ attributes.addClass(classes)|without('role', 'aria-label') }}>
  37. {% if status_headings[type] %}
  38. <h2 class="visually-hidden">{{ status_headings[type] }}</h2>
  39. {% endif %}
  40. {% if messages|length > 1 %}
  41. <ul class="messages__list">
  42. {% for message in messages %}
  43. <li class="messages__item">{{ message }}</li>
  44. {% endfor %}
  45. </ul>
  46. {% else %}
  47. {{ messages|first }}
  48. {% endif %}
  49. </div>
  50. {# Remove type specific classes. #}
  51. {% set attributes = attributes.removeClass(classes) %}
  52. {% endfor %}
  53. {% endblock messages %}
  54. </div>

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