HTML5 landmarks are semantic elements — <header>, <nav>, <main>, <aside>, <footer>, <section>, and <article> — that carry implicit ARIA roles for assistive technology. Screen readers like NVDA, JAWS, and VoiceOver let users jump directly between landmarks (in NVDA, press the D key) instead of reading the page top to bottom. Using a <div> in place of these elements removes that capability.
| Element | Implicit ARIA role | When to use |
|---|---|---|
| <header> | banner (only at top level of body) | Site-wide header: logo, primary nav, search |
| <nav> | navigation | Primary nav, breadcrumbs, footer link lists |
| <main> | main | Primary unique content of the page (exactly one) |
| <aside> | complementary | Sidebar, related links, callouts not essential to main flow |
| <footer> | contentinfo (only at top level of body) | Site footer: copyright, legal links, contact |
| <section> | region (only when named via aria-label/labelledby) | Distinct sections that need to be addressable as landmarks |
| <article> | article | Self-contained piece: blog post, news article, comment |
A correctly structured page uses each landmark once at the top level, with aria-label disambiguating any duplicates.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page Title</title>
</head>
<body>
<header>
<a href="/" aria-label="Home">Logo</a>
<nav aria-label="Main">
<ul>
<li><a href="/products">Products</a></li>
<li><a href="/pricing">Pricing</a></li>
</ul>
</nav>
</header>
<main>
<h1>Page Title</h1>
<article>
<p>Primary content...</p>
</article>
</main>
<aside aria-label="Related articles">
<h2>Related</h2>
<ul><li><a href="/a">Article A</a></li></ul>
</aside>
<footer>
<nav aria-label="Footer">
<ul>
<li><a href="/privacy">Privacy</a></li>
<li><a href="/terms">Terms</a></li>
</ul>
</nav>
<p>© 2026 Company</p>
</footer>
</body>
</html>Exactly one visible <main>. The HTML spec forbids multiple. See our deeper guide on using the main landmark in HTML.
Only when it is a direct child of <body>. A <header> inside <article> or <section> is just a sectioning header with no landmark role.
Without an accessible name, <section> does not expose a region role. Browsers do this so that arbitrary sections do not pollute the landmark list.
Yes, but prefer the semantic element. ARIA roles are a fallback when you cannot change the HTML structure.
NVDA: D (next) and Shift+D (previous). JAWS: R. VoiceOver on macOS: VO+U opens the rotor and arrow keys cycle landmarks.
They serve different purposes. The top-level one is a banner landmark. The inner one is a sectioning header (e.g., the article's title and byline) and is not a landmark.
Indirectly. Search engines use semantic structure to identify primary content, and accessibility improvements correlate with engagement signals.
Yes — that is the goal. Consistent landmarks across pages let returning users navigate efficiently with shortcuts.
Yes. AI crawlers parse the accessibility tree built from your semantic landmarks to identify the primary content of a page. Without proper <header>, <nav>, <main>, and <footer> structure, AI Overviews and tools like ChatGPT and Perplexity have less reliable signals for what content to extract and cite, which can reduce the chance of your page being surfaced as a source.
Replace top-level <div> wrappers with <header>, <nav>, <main>, <aside>, and <footer>. Keep exactly one <main>, label duplicate <nav> elements with aria-label, and verify by pressing D in NVDA or running an automated accessibility checker. Run a Greadme deep scan to verify landmark structure across every page on your site.