Structure & headings
The Page Has No Main Content Area Marked Up
Screen reader users can't jump straight to the page's main content, so they must wade through the header and menus on every page.
landmark-one-mainBest practiceBest practice — not a WCAG requirement, but it helps people all the same.
- Status
- ModerateModerate — An annoyance, with a workaround.CurrentScanners run this rule today.
- Owner
- DesignDevTest
- Audit
- AutomatedA scanner finds it, and a clean scan means it's fixed.
Why it matters
A <main> element marks where the page's real content starts. It's a "landmark": a signpost screen readers can jump to with one key.
Without it, people must step through the logo, search and menu on every page. That's slow and tiring, and it's easy to get lost.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | They press the landmark key and hear "no main landmark", then must step through the whole header. | High impact |
| Low-vision users (magnification) | Affected only if they also use a screen reader, as many do. | Partial impact |
| Keyboard-only users | Some browser extensions let them jump to the main area, but only if it's marked up. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | This rule is a best practice, not a WCAG requirement. But a `<main>` element is a common, easy way to meet WCAG's "skip repeated blocks" requirement at Level A. | Moderate impact |
| SEO | Search engines may use it as a small hint about content. Don't sell it as an SEO win. | Low impact |
| Brand trust | Screen reader users notice when every page makes them start from the top. | Moderate impact |
| Cost to fix | Usually a one-line change in the shared page layout. Fix it once and every page benefits. | High impact |
Fixing it in code
Wrap the page's main content
Don't
<header>…</header>
<div class="content">
<h1>Our services</h1>
</div>
<footer>…</footer>A screen reader says: “No main landmark found”
Do
<header>…</header>
<main>
<h1>Our services</h1>
</main>
<footer>…</footer>A screen reader says: “Main landmark, heading level 1, Our services”
<main> creates a landmark that screen readers can jump to.
Only one main per page
Don't
<main>
<h1>News</h1>
</main>
<main>
<h2>Related stories</h2>
</main>A screen reader says: “Main landmark … main landmark”
Do
<main>
<h1>News</h1>
<section aria-labelledby="rel">
<h2 id="rel">Related stories</h2>
</section>
</main>A screen reader says: “Main landmark, heading level 1, News”
One clear main area leaves no doubt where the content starts.
Designer's handoff note
On each page layout, draw a box around the main content and label it "main". Mark the header, navigation and footer too.
Quick test
Tool
NVDA (opens in a new tab) (free for Windows)
Checklist
- Pass
- You hear "main landmark" once, and it lands on the page's real content.
- Fail
- You never hear "main landmark", or you hear it more than once.
What a green scan still misses
A scanner checks that one main landmark exists. It can't tell whether it wraps the right content, or leaves real content outside it.
Reference
- Rule ID
landmark-one-main- Raised by
- axe-core: “Document should have one main landmark”
- WCAG
- Best practice — not a WCAG requirement
- Last reviewed
- 14 October 2026