Matterhorn 01-006 · PDF/UA-1 UA1:7.1-2
Wrong structure type: a heading tagged P, a table as Div
The tag does not match the nature of the content: a heading tagged as a paragraph, a data table tagged as a layout container, a caption tagged as body text. This is the judgment call that no validator can make for you.
The condition, as the protocol states it. “The structure type and attributes of a structure element are not semantically appropriate for the structure element.”
Matterhorn Protocol 1.1, checkpoint 01, index 01-006, section UA1:7.1-2. The protocol marks this as requiring human judgement.
What a screen reader actually does
The reader announces the wrong role, so structural navigation (jump by heading, by table, by list) either misses the content or lands on the wrong thing.
What the condition asks
A structure type is a claim about what a piece of content is. ISO 32000-1 defines the vocabulary — P, H1–H6, L, LI, Lbl, LBody, Table, TR, TH, TD, Figure, Caption, Note, Reference, Link, Quote, BlockQuote, Code, Formula, TOC, TOCI and the containers Document, Part, Art, Sect, Div — and PDF/UA-1 asks that each element use the one that fits, with attributes that fit too.
Condition 01-006 is a tag that is valid and wrong:
/Document
├── /P "3. Results" ← a heading, tagged as a paragraph
├── /P "Revenue rose 14% over…"
├── /Div ← a data table, as nested containers
│ ├── /P "Region Q1 Q2"
│ └── /P "North 4,120 3,980"
└── /P "Figure 2: Revenue by region" ← a caption, as body text
Every element there is a standard type, correctly nested, in a sensible order. A validator has nothing to object to. A reader gets a document with no section 3, no table and no caption.
What the user hears
The wrong role, or no role. The heading is read as a paragraph and is missing from the heading list, so a user who moves through the document by heading never lands on it. The table is read as lines of text, row by row, with nothing to say which number belongs to which column, and the reader’s table commands do nothing. The caption is not attached to its figure.
In the other direction, a paragraph tagged as a heading clutters the heading list with sentences, and a layout grid tagged as a Table makes the reader announce rows and columns around content that was never tabular.
Where it comes from
Formatting instead of structure. Bold, larger text typed as a normal paragraph looks like a heading and exports as a paragraph. A table built with tabs and spaces exports as lines.
Auto-tagging. Taggers assign types from geometry and type size. A short bold line is guessed to be a heading — and so, sometimes, is a short bold label in a form.
Hand tagging. In Acrobat’s Reading Order tool the type is a button per region, and a region tagged Text/Paragraph in a hurry stays a paragraph.
How to review it
This is a judgement, so the method is a person and a procedure.
- Open the Tags panel with Highlight Content on. In Acrobat Pro the Tags panel is under
Show/Hide → Side Panels(Adobe’s pages call it both Tags and Accessibility tags). Highlight Content is in its Options menu. - Walk the tree, and for each element ask one question: if a listener heard only this role, would it be right? Do it at the level of the document’s structure, not of every span.
- Prioritise the navigable types. Headings, lists, tables, figures, captions, notes and links are what readers jump between. A wrong type there breaks navigation; a wrong type on a span rarely does.
- Check attributes where they carry meaning — header cells’
Scope, list numbering — in each element’s Properties. - Then listen. A screen-reader pass using the heading list and table navigation finds what reading the tree misses.
Acrobat’s Accessibility Checker does not make this judgement for you. Its list and table rules look at elements that are already lists and tables; none of them asks whether a run of paragraphs should have been one.
How to fix it free, in Acrobat Pro
From Adobe’s Content and Tags panel documentation:
Change one element’s type. In the Tags panel, select the element, choose Properties from the Options menu, choose a new type from the Type menu, and click Close. A <P> becomes an <H2> and nothing else moves.
Change a region’s type on the page. From the Reading Order tool: select Show Page Content Groups and Page Content Order, select the highlighted region, and click the button for the type you want. For a table, tag the region as Table, then use Table Editor, which analyses the selection into cells.
Build structure the type implies. A list is not one type change: it needs an <L> with <LI> children, each holding <Lbl> and <LBody>. Use New Tag to create the elements and drag the content into them; Adobe’s Paste Child puts a cut tag inside the selected one rather than beside it.
Upstream is cheaper: real heading styles, real list formatting and real tables in the source export with the right types, every time.
What Taggart does
Taggart has no check for 01-006. It raises no 01-006 finding, so the condition does not appear in the review queue, and the count of undecided judgements in Taggart’s conformance statement does not include it. Treat it as a review you do before you claim conformance, whatever the report says.
What it does have is heuristics for several common forms of it, each reported under its own condition: paragraphs that look like headings (14-001), header cells tagged as data (15-002), text that looks like a list and is not tagged as one (16-003), captions that are not tagged as captions (13-003), and mathematics not tagged as a formula (17-001). Those findings go to the review queue as warnings.
For the review itself, the screen-reader preview reads the tree in order with the role a reader announces in front of each element — heading level 2, Results; list with 3 items; table with 3 columns and 2 rows; graphic, … — so a heading tagged as a paragraph is the line with no announcement in front of it. The reading-order editor lists each element’s role beside its text and numbers it on the page. Neither changes a type; that is done in Acrobat, and then the file can be checked again.
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
Why can't a checker decide this?
Because the test is between the tag and what the content is, and what the content is lives in the author's intent, not in the file. A validator can see a P element. It cannot see that the P is the title of section 3. Software can guess from type size and position, and a guess is a prompt for a person, not a verdict.
Is P a safe default?
For prose, yes — it is the honest tag for a paragraph. It stops being safe when the content has a structure people navigate by: headings, lists, tables, figures, notes, links. Those are where the wrong type costs a reader something, so they are where to look first.
The condition mentions attributes. Which ones?
Any attribute that changes what a reader says. The common one is table headers: a TH cell with /Scope /Row at the top of a column is associated with the cells of its row instead of its column, and the reader announces the wrong header confidently. The structure type is right and its attribute makes it wrong.
Does Taggart check this?
Not as such. There is no 01-006 check and no 01-006 finding. Several of its commonest forms have their own conditions with heuristics — untagged headings, lists and header cells among them — and the screen-reader preview lets you hear every role in the tree.
Where this sits in the standards
| Standard | Reference |
|---|---|
| Matterhorn Protocol 1.1 | Checkpoint 01 (Real content tagged), index 01-006 |
| PDF/UA-1 (ISO 14289-1) | Clause 7.1-2 |
| 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. |
Related conditions
- 09-003 Structure type is not semantically appropriate after role mappingOnce role mapping has been resolved, the effective type still does not describe the content.
- 14-001 Headings are not taggedText that is visually a heading — larger, bolder, isolated — is tagged as a paragraph. The document has no navigable outline.
- 16-003 Content is a list but is not tagged as a listBulleted or numbered content is a run of paragraphs, with the bullet characters sitting in the text as literal glyphs.
- 15-002 A column has a header cell, but that header cell is not tagged as a headerThe top row labels the columns but is tagged as ordinary data cells.
- 13-003 A caption is not tagged with a Caption tag"Figure 3: Quarterly revenue" is tagged as a paragraph rather than as a Caption associated with its figure or table.
Other conditions in checkpoint 01
Checkpoint 01 covers real content tagged. These are its other failure conditions; the ones without a link are in the rule set but do not have a written page yet.
- 01-001 Artifact tagged as real contentDecoration — a rule line, a page-border image, a watermark, a background flourish — has been given a real content tag, so assistive technology announces it as if it were part of the document.
- 01-002 Real content marked as artifactContent that carries meaning has been marked as an artifact, which removes it from the structure tree entirely. This is the most damaging single mistake in PDF remediation because the content becomes invisible rather than merely mis-labelled.
- 01-003 Content marked as Artifact is present inside tagged contentA BMC/BDC artifact sequence has been opened while a marked-content sequence for real content is still open. Artifacts and real content may not be nested inside one another.
- 01-004 Tagged content is present inside content marked as ArtifactA marked-content sequence for real content has been opened inside an open artifact sequence. The artifact swallows the real content.
- 01-005 Content is neither marked as Artifact nor tagged as real contentEvery text-showing, image-painting and path-painting operator on a page must sit either inside a marked-content sequence that maps to the structure tree, or inside an artifact sequence. Content that is in neither is orphaned.
- 01-007 Suspects entry has a value of trueThe MarkInfo dictionary carries /Suspects true, which is the producing application's own declaration that its tagging may be unreliable. PDF/UA-1 requires the value to be false.
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.
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 .