← Back to guides

Landmark Regions

Named page zones for keyboard and screen reader users

Structure region

Landmark regions are HTML elements that divide a page into named, navigable zones. They are how screen reader users orient themselves and skip around a page without listening to everything in sequence.

The core landmarks

ElementRolePurpose
<header>bannerSite header, logo, top-level navigation
<nav>navigationA set of navigation links
<main>mainThe primary content of the page
<footer>contentinfoSite footer
<aside>complementarySecondary content related to the main content
<section aria-label="...">regionA named section when no other landmark applies

Content that sits outside all of these regions is considered unlabeled. A screen reader user navigating by landmark has no way to reach it directly.

Why it matters

Landmarks let users jump directly to content zones. A user who wants the main content does not need to Tab through the entire header and navigation - they jump straight to <main>. A user who wants the navigation jumps to <nav>.

Without landmarks, the page is a flat sequence. Everything must be read or tabbed through in order - a significant burden on pages with large headers, multiple menus, sidebars, and footers.

What goes wrong

The most common cause is layout built with generic <div> containers. A <div class="header"> looks like a header visually but provides no landmark to assistive technology. Class names are invisible to screen readers.

How to fix

Replace non-semantic containers with the appropriate HTML element:

<!-- Before -->
<div class="header">...</div>
<div class="main-content">...</div>
<div class="footer">...</div>

<!-- After -->
<header>...</header>
<main>...</main>
<footer>...</footer>

For content that does not fit a standard landmark, use <section> with an aria-label:

<section aria-label="Recent announcements">
  ...
</section>

If a page has multiple <nav> elements, give each one a label so users can distinguish them:

<nav aria-label="Primary">
<nav aria-label="Footer">

Quick check

In Chrome DevTools, open the Accessibility panel and look at the landmark tree. Every visible section of the page should be represented. Content that does not appear is outside all landmarks.

WCAG criteria

Referenced criteria
1.3.6 Identify Purpose (opens in a new tab) - The purpose of user interface components can be programmatically determined. AA
2.4.1 Bypass Blocks (opens in a new tab) - A mechanism exists to skip repeated content. A