acc
How to fix: Heading hierarchy (WCAG 1.3.1, 2.4.6 A/AA)
Why this matters
Screen-reader users navigate by heading. A page with no H1 has no landmark; a page with multiple H1s confuses orientation; H1->H3 skips lose nesting context. WCAG 1.3.1 (Info + Relationships, Level A) and 2.4.6 (Headings + Labels, Level AA) both apply.
Background
Screen-reader users navigate by heading. A page with no H1, multiple H1s, or H1->H3 skips loses navigation landmarks.
References
WCAG 2.1 SC 1.3.1 Info & Relationships (A) · SC 2.4.6 Headings & Labels (AA)
How to fix
Code snippet for each stack we cover. Pick the one matching your server / framework.
nginx
No server config — template change.
apache
Same.
cloudflare
Same.
wordpress
Each post should have exactly one H1 (usually the title). Audit themes that use H1 in the logo or sidebar.
flask
Template audit. Reserve <h1> for the primary page title; subsections use <h2>/<h3>.
express
Same.
rails
Same.
Verify it's working
Browser devtools: document.querySelectorAll('h1').length should be 1.
Want to know if your site has this issue?
Run a free 53-check audit — security, GDPR, NIS2, and technical SEO.
Audit my site →