EquitableDocs Document Accessibility Guide

Headings

Overview

What a heading is in a PDF

A heading is the title of a section. On the page you can see it: it is the line in larger or bolder type that tells you a new part is starting. In an accessible PDF a heading is also marked in the file as a heading, with a tag that says what level it sits at. The top-level title is H1. The sections under it are H2. The subsections under those are H3, and so on down to H6.

The visible style and the tag are two different things. Making a line big and bold changes only how it looks. It does not tell the software anything. The tag is what a screen reader reads. A line can look exactly like a heading and still be plain text in the file, with no heading tag at all.

What a reader loses when headings are wrong

A screen reader user does not see the page laid out. They listen to it, or read it on a braille display, one piece at a time. Real heading tags let them skim. They can ask the screen reader to jump from one heading to the next, hear the section titles, and go straight to the part they want, the same way a sighted reader runs their eye down the page.

Take away the heading tags and that reader has no map. To find one section they must listen to the whole document from the top. A fifty page report with no tagged headings becomes fifty pages they have to wade through in order. Wrong heading tags mislead them instead: a heading announced where there is no real section, or a level that jumps from H1 to H3, suggests a structure that is not there.

In depth

A correct heading hierarchy

A correct hierarchy starts at H1 and steps down one level at a time. There is one H1, the document title. Under it come H2 sections. Under each H2 come H3 subsections, and so on. You go down a level when content nests inside the section above it, and you do not skip a level on the way down.

Consider a course handbook. The H1 is "Introduction to Biology, Fall 2026." Under it, "Course Schedule," "Assessment," and "Reading List" are each an H2. Under "Assessment," the parts "Midterm Exam" and "Final Project" are each an H3. A screen reader user can pull up the list of headings and see that whole shape at once, then jump straight to "Final Project." The levels tell them what sits inside what.

You may move back up freely. After the H3 "Final Project" you can start a new H2 "Reading List." What you do not do is go from an H2 straight to an H4, because the reader is then told a level was skipped and cannot tell where the missing section went.

A real heading left as plain bold text

The most common fault is a heading that was never tagged. The author made the line big and bold so it looks like a heading on the page, but no heading tag was applied. To a sighted reader it is obviously a section title. To a screen reader it is an ordinary paragraph, indistinguishable from the body text around it.

Before: the line "Course Schedule" is set in 18 point bold. In the tag tree it is a P, a normal paragraph. The screen reader reads it in the same flat voice as the sentence after it, and the jump-to-heading command skips straight past it, because as far as the file is concerned there is no heading there.

After: the same line "Course Schedule" is tagged H2. Now it appears in the reader's list of headings, the screen reader announces it as a heading at level two, and the reader can jump to it. Nothing on the visible page changed. Only the tag changed, and that is the part the reader with a print disability depends on.

Ordinary text wrongly tagged as a heading

The opposite fault is text that is not a heading carrying a heading tag. This often happens when a heading tag is used only to make text big, or when a tagging tool guesses wrong. The reader is then promised a section that is not there.

Consider a paragraph that opens "Please note that all assignments are due by midnight," tagged as an H2 because the author wanted it to stand out. When the screen reader user lists the headings to find the document's structure, this sentence shows up among the real section titles. They jump to it expecting a section and land in the middle of a note. Every false heading like this clutters the map and makes the real structure harder to find.

The fix is to tag the line for what it is. If it is body text, it is a paragraph. If it needs visual emphasis, that is done with styling, not with a heading tag. A heading tag is a statement that a section begins here, and it should only be used where that is true.

More than one top-level heading, or no H1 at all

A document should have a single H1, its overall title, and every other heading should sit below it. Two problems break this. One is more than one H1, which tells the reader the document has several top-level titles and no clear single subject. The other is no H1 at all, where the document opens at H2 or lower and the reader never gets the top of the structure.

Before: a report begins with two H1 headings, "Findings" and "Recommendations," with no single title above them. The reader cannot tell whether these are one document or two, because nothing is marked as the top. After: a single H1, "Annual Accessibility Report 2026," sits above both, and "Findings" and "Recommendations" become H2 sections under it. Now the structure has one clear root and steps down cleanly.

Where machine checking stops for headings

A machine can confirm three things about headings, and they are real and useful. It can confirm that heading tags are present in the file. It can confirm that the levels do not skip, that you do not jump from H1 to H3. It can confirm that the first heading is an H1 rather than a lower level. These are the parts that can be measured by looking at the tag tree alone.

A machine cannot confirm the two things that matter most for meaning. It cannot tell whether a heading tag sits on real heading text or on a normal sentence that happens to be bold, because deciding that needs a reading of what the line says. It cannot tell whether the wording of a heading is meaningful, whether "Course Schedule" describes its section while "Section 2" does not. Only a person can judge that the tag is on a real heading and that the words actually describe what follows. For the wider explanation of this split, see the topic on what automated checking can and cannot find.

Reference detail

Standards mapping

Item Reference
WCAG, structure conveyed in the markup 1.3.1 Info and Relationships, Level A
WCAG, headings describe their topic 2.4.6 Headings and Labels, Level AA
Matterhorn Protocol 1.1 Checkpoint 14, Headings
PDF tags H, and the numbered headings H1, H2, H3, H4, H5, H6

WCAG 1.3.1 Info and Relationships requires that the structure you can see, including which lines are headings, is also present in the file's markup so assistive technology can find it. WCAG 2.4.6 Headings and Labels requires that headings describe the topic of the section they introduce. Matterhorn checkpoint 14 turns the PDF/UA heading rules into testable failure conditions for a PDF. For how these standards relate to each other, see the topic on PDF/UA and the Matterhorn Protocol, and the topic on WCAG and the four POUR principles.

Named common mistakes

Mistake What it does to the reader
Bold text not tagged as a heading A real section title is invisible to the screen reader; the reader cannot jump to it
Skipping from H1 to H3 The reader is told a level was skipped and cannot tell where the missing section went
Using a heading tag only to make text big A false heading appears in the reader's list of headings and clutters the real structure
No H1 at all The reader never gets the top of the structure and has no clear starting point

The fix

Tag every genuine heading with the correct level, and never skip a level. Start at H1, step down one level at a time as content nests, and move back up freely. Do not use a heading tag to style text that is not a heading, and do not leave a real heading as plain bold text.

Authoritative sources


  1. W3C, "Understanding WCAG 2.1: 1.3.1 Info and Relationships" https://www.w3.org/WAI/WCAG21/Understanding/info-and-relationships.html 2024 

  2. W3C, "Understanding WCAG 2.1: 2.4.6 Headings and Labels" https://www.w3.org/WAI/WCAG21/Understanding/headings-and-labels.html 2024 

  3. PDF Association, "The Matterhorn Protocol 1.1" https://pdfa.org/resource/the-matterhorn-protocol/ 2021 

  4. WebAIM, "Semantic Structure: Regions, Headings, and Lists" https://webaim.org/techniques/semanticstructure/ 2024