Home
Sample content section. Activating a link above will update and navigate to this region.
How to build accessibility semantics into web patterns and widgets
This is an illustrative example of one way of using ARIA that conforms with the ARIA specification.
Although this example uses the word "menu" in the colloquial sense to refer to a set of navigation links, it does not use the WAI-ARIA menu role. This implementation of site navigation does not use the menu role because it does not provide the complex functionality that assistive technologies expect in a widget that has the menu role. Typical site navigation does not need all the keyboard interactions specified by the menu and menubar pattern.
The following example demonstrates using the Disclosure Pattern to show and hide dropdown lists of links in a navigation bar for a mythical university web site. Unlike the other disclosure navigation menu example, this example includes top-level links alongside the disclosure buttons.
Similar examples include:
This example demonstrates two different ways of implementing keyboard support. Toggle between them with the following checkbox.
Sample content section. Activating a link above will update and navigate to this region.
Mythical University.
grid
, that is expected to occupy only one stop in the page Tab sequence and manage focus for all its descendants.
Key | Function |
---|---|
Tab Shift + Tab |
Move keyboard focus among top-level links and buttons, and if a dropdown is open, through links in the dropdown. |
Space or Enter |
|
Escape | If a dropdown is open, closes it and sets focus on the button that controls that dropdown. |
Down Arrow or Right Arrow (Optional) |
|
Up Arrow or Left Arrow (Optional) |
|
Home (Optional) |
|
End (Optional) |
|
Role | Attribute | Element | Usage |
---|---|---|---|
aria-controls="IDREF"
|
button
|
Indicates that the disclosure button controls visibility of the container identified by the IDREF value. |
|
aria-expanded="false"
|
button
|
|
|
aria-expanded="true"
|
button
|
|
|
aria-current="page"
|
a
|
Indicates that the page referenced by the link is currently displayed. |
To copy the following HTML code, please open it in CodePen.