A menu that is visually persistent is a menubar. A menubar is typically horizontal and is often used to create a menu bar similar to those found near the top of the window in many desktop applications, offering the user quick access to a consistent set of commands.
Source: https://www.w3.org/TR/wai-aria-practices/#menu
Resources:
Requirements:
nav should have an aria-label that matches the label on the menubar since
it is a site navigation systemOur Side Navigation has approximately the following structure:
<!-- Top level container -->
<aside class="bx--side-nav">
<!-- Navigation wrapper for accessibility -->
<nav
class="bx--side-nav__navigation"
role="navigation"
aria-label="Navigation"
>
<!-- Has the title and an optionaly select menu rendered at the top of the side nav -->
<header class="bx--side-nav__header"></header>
<!-- Renders all of our navigation items -->
<ul class="bx--side-nav__items"></ul>
<!-- Renders the button to collapse or expand the side nav -->
<footer class="bx--side-nav__footer"></footer>
</nav>
</aside>
The header is mostly just an icon and a title for the local context of a page. For example, in IBM Cloud we would have IBM Cloud in the header and a product in the side navigation, like Containers.
The header also can optionally have a select that acts as a sub-menu that adds another navigation pattern to the page.
A side nav item is a <li> with the bx--side-nav__item class. Inside, we will
have a link or a category. Categories themselves have links inside of a menu.
Links can either be active, or in-active, and this status is reflected by using
an aria attribute aria-current="page" or by a class name.
Categories have a <button> as their target so that we can easily open/close
them using screen readers.
The footer itself is primary just a <button> that should handle expanding and
closing the side nav.
# |
Variable/token | Role | Theme value |
|---|---|---|---|
| 1 | $shell-header-bg-01 |
Header bar background | $gray-100 |
| 2 | $shell-header-bg-02 |
Header menu trigger hover | #2c2c2c |
| 3 | $shell-header-bg-03 |
Header action active background | $gray-80 |
| 4 | $shell-header-bg-04 |
Header nav link hover | #353535 |
| 5 | $shell-header-bg-05 |
Header nav link focus and active background | $gray-70 |
| 6 | $shell-header-bg-06 |
Header nav link submenu | $gray-90 |
| 7 | $shell-header-border-01 |
Header bar border bottom | $gray-80 |
| 8 | $shell-header-focus |
Header focus border | $white-0 |
| 9 | $shell-header-text-01 |
Primary text in header Title text |
$gray-10 |
| 8 | $shell-header-text-02 |
Secondary text in header Menu items |
$gray-30 |
| 10 | $shell-header-icon-01 |
Header menu trigger | $gray-10 |
| 11 | $shell-header-icon-02 |
Header bar action icons | $white-0 |
| 12 | $shell-header-link |
Header menu item link | $blue-60 |