status-messages.html.twig
Same filename in this branch
- 11.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
- 11.x core/themes/olivero/templates/misc/status-messages.html.twig
- 11.x core/themes/stable9/templates/media-library/status-messages.html.twig
- 11.x core/themes/claro/templates/misc/status-messages.html.twig
- 11.x core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
- 11.x core/modules/system/templates/status-messages.html.twig
- 11.x core/themes/admin/templates/misc/status-messages.html.twig
- 11.x core/themes/default_admin/templates/misc/status-messages.html.twig
Same filename and directory in other branches
- 10 core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
- 10 core/themes/olivero/templates/misc/status-messages.html.twig
- 10 core/themes/stable9/templates/media-library/status-messages.html.twig
- 10 core/themes/claro/templates/misc/status-messages.html.twig
- 10 core/themes/starterkit_theme/templates/misc/status-messages.html.twig
- 10 core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
- 10 core/modules/system/templates/status-messages.html.twig
- 9 core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
- 9 core/themes/olivero/templates/misc/status-messages.html.twig
- 9 core/themes/stable9/templates/media-library/status-messages.html.twig
- 9 core/themes/seven/templates/classy/misc/status-messages.html.twig
- 9 core/themes/claro/templates/misc/status-messages.html.twig
- 9 core/themes/bartik/templates/status-messages.html.twig
- 9 core/themes/stable/templates/misc/status-messages.html.twig
- 9 core/themes/starterkit_theme/templates/misc/status-messages.html.twig
- 9 core/themes/classy/templates/misc/status-messages.html.twig
- 9 core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
- 9 core/modules/system/templates/status-messages.html.twig
- 8.9.x core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
- 8.9.x core/themes/seven/templates/classy/misc/status-messages.html.twig
- 8.9.x core/themes/claro/templates/misc/status-messages.html.twig
- 8.9.x core/themes/bartik/templates/status-messages.html.twig
- 8.9.x core/themes/stable/templates/misc/status-messages.html.twig
- 8.9.x core/themes/classy/templates/misc/status-messages.html.twig
- 8.9.x core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
- 8.9.x core/modules/system/templates/status-messages.html.twig
- main core/profiles/demo_umami/themes/umami/templates/components/messages/status-messages.html.twig
- main core/themes/olivero/templates/misc/status-messages.html.twig
- main core/themes/stable9/templates/media-library/status-messages.html.twig
- main core/themes/claro/templates/misc/status-messages.html.twig
- main core/themes/starterkit_theme/templates/misc/status-messages.html.twig
- main core/modules/system/tests/themes/test_messages/templates/status-messages.html.twig
- main core/modules/system/templates/status-messages.html.twig
- main core/themes/admin/templates/misc/status-messages.html.twig
- 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.
File
-
core/
themes/ starterkit_theme/ templates/ misc/ status-messages.html.twig
View source
- {#
- /**
- * @file
- * 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.
- */
- #}
- <div data-drupal-messages>
- {% block messages %}
- {% for type, messages in message_list %}
- {%
- set classes = [
- 'messages',
- 'messages--' ~ type,
- ]
- %}
- <div role="{{ type in ['error', 'warning'] ? 'alert' : 'status' }}" aria-label="{{ status_headings[type] }}"{{ attributes.addClass(classes)|without('role', 'aria-label') }}>
- {% if status_headings[type] %}
- <h2 class="visually-hidden">{{ status_headings[type] }}</h2>
- {% endif %}
- {% if messages|length > 1 %}
- <ul class="messages__list">
- {% for message in messages %}
- <li class="messages__item">{{ message }}</li>
- {% endfor %}
- </ul>
- {% else %}
- {{ messages|first }}
- {% endif %}
- </div>
- {# Remove type specific classes. #}
- {% set attributes = attributes.removeClass(classes) %}
- {% endfor %}
- {% endblock messages %}
- </div>
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.