Skip to content

Landmark Navigation

DodaTech 3 min read

title: "Landmark Navigation — ARIA Landmarks for Page Structure" description: "Learn how ARIA landmark roles (banner, navigation, main, complementary, contentinfo) create a navigable page structure for screen reader users." weight: 5 date: 2026-06-28 lastmod: 2026-06-28 tags: [accessibility, navigation]


ARIA landmark roles define the structure of a page, allowing screen reader users to jump between major regions like header, navigation, main content, and footer.

## What You'll Learn

The six standard ARIA landmark roles, how to use them, and how they improve screen reader navigation.

## Why It Matters

Landmarks are the primary way screen reader users navigate pages. Without landmarks, users must tab through all interactive elements to find what they need.

## Real-World Use

A screen reader user opens a long documentation page. They open the landmarks list and see "Banner, Navigation: Main, Main, Complementary (Table of Contents), Contentinfo." They jump directly to the table of contents to find the relevant section.

## Landmark Roles

```html
<header role="banner">
  <a href="/" aria-label="Home">
    <img src="logo.svg" alt="DodaTech">
  </a>
</header>

<nav aria-label="Main" role="navigation">
  <ul>
    <li><a href="/">Home</a></li>
  </ul>
</nav>

<main role="main">
  <h1>Page title</h1>
  <p>Main content here.</p>
</main>

<aside role="complementary" aria-labelledby="sidebar-heading">
  <h2 id="sidebar-heading">Related articles</h2>
  <ul>
    <li><a href="/related">Related article</a></li>
  </ul>
</aside>

<footer role="contentinfo">
  <p>Copyright 2026 DodaTech</p>
</nav>

HTML5 Element Mapping

HTML5 elements map to landmarks automatically:

  • header (not nested in main/aside/footer) -> banner
  • nav -> navigation
  • main -> main
  • aside (not nested in main) -> complementary
  • footer (not nested in main/aside) -> contentinfo

Search Landmark

<form role="search" aria-label="Search the site">
  <label for="site-search" class="sr-only">Search</label>
  <input type="search" id="site-search" name="q" autocomplete="search">
  <button type="submit">Search</button>
</form>

Common Mistakes

1. Missing main landmark

Every page needs exactly one main landmark marking the primary content.

2. Multiple main landmarks

There should be exactly one main element per page.

3. Using role=contentinfo on nested footers

The footer of an article or section should not use role=contentinfo. Only the page-level footer uses this role.

4. Forgetting the banner role

The site header should have role=banner (or use the header element in the correct context).

5. Landmarks without labels when duplicated

Multiple navigation or complementary regions need unique labels.

Practice Questions

1. How many main landmarks should a page have? Exactly one. The main landmark contains the primary content unique to that page.

2. What landmark role does the HTML header element provide? role=banner, but only when the header is at the top level of the page, not nested inside article or aside.

3. How does a screen reader user access landmarks? Through the landmarks list in the screen reader (NVDA: Insert + F7 > Landmarks, VoiceOver: Rotor > Landmarks).

Challenge: Add all six landmark roles to a page. Verify each appears in the screen reader landmarks list with a descriptive label where needed.

FAQ

Do I need to add role attributes if I use semantic HTML5 elements?

In modern browsers, no. But adding them ensures compatibility with older user agents.

What landmark role does a search form use?

role=search. This is different from role=navigation and creates a dedicated search landmark.

Can I have a form with role=search inside the main element?

Yes. The search landmark is independent of the main landmark and can appear anywhere.

What about the form element itself?

A form element does not create a landmark by default. Use role=search or role=form to make it a navigable region.

Are landmarks required by WCAG?

Yes. Success Criterion 1.3.1 (Info and Relationships) requires that page regions be programmatically determinable. Landmarks satisfy this.

Mini Project

Build a complete page template with header/banner, navigation, search, main content, complementary sidebar, and footer. Add landmarks and test screen reader landmark navigation.

What's Next

Learn about Accessible Breadcrumbs and how to implement breadcrumb navigation with proper ARIA attributes and aria-current.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro