block--secondary-menu.html.twig

Same filename in other branches
  1. 9 core/themes/olivero/templates/block/block--secondary-menu.html.twig
  2. 11.x core/themes/olivero/templates/block/block--secondary-menu.html.twig

Olivero's override for the User Account Menu navigation block.

Available variables:

  • plugin_id: The ID of the block implementation.
  • label: The configured label of the block if visible.
  • configuration: A list of the block's configuration values.
    • label: The configured label for the block.
    • label_display: The display settings for the label.
    • provider: The module or other provider that provided this block plugin.
    • Block plugin specific settings will also be stored here.
  • in_preview: Whether the plugin is being rendered in preview mode.
  • content: The content of this block.
  • attributes: HTML attributes for the containing element.
    • id: A valid HTML ID and guaranteed unique.
  • title_attributes: HTML attributes for the title element.
  • content_attributes: HTML attributes for the content element.
  • title_prefix: Additional output populated by modules, intended to be displayed in front of the main title tag that appears in the template.
  • title_suffix: Additional output populated by modules, intended to be displayed after the main title tag that appears in the template.

Headings should be used on navigation menus that consistently appear on multiple pages. When this menu block's label is configured to not be displayed, it is automatically made invisible using the 'visually-hidden' CSS class, which still keeps it visible for screen-readers and assistive technology. Headings allow screen-reader and keyboard only users to navigate to or skip the links. See https://juicystudio.com/article/screen-readers-display-none.php and https://www.w3.org/TR/WCAG-TECHS/H42.html for more information.

File

core/themes/olivero/templates/block/block--secondary-menu.html.twig

View source
  1. {#
  2. /**
  3. * @file
  4. * Olivero's override for the User Account Menu navigation block.
  5. *
  6. * Available variables:
  7. * - plugin_id: The ID of the block implementation.
  8. * - label: The configured label of the block if visible.
  9. * - configuration: A list of the block's configuration values.
  10. * - label: The configured label for the block.
  11. * - label_display: The display settings for the label.
  12. * - provider: The module or other provider that provided this block plugin.
  13. * - Block plugin specific settings will also be stored here.
  14. * - in_preview: Whether the plugin is being rendered in preview mode.
  15. * - content: The content of this block.
  16. * - attributes: HTML attributes for the containing element.
  17. * - id: A valid HTML ID and guaranteed unique.
  18. * - title_attributes: HTML attributes for the title element.
  19. * - content_attributes: HTML attributes for the content element.
  20. * - title_prefix: Additional output populated by modules, intended to be
  21. * displayed in front of the main title tag that appears in the template.
  22. * - title_suffix: Additional output populated by modules, intended to be
  23. * displayed after the main title tag that appears in the template.
  24. *
  25. * Headings should be used on navigation menus that consistently appear on
  26. * multiple pages. When this menu block's label is configured to not be
  27. * displayed, it is automatically made invisible using the 'visually-hidden' CSS
  28. * class, which still keeps it visible for screen-readers and assistive
  29. * technology. Headings allow screen-reader and keyboard only users to navigate
  30. * to or skip the links.
  31. * See https://juicystudio.com/article/screen-readers-display-none.php and
  32. * https://www.w3.org/TR/WCAG-TECHS/H42.html for more information.
  33. */
  34. #}
  35. {%
  36. set classes = [
  37. 'block',
  38. 'block-menu',
  39. 'navigation',
  40. 'menu--' ~ derivative_plugin_id|clean_class,
  41. 'secondary-nav',
  42. ]
  43. %}
  44. {% set heading_id = attributes.id ~ '-menu'|clean_id %}
  45. <nav {{ attributes.addClass(classes).setAttribute('aria-labelledby', heading_id).setAttribute('role', 'navigation') }}>
  46. {# Label. If not displayed, we still provide it for screen readers. #}
  47. {% if not configuration.label_display %}
  48. {% set title_attributes = title_attributes.addClass('visually-hidden') %}
  49. {% endif %}
  50. {{ title_prefix }}
  51. <span{{ title_attributes.setAttribute('id', heading_id) }}>{{ configuration.label }}</span>
  52. {{ title_suffix }}
  53. {# Menu. #}
  54. {% block content %}
  55. {{ content }}
  56. {% endblock %}
  57. </nav>

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