Matterhorn 14-002 · PDF/UA-1 UA1:7.4.2-1

The first heading is not an H1

Blocker Checkpoint 14: Headings WCAG 1.3.1 (A)

The document uses numbered headings (H1–H6) but the first one encountered in the structure tree is not an H1.

The condition, as the protocol states it. “Does use numbered headings, but the first heading tag is not <H1>.”

Matterhorn Protocol 1.1, checkpoint 14, index 14-002, section UA1:7.4.2-1. Software can decide this one on its own.

What a screen reader actually does

The outline starts mid-hierarchy, so the reader announces a level-2 heading with no parent — the user hears they are inside a section that does not exist.

What is in the file

Every heading in a PDF is a structure element whose type is H1 through H6, or the untyped H. This condition looks at the structure tree in document order and finds the first element whose type is one of the numbered ones. If it is not H1, the condition fires.

/StructTreeRoot
└── /Document
    ├── /H2   "Quarterly results"     ← first numbered heading, level 2
    ├── /P
    ├── /H3   "Revenue"
    └── /P

Nothing above that H2 provides the missing level. There is no implicit H1, and the /Document element is not one.

What the user hears

Screen readers expose a heading list — Insert+F6 in JAWS, NVDA+F7 in NVDA, the rotor in VoiceOver — and it is the primary way anyone navigates a long document without reading it.

That list is a hierarchy. Starting it at level 2 produces a list of items that are all subordinate to something that does not appear in it. The user’s model of the document is “I am inside a section” and there is no way to get to the section’s own heading, because there is not one.

In practice the effect is smaller than a skipped level in the middle and larger than nothing:

  • The reader announces “heading level 2” as the first thing in the document.
  • Jump-to-heading-1 lands on nothing, or on the first H1 much later in the file.
  • Where the document is one of several in a combined PDF, the user cannot tell the parts apart, because the only element that would have separated them is the one missing.

Where it comes from

Word. The single commonest source, and the mechanism is worth knowing. Word’s built-in Title style is not a heading — it is a paragraph style. What happens on export depends on version and settings: some map Title to H1 and every Heading 1 to H2 (producing a whole document shifted down a level), others emit no tag for Title at all and start the outline at the first Heading 1. The second is correct. The first produces exactly this condition.

Templates that start at Heading 2. Common in institutional documents where Heading 1 is reserved for a cover page produced separately.

Documents assembled from sections. Each section was written with its own Heading 1 demoted to fit under a parent that only exists in the binder’s table of contents.

Auto-tagging by font size. Acrobat’s inference ranks the sizes it finds and assigns levels from the top of the range it sees. If the largest text on the page is a running head that was correctly artifacted, the body’s largest heading gets level 2.

How to check it free

Acrobat Pro’s Accessibility Check reports this under Document → Headings, but only in recent versions, and its wording (“Appropriate nesting — Failed”) does not distinguish this from a skipped level elsewhere. Open the Tags panel and look at the top of the tree; it takes five seconds and is unambiguous.

veraPDF reports it against ISO 14289-1 clause 7.4.2.

PAC groups it with the other heading conditions under Logical Structure.

How to fix it free, in Acrobat Pro

  1. Open View → Show/Hide → Navigation Panes → Tags.
  2. Find the first <H2> in the tree — the topmost numbered heading.
  3. Right-click → PropertiesTag tab → change Type to Heading Level 1.
  4. Walk down the rest of the tree checking that no level now skips. Promoting one heading can create a H1 → H3 jump immediately after it, which is condition 14-003.

Step 4 is the one people leave out, and it converts one failure into a different one.

Upstream, in Word: do not use the Title style for anything that should appear in the outline. Use Heading 1 for the document title, Heading 2 for its sections. If you need the Title look, modify Heading 1’s formatting rather than reaching for Title.

Where Taggart differs

Taggart does not promote the first heading automatically, even though it could, because the correct repair depends on something it cannot see: whether the document is missing its top level or has simply been written with a deeper one.

What it does instead is show the whole outline as the structure tree actually holds it, with the levels that exist and the gaps between them, and offer two repairs whose consequences are stated:

  • Promote the first heading to H1 and re-check the rest of the outline for the skip that may follow.
  • Shift the whole outline up one level, which preserves every existing relationship and is right when the document’s deepest level leaves room.

heading-levels is marked safe because it changes structure types and no content — the words on the page are identical afterwards, and the appearance gate confirms it. But which of the two shapes is correct is a judgement about the document, so Taggart proposes and records rather than deciding.

How Taggart handles it

Taggart detects this condition automatically. It is reported as a blocker, with the page, the structure path and the object id of every occurrence.

The fix is Repair heading levels. It is mechanical, so “Fix All Safe” applies it in bulk with a diff and a single undo.

Whatever Taggart changes, the page still looks identical. Fixes edit the PDF object model, not the content streams, and every remediation is re-rendered and compared against the original at structural similarity ≥ 0.999 before you get the file back. A tool that quietly reflows your document is worse than no tool.

Frequently asked questions

Is one H1 per document a rule?

PDF/UA-1 does not require exactly one, and neither does WCAG. What it requires is that a numbered outline starts at level 1 and descends one step at a time. Several H1s are legal — a collection of independent documents bound into one file genuinely has several — but starting at H2 is not.

Word gave me H2 for my document title. Why?

Because Word's Title style is not a heading style. It maps to a paragraph with the Title look, and Heading 1 becomes the first H1. If your document leads with a Title-styled line and then a Heading 1 subtitle, the export has no H1 above the first heading it does emit — or, more often, maps Title to H1 and Heading 1 to H2, and you get an outline starting at 2.

My first heading is on page 3. Does that matter?

Not for this condition, which is about level rather than position. Structure-tree order, not page order, is what is examined: the first H# element encountered in a depth-first walk of the tree.

Can I fix this by demoting every other heading?

You can, and it is occasionally right — a document whose deepest level is H4 loses nothing by shifting everything up one. Usually it is wrong: promoting the first heading to H1 is one edit, shifting the whole document is dozens, and the second is much more likely to produce a skip somewhere in the middle.

Where this sits in the standards

Standards this condition maps to
StandardReference
Matterhorn Protocol 1.1 Checkpoint 14 (Headings), index 14-002
PDF/UA-1 (ISO 14289-1) Clause 7.4.2-1
WCAG 2.1 1.3.1 Info and Relationships — Level A
EN 301 549 / Section 508 / ADA Title II All three point at WCAG 2.1 Level AA for non-web documents, so a Level A or AA criterion here is in scope for each of them.

Other conditions in checkpoint 14

Checkpoint 14 covers headings. These are its other failure conditions; the ones without a link are in the rule set but do not have a written page yet.

Check your own file. Taggart’s validator is free and unlimited — every machine-checkable Matterhorn condition, no watermark, no expiry, and no account needed up to 60 pages.

Check a PDF free

Verified against a real document on . Last updated .