Skip to content

Latest commit

 

History

History
48 lines (39 loc) · 1.87 KB

File metadata and controls

48 lines (39 loc) · 1.87 KB
category menu_navigation
category_description Accessible menus and hierarchical navigation.

Overview

Menus organise links and commands; hierarchical menus need clear structure and keyboard support. Use lists for simple nav and ARIA menu roles for complex menus.

Relevant WCAG 2.1 success criteria

Technical guidance

  • For simple nav, use a <ul> with <li> containing <a> links.
  • For complex menus, set role="menubar" on the root, role="menuitem" on each item and role="menu" on submenus; manage aria-haspopup and aria-expanded.
  • Support arrow key navigation according to orientation (horizontal or vertical) and provide Esc to close submenus.
  • Provide clear focus styling on each menu item; hide submenus when not active.

Code example

Simple nav

<nav>
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/blog">Blog</a></li>
    <li><a href="/contact">Contact</a></li>
  </ul>
</nav>

Menu with submenu

<ul role="menubar">
  <li role="none">
    <button role="menuitem" aria-haspopup="true" aria-expanded="false">Products</button>
    <ul role="menu" hidden>
      <li role="none"><a role="menuitem" href="/phones">Phones</a></li>
      <li role="none"><a role="menuitem" href="/tablets">Tablets</a></li>
    </ul>
  </li>
</ul>