Matterhorn 14-005 · PDF/UA-1 UA1:7.4.3-1

Seventh-level headings: when a document needs H7 and beyond

Human decisionCheckpoint 14: HeadingsWCAG 1.3.1 (A)

Documents deeper than six levels must use Hn tags (H7, H8 …), role-mapped because ISO 32000-1 defines only H1–H6.

The condition, as the protocol states it. “Content representing a 7th level (or higher) heading does not use an <H7> (or higher) tag.”

Matterhorn Protocol 1.1, checkpoint 14, index 14-005, section UA1:7.4.3-1. The protocol marks this as requiring human judgement.

What a screen reader actually does

Deep sections are flattened to level 6, so the outline misrepresents the hierarchy.

What the standard allows, and requires

ISO 32000-1 defines six numbered heading types, H1 to H6. PDF/UA-1 clause 7.4.3 lets a document that needs more levels define H7, H8 and upwards, without limit, on two conditions: the new tags follow the same sequencing rules as the first six (begin at H1, never skip a level on the way down), and they are named as H plus Arabic numerals (14-004).

They are still not standard types. PDF/UA-1 requires every non-standard type to be role-mapped to the nearest functionally equivalent standard one, so an H7 needs a role map entry, and the natural target is H6:

/StructTreeRoot
   /RoleMap << /H7 /H6  /H8 /H6 >>
   …
/H6   "4.2.1.3.2.1  Notice periods"
/H7   "4.2.1.3.2.1.1  Notice by email"     ← tag keeps the seventh level

Condition 14-005 is the opposite case: content that is a seventh-level heading, tagged as something else — typically H6, or P.

What is lost

/H6   "4.2.1.3.2.1  Notice periods"
/H6   "4.2.1.3.2.1.1  Notice by email"     ← flattened
/P    "Notice given by email takes effect…"

Read as a tree, this says Notice by email is a peer of Notice periods — another sixth-level section — rather than part of it. A screen-reader user moving by heading level, or reading the headings list, sees two siblings where the document has a parent and a child, and the clause numbering in the text contradicts the structure that is supposed to carry it.

The honest limit of the fix is worth knowing too: with H7 → H6, a reader that follows the role map still announces heading level 6. What the H7 tag buys is that the seventh level exists in the file at all. Nothing downstream can recover a level that was never written.

Where it comes from

Authoring tools that offer more heading levels than PDF has: Word has nine built-in heading styles. What a given version writes to a tagged PDF for Heading 7 to 9 is worth checking in the Tags panel rather than assuming. Generators that stop at six and clamp anything deeper to H6. And remediation in Acrobat, whose Reading Order tool offers Heading 1 to Heading 6 — Adobe’s description of the heading elements says six levels are available — so a seventh level gets the nearest of those.

How to check it

This is a judgement because only the document can say how deep its headings go.

  1. Establish the real depth. Clause numbering is the easy case: a heading numbered with seven parts is level seven. Otherwise, work from the document’s own outline or contents page.
  2. Compare it with the tags. In Acrobat Pro’s Tags panel (View → Show/Hide → Side Panels → Tags), find the deepest headings. Any heading deeper than the H6 above it but tagged H6 or P fails.
  3. Check the role map. Options → Edit Role Map in the Tags panel shows whether H7 and any deeper types are mapped. (Adobe: Edit document structure with the Content and Tags panels)

veraPDF’s PDF/UA-1 rule 7.1-5 catches an H7 with no role map entry. It has no rule for clause 7.4.3, so a flattened document passes it. (veraPDF PDF/UA-1 rules)

How to fix it free, in Acrobat Pro

From Adobe’s Tags panel documentation, whose dialogs let a tag type be typed rather than picked from the menu:

  1. Select the heading’s text on the page. In the Tags panel, choose Create Tag From Selection from the Options menu and give H7 as the type.
  2. If the element the text came from is left empty, remove it with Delete Tag.
  3. Repeat for each seventh-level heading, using H8 and so on for deeper ones.
  4. Options → Edit Role Map, and map H7 (and each deeper type you used) to H6.

If the source has the levels — Word’s Heading 7, a numbered clause style — fixing the export is better, because the next revision will flatten them again otherwise.

What Taggart does

Taggart has no check for 14-005. It produces no finding of that number, so the condition never reaches the review queue. It is on the list of conditions Taggart asks a person to confirm before it will write the PDF/UA claim into the file. In the application the conformance card lists them, with one box to tick — I have checked these conditions by hand, or with another validator. Until someone has, the claim is not written. The confirmation covers the whole list at once, so make the check above before you give it.

What it does report is the role-mapping half. An H7 with no role map entry is 02-001:

The structure type /H7 is used 1 time(s) but is neither a standard type nor present in the role map.

The repair for that, rolemap-repair, runs with the safe fixes and maps H7 — and any deeper Hn — to /H6. The tag stays H7, so the depth survives in the file, and the heading-sequence checks (14-002, 14-003) pass on the result.

What Taggart cannot see is the failure this condition is actually about. A seventh level tagged H6 passes every heading check it runs, and so does an H7 that the role map sends to P. Both need the reading described above.

How Taggart handles it

No software can decide this one, and Taggart has no check for it, so it never appears among the findings or in the review queue. It is on the list of conditions Taggart asks you to confirm by hand before it writes the PDF/UA claim into the file — the claim waits until you have.

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

If H7 is mapped to H6, isn't the reader told level 6 anyway?

A reader that follows the role map will say level 6, yes. The difference is in the file: with an H7 tag the seventh level is still recorded, and anything that reads the tag — a conversion, a validator, a later tool — can recover it. Flattened to H6, the level is gone, and the outline says the seventh-level heading is a sibling of its own parent.

Why must H7 be role-mapped at all?

Because ISO 32000-1 defines only H1 to H6. PDF/UA-1 permits H7 and beyond, but they are not standard structure types, and every non-standard type has to map to the nearest functionally equivalent standard one. For a seventh-level heading, that is H6.

How common is this?

Uncommon. It turns up in legislation, standards, contracts and technical manuals with deeply numbered clauses — 4.2.1.3.2.1.1 and so on.

Does Taggart check it?

No — it is on the list of conditions Taggart asks you to confirm by hand before it writes the PDF/UA claim. An H7 with no role map entry is reported as 02-001 and the repair maps it to H6, keeping the tag. A seventh level tagged H6, or an H7 mapped to a paragraph, passes every heading check Taggart runs.

Where this sits in the standards

Standards this condition maps to
StandardReference
Matterhorn Protocol 1.1Checkpoint 14 (Headings), index 14-005
PDF/UA-1 (ISO 14289-1)Clause 7.4.3-1
WCAG 2.11.3.1 Info and Relationships — Level A
EN 301 549 / Section 508 / ADA Title IIAll 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 — 75 of the 87 Matterhorn conditions software can decide, with the other 12 listed for you to confirm; no watermark, no expiry, and no account needed up to 60 pages.

Check a PDF free

This condition needs a person’s judgement, so there was nothing for a tool to check. Written from ISO 14289-1 and the Matterhorn Protocol on . The Acrobat steps follow Adobe’s documentation and were not walked through by hand. Last updated .