Page structure
Every page is the same shell: a header, a main and a
footer, with any section navigation as nav siblings between
the header and main. The document's outline lives inside
main.
<body>
<header> … site navigation … </header>
<nav> … section navigation … </nav>
<main> … the page itself … </main>
<footer> … site footer … </footer>
</body>
Body
One header, one main, one
footer, as direct children of body. That gives you the
banner, main and contentinfo landmarks for free. Any section navigation sits between
the header and main as nav siblings, zero or more.
<body>
<header> … site navigation … </header>
<nav> … section navigation … </nav> <!-- zero or more -->
<main> … the page itself … </main>
<footer> … site footer … </footer>
</body>
Header
The site banner, one per page, the same across the whole site.
It holds the brand (a link, not a heading) and the site-wide
navigation. A header at body level is the banner
landmark, so keep it to site-oriented chrome, not the current page's section
tabs.
Main
Inside main, a single h1 names the
page, not the site, which is the brand. Sections open with a bare heading, one
level deeper each time you nest (h1 → h2 →
h3). There is no header element inside a section, and
layout containers never use the landmark tags either.
<main>
<h1>Page title</h1>
<section>
<h2>A section</h2>
<section>
<h3>A subsection</h3>
</section>
</section>
</main>