1. 8.5.x core/themes/stable/templates/misc/status-messages.html.twig
  2. 8.5.x core/modules/system/templates/status-messages.html.twig
  3. 8.5.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  4. 8.5.x core/themes/classy/templates/misc/status-messages.html.twig
  5. 8.5.x core/themes/bartik/templates/status-messages.html.twig
  6. 8.0.x core/themes/classy/templates/misc/status-messages.html.twig
  7. 8.0.x core/themes/bartik/templates/status-messages.html.twig
  8. 8.0.x core/themes/stable/templates/misc/status-messages.html.twig
  9. 8.0.x core/modules/system/templates/status-messages.html.twig
  10. 8.1.x core/themes/classy/templates/misc/status-messages.html.twig
  11. 8.1.x core/modules/system/templates/status-messages.html.twig
  12. 8.1.x core/themes/stable/templates/misc/status-messages.html.twig
  13. 8.1.x core/themes/bartik/templates/status-messages.html.twig
  14. 8.2.x core/modules/system/templates/status-messages.html.twig
  15. 8.2.x core/themes/bartik/templates/status-messages.html.twig
  16. 8.2.x core/themes/classy/templates/misc/status-messages.html.twig
  17. 8.2.x core/themes/stable/templates/misc/status-messages.html.twig
  18. 8.3.x core/themes/classy/templates/misc/status-messages.html.twig
  19. 8.3.x core/modules/system/templates/status-messages.html.twig
  20. 8.3.x core/themes/stable/templates/misc/status-messages.html.twig
  21. 8.3.x core/themes/bartik/templates/status-messages.html.twig
  22. 8.4.x core/modules/system/templates/status-messages.html.twig
  23. 8.4.x core/themes/stable/templates/misc/status-messages.html.twig
  24. 8.4.x core/themes/classy/templates/misc/status-messages.html.twig
  25. 8.4.x core/themes/bartik/templates/status-messages.html.twig
  26. 8.6.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
  27. 8.6.x core/themes/stable/templates/misc/status-messages.html.twig
  28. 8.6.x core/themes/bartik/templates/status-messages.html.twig
  29. 8.6.x core/modules/system/templates/status-messages.html.twig
  30. 8.6.x core/themes/classy/templates/misc/status-messages.html.twig

Default theme implementation 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.

Add an ARIA label to the contentinfo area so that assistive technology user agents will better describe this landmark.

Available variables:

  • message_list: List of messages to be displayed, grouped by type.
  • status_headings: List of all status types.
  • display: (optional) May have a value of 'status' or 'error' when only displaying messages of that specific type.
  • attributes: HTML attributes for the element, including:
    • class: HTML classes.
1 theme call to status-messages.html.twig
StatusMessages::renderMessages in core/lib/Drupal/Core/Render/Element/StatusMessages.php
#lazy_builder callback; replaces placeholder with messages.

File

core/modules/system/templates/status-messages.html.twig
View source
  1. {#
  2. /**
  3. * @file
  4. * Default theme implementation 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. * Add an ARIA label to the contentinfo area so that assistive technology
  13. * user agents will better describe this landmark.
  14. *
  15. * Available variables:
  16. * - message_list: List of messages to be displayed, grouped by type.
  17. * - status_headings: List of all status types.
  18. * - display: (optional) May have a value of 'status' or 'error' when only
  19. * displaying messages of that specific type.
  20. * - attributes: HTML attributes for the element, including:
  21. * - class: HTML classes.
  22. *
  23. * @ingroup themeable
  24. */
  25. #}
  26. {% for type, messages in message_list %}
  27. <div role="contentinfo" aria-label="{{ status_headings[type] }}"{{ attributes|without('role', 'aria-label') }}>
  28. {% if type == 'error' %}
  29. <div role="alert">
  30. {% endif %}
  31. {% if status_headings[type] %}
  32. <h2 class="visually-hidden">{{ status_headings[type] }}</h2>
  33. {% endif %}
  34. {% if messages|length > 1 %}
  35. <ul>
  36. {% for message in messages %}
  37. <li>{{ message }}</li>
  38. {% endfor %}
  39. </ul>
  40. {% else %}
  41. {{ messages|first }}
  42. {% endif %}
  43. {% if type == 'error' %}
  44. </div>
  45. {% endif %}
  46. </div>
  47. {% endfor %}

Related topics