Mobile Accessibility Guidelines - Structure
Containers and landmarks should
Containers should be used to describe page/screen structure, as supported by the platform.
The visual layout of a page or screen groups elements to help people understand the structure of the content. Containers help assistive technology, such as screen readers, to describe groups of elements so that people who cannot see the visual layout can also understand the content structure. Screen reader users can also use containers and landmarks to quickly navigate within a page or screen.
Semantic structural elements and/or ARIA landmarks are available for HTML. Structural containers are available for native apps.
iOS
Use native controllers such as UINavigationController
, UITabBarController
and UISplitViewController
to organise screen content. This allows VoiceOver users to easily navigate between sections of the screen.
Android
Currently, Android does not support a mechanism for navigating between containers within native applications. It is only possible to navigate through one single element at a time.
HTML
Use either WAI-ARIA landmark roles or HTML sectioning elements to identify common sections of page content (such as the main content section, navigation, header, and footer).
The available WAI-ARIA landmark roles are:
banner
navigation
search
main
complimentary
article
section
contentinfo
The HTML5 sectioning elements are:
header
nav
main
aside
article
section
footer
Note that the required landmark semantics are already built in to the equivalent HTML5 elements, so it is not necessary to apply a separate WAI-ARIA role when applying those elements to a page.
For more information, refer to: .
Note: When using HTML sectioning elements and roles, all content should be inside a sectioning element rather than just a descendant of the body element.
HTML Pass Example
<div id="header" role="banner">
<div id="navigation" role="navigation">
<ul>
<li><a href="…">91Èȱ¬</a></li>
<li><a href="…">About Us</a></li>
<li><a href="…">Contact Us</a></li>
</ul>
</div>
</div>
<main id="mainContent" role="main">
<h1>91Èȱ¬</h1>
…
Testing
Procedures
- Activate a screen reader.
- Verify that containers are used to structure the page:
- For HTML pages these must be appropriate sectioning elements, or non-semantic containers with an ARIA landmark role, for each part of the page that has an equivalent ARIA landmark,
- For HTML pages in mobile Safari each part of the page that has an equivalent ARIA landmark must be navigable by selecting ‘Landmarks’ in the Rotor menu.
- For HTML pages in mobile Chrome each part of the page that has an equivalent ARIA landmark must be navigable by selecting ‘Headings and landmarks’ in the Local context menu.
Outcome
The following check is true:
The page is structured with appropriate containers:
- HTML pages announced appropriate containers for each part of the page with an ARIA equivalent landmark;
- iOS pages containers could be navigated to as landmarks;
- Android pages containers could be navigated to as landmarks.