How to fix: Every page needs one main landmark
Exactly one <main> landmark should mark the primary content, so screen-reader users can jump past navigation straight to it.
The fix
Wrap the primary content in one <main> landmark.
Who this affects
Screen-reader users move by landmark to skip the header and navigation that repeat on every page: D in NVDA, R in JAWS, the Landmarks list in the VoiceOver rotor. With no main landmark that jump has no destination, so they tab through the whole menu on every page load or read from the top to find where the content starts. axe reports this as a best practice with no success criterion attached, so it is not a conformance failure on its own, though roughly a third of respondents to WebAIM's 2024 screen-reader survey navigate by landmark often or whenever one is offered.
Before and after
<div class="content">…</div>
<main class="content">…</main>
Where this usually comes from
- The layout wraps content in <div id="main"> or <div class="content">, so the skip link has a target but no landmark is exposed.
- A framework mounts into <div id="root"> or <div id="app"> and the app shell never introduces a <main> element.
- The theme uses <section> or <article> for the content column, a habit left over from avoiding <main> for older browser support.
- The page is assembled from full-width <section> blocks and none of them is marked as the primary content.
- The <main> element lives in a partial that this particular route or template does not include.
Checking it yourself
Start VoiceOver, press VO+U and arrow to the Landmarks list, or press D repeatedly in NVDA. A main region should appear once and should begin at the page's own content, below the navigation. In Firefox, the Accessibility panel in devtools shows the tree with landmark roles, so you can see exactly which element is being exposed as main.
A scanner finds this one automatically. What it cannot judge, and how the score is built, is on how we test.
Related fixes
Check your site for this issue
Scan any page free against WCAG 2.2 AA and get every automatically detected issue with its fix.