ARIA Landmark Roles
ARIA Landmark Roles
ARIA landmark roles define regions of a page that assistive technologies can identify and navigate to directly. These roles create a structural map enabling efficient page navigation for screen reader users.
What Are ARIA Landmark Roles
ARIA (Accessible Rich Internet Applications) landmark roles are attributes that identify the purpose of page regions. When applied to elements, these roles signal to assistive technologies that the content serves a specific structural function.
The standard ARIA landmark roles include:
- banner: Page header containing site-wide content
- navigation: Collections of navigation links
- main: Primary page content
- complementary: Supporting content related to main content
- contentinfo: Page footer with metadata and copyright
- region: Generic landmark requiring a name
- search: Search functionality
- form: Form content (when it serves as a landmark)
Screen readers expose these roles to users through landmark navigation commands. Users can list all landmarks, hear their names, and jump directly to any landmark.
How ARIA Landmark Roles Work
Landmark roles apply to container elements using the role attribute. Any element can become a landmark by receiving an appropriate role, though semantic HTML elements are generally preferred.
HTML5 semantic elements create implicit landmarks that match ARIA roles. The nav element implicitly has role=“navigation”. The main element implicitly has role=“main”. Using semantic elements provides landmarks without explicit role attributes.
Explicit ARIA roles become necessary when semantic elements cannot be used or when legacy markup requires accessibility enhancement. A div serving as a navigation container would need role=“navigation” explicitly.
Accessible names distinguish multiple landmarks of the same type. A page with primary navigation and footer navigation would use aria-label to identify each: aria-label=“Primary” on one navigation, aria-label=“Footer” on the other. Screen readers announce these labels when users navigate between landmarks.
The scope of landmark benefits extends beyond navigation. Landmarks help users understand page organization, identify where they are on the page, and maintain orientation while reading or navigating.
Key Considerations
- Prefer HTML5 semantic elements over explicit ARIA roles when possible
- Use exactly one main landmark per page
- Provide accessible names for multiple landmarks of the same type
- Avoid role=“presentation” or role=“none” on meaningful landmarks
- Do not use landmark roles on elements that do not truly serve landmark purposes
- Ensure landmarks contain the expected content types
- Test landmark announcements with screen readers to verify naming
Common Questions
When should ARIA roles be used instead of HTML5 elements?
HTML5 semantic elements should be the default choice because they provide landmarks implicitly while also conveying semantics to other tools and contexts. ARIA roles work best for enhancing legacy markup that cannot change element types.
Some edge cases warrant explicit roles. A search form might use role=“search” to identify its purpose more specifically than a generic form element. A section that needs landmark status requires an accessible name anyway, so adding role=“region” and aria-label together clarifies intent.
How do landmark roles interact with heading structure?
Landmarks and headings provide complementary navigation systems. Headings create a content outline navigable through heading commands. Landmarks identify structural regions navigable through landmark commands. Both should exist and work together.
A navigation landmark typically does not need its own heading visible on screen, though an aria-label identifies it for screen reader users. The main landmark often begins with or contains the page’s h1. Combining clear landmark structure with logical heading hierarchy provides robust navigation options.
What makes a region a landmark versus just a section?
Not every section of content needs landmark status. Landmarks should represent major page divisions that users might want to navigate to directly. A page with twenty landmarks loses the benefit of having a concise navigation menu.
The region role specifically requires an accessible name to become a landmark. This requirement reflects the intention that region landmarks should be purposeful and named, not generic containers. Use region sparingly for content sections that genuinely warrant direct navigation access.
Summary
ARIA landmark roles identify page regions for assistive technology navigation through roles like banner, navigation, main, and complementary. While HTML5 semantic elements provide implicit landmarks, explicit ARIA roles enhance accessibility when semantic markup cannot be used or additional specificity is needed.
Buoy scans your codebase for design system inconsistencies before they ship
Detect Design Drift Free