Usage

Menu popover buttons come in several forms: from a simple dropdown of links to more expansive mega-nav menus.

Don’t overcomplicate this

  • Do not add role="menu" or role="option" to the markup.
    • These roles imply additional keyboard functionality will be present
    • Unless you’re building actual Web based software like Gmail, this is unnecessary
Current support:
Not baseline. This simple example uses the popover API with anchor positioning which has the most support in Chrome (Safari, Firefox etc. may not yet support this and will require a polyfill).
<nav class="popover">
  <ul>
    <li>
      <button class="popover-toggle menu"  popovertarget="nav-popover">
        Menu
      </button>
      <ul id="nav-popover" class="popover-surface" popover>
        <li>
          <a href="/accessible-design/">Design</a>
        </li>
        <li>
          <a href="/accessible-web/">Web</a>
        </li>
        <li>
          <a href="/accessible-ios/">iOS</a>
        </li>
        <li>
          <a href="/accessible-android/">Android</a>
        </li>
      </ul>
    </li>
  </ul>
</nav>

Further reading