WCAGdesk
axe-core: heading-order · WCAG 1.3.1 Info and Relationships · Level A

How to fix the “heading-order” accessibility issue

The axe-core heading-order rule flags headings that jump levels — for example an <h2> followed directly by an <h4>. Screen-reader users navigate by heading level, so a broken outline breaks navigation. It relates to WCAG 2.2 1.3.1 (Level A).

What axe-core checks

axe-core reports when a heading level is more than one step below the previous heading (e.g. h2 → h4). Headings should descend one level at a time.

Which standard this maps to

WCAG 2.21.3.1 Info and Relationships (Level A)
EN 301 5499.1.3.1
BFSG / EAABFSG § 12 via EN 301 549 · EAA Annex I
CategoryStructure & Landmarks

Why it matters

Heading level is the primary way screen-reader users skim a page. On a long product or category page, a scrambled outline means they cannot build a mental map of the content — a structural failure regulators and testers look for.

Common causes

  • Choosing heading levels for visual size instead of structure
  • A component dropping from <h2> straight to <h4>
  • Multiple <h1> elements
  • CMS widgets that emit fixed heading levels regardless of context

How to fix it

Use heading levels for structure, not styling. Descend one level at a time and style with CSS. There should be one <h1> per page.

<!-- Fails: skips h3 -->
<h2>Specs</h2>
<h4>Weight</h4>

<!-- Passes -->
<h2>Specs</h2>
<h3>Weight</h3>

FAQ

Can I skip levels going back up?

Yes — after an h3 you may return to an h2 for the next section. The rule only flags skipping levels going deeper.

Is more than one h1 allowed?

WCAG allows it, but a single h1 is the clearest and most widely recommended pattern.

Find every issue like this on your site

Run a free WCAG 2.2 AA scan — real axe-core engine, no signup. Or get a timestamped evidence report for €29.