Skip to main content
WCAGrules
Quick navigation

Section Headings

Where content is organized into sections, those sections need headings. That is the whole criterion, five words of normative text. What makes it different from criterion 1.3.1 at Level A is which half it asks for. 1.3.1 says that a heading, once it exists, has to be marked up as one. This says the headings have to be there in the first place. Marking them up is still part of it, because W3C says outright that visual separation with rules and boxes is not enough to identify a section.

Why it matters

Headings are what W3C calls mental handles. A screen reader user pulls up the heading list and moves by it, so a 2,000-word page with three headings offers three places to land. A keyboard user jumps focus from heading to heading for the same reason. And on a page where one region updates, a heading is how somebody reaches the new content without hunting for it.

Who this rule protects

Blind readers, keyboard users, people with learning disabilities and anybody skimming rather than reading straight through all use the same structure.

How to check it yourself

  1. Pull up the heading list for the page and ask whether it describes what the page covers.
  2. Look for long stretches of prose with no heading breaking them.
  3. Ask first whether the content really divides into sections. A single unbroken argument, or a letter, is not in scope.
  4. Check that the sections are marked as headings rather than separated with a rule or extra space, which W3C says is not enough.

Failures we see most often

  • A page of clearly separate sections runs under one heading with nothing breaking it.
  • Sections get separated with horizontal rules and white space instead of headings.
  • Headings exist visually, styled as big bold paragraphs, with no heading element behind them.

Who this one is for

Read from this rule's own note above, so the grouping and the note cannot disagree.

How to fix it

  • Add a heading wherever the subject of the content changes.
  • Mark them with real heading elements, in order, which is the documented technique.
  • Use the heading list as your outline check before publishing. If it does not read like a sensible route through the subject, the page is not organized yet.
Step-by-step fix guides (2)

Passes vs. fails

A general illustration of the pattern rather than a test of 2.4.10. Passes: headings exist in the code. Fails: one flat wall of text.

Passes

The same content gets a heading on each topic, forming an outline a reader can jump through.

Fails

A long policy page runs 11 clearly separate topics under a single heading.

In audits and lawsuits

This is Level AAA, which surprises people, because adding headings sounds basic. W3C's reason is worth repeating. Headings cannot always be inserted. Posting a pre-existing document to the web means you cannot add headings its author never wrote, and putting headings into a long letter would be strange. So the criterion only bites where sections genuinely exist. Two boundaries to keep straight. It covers sections within writing, not interface components, which belong to criterion 4.1.2 at Level A. And the requirement that a heading actually describe what it heads sits at Level AA under criterion 2.4.6.

Go somewhere useful

Find tools, resources and your workspace.

29 destinations