HomeFix guides → Heading hierarchy (WCAG 1.3.1, 2.4.6 A/AA)

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 →