Matterhorn 01-006 · PDF/UA-1 UA1:7.1-2

Wrong structure type: a heading tagged P, a table as Div

Human decisionCheckpoint 01: Real content taggedWCAG 1.3.1 (A)

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.

  1. 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.
  2. 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.
  3. 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.
  4. Check attributes where they carry meaning — header cells’ Scope, list numbering — in each element’s Properties.
  5. 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

Standards this condition maps to
StandardReference
Matterhorn Protocol 1.1Checkpoint 01 (Real content tagged), index 01-006
PDF/UA-1 (ISO 14289-1)Clause 7.1-2
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 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.

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 .