Matterhorn 02-002 · PDF/UA-1 UA1:7.1-3
Role map points a custom tag at the wrong standard type
The role map terminates at a standard type, but the wrong one — a custom "Sidebar" mapped to Table, or "PullQuote" mapped to Figure.
The condition, as the protocol states it. “The mapping of one or more non-standard types is semantically inappropriate.”
Matterhorn Protocol 1.1, checkpoint 02, index 02-002, section UA1:7.1-3. The protocol marks this as requiring human judgement.
What a screen reader actually does
The reader announces a role that misdescribes the content.
If PAC reports “Non-standard structure type is remapped” failing, or names a structure type that “is neither mapped to a standard structure type nor to another non-standard structure type”, the tag has no mapping at all: that is 02-001. This page is about a mapping that exists and points at the wrong type.
What a role map promises
Producers tag with their own names — usually the author’s paragraph and character styles — and the role map on the structure tree root says what each name means in the standard vocabulary:
6 0 obj
<< /Type /StructTreeRoot
/K [ 7 0 R ]
/RoleMap << /BodyText /P
/Heading2 /H2
/Sidebar /Table
/PullQuote /Figure >>
>>
endobj
Every entry there terminates at a standard type, so 02-001 passes. Nothing loops, so 02-003 passes. No standard type is remapped, so 02-004 passes. The first two entries are right. The last two are wrong: a sidebar is a box of text, not a grid of data, and a pull quote is a quotation, not a picture.
PDF/UA-1 asks for each custom type to be mapped to the nearest functionally equivalent standard type. Condition 02-002 is the case where the mapping works mechanically and says the wrong thing.
What the user hears
The role the map names, for every element with that tag. With the map above, each sidebar is announced as a table — one with no rows or cells, because there are none. Each pull quote is announced as a graphic, and a graphic is the wrong place to keep words: Adobe’s Reading Order tool documentation notes that text inside a Figure tag is treated as part of the image and screen readers do not read it. Nobody writes alt text for a quotation, so what is left is “graphic”.
Because a role map entry applies to every element with that name, one bad entry is one bad experience repeated through the document — forty sidebars announced as forty empty tables.
Where it comes from
Mapping by appearance. A boxed, bordered sidebar looks like a table cell, so somebody maps it to Table. A pull quote is set large and off to the side like an image, so it becomes Figure.
Mapping by name. A style called Caption that the author also used for footnotes maps to Caption, and every footnote is announced as a caption.
Defaults. Any tool that resolves a name it does not recognise has to choose a target. Taggart’s own role-map repair does this (see below), and so does any converter that makes a role map valid.
How to review it
- Open the role map. In Acrobat Pro, Tags panel →
Options → Edit Role Map. Adobe’s Content and Tags panel documentation describes it as the place to add, change and delete the document’s role mappings. - List the custom names and their targets. Most documents have a handful.
- For each name, find examples in the tree. In the Tags panel with Highlight Content on, select elements with that tag and look at what they cover on the page. Look at more than one: an entry is right only if it is right for every element that uses the name.
- Ask whether the target describes the content — not whether it looks similar. A box of prose is a
Divor aSect; a quotation is aBlockQuoteorQuote; a footnote is aNote. - Listen to one of each. If the reader’s announcement would surprise somebody who could see the page, the mapping is wrong.
How to fix it free, in Acrobat Pro
When the mapping is wrong for every element: Tags panel → Options → Edit Role Map, and change the entry’s target. One change fixes every element with that tag.
When it is wrong only for some elements — the style was used for two different things — the map is not the problem; those elements are. Change their type instead: select each one in the Tags panel, choose Properties from the Options menu, and pick a standard type from the Type menu. That is 09-003.
Upstream, fix the mapping where the producer sets it, usually per style in the export settings, so the next export does not bring it back.
What Taggart does
Taggart has no check for 02-002: it raises no 02-002 finding, so the condition does not appear in the review queue or in the conformance statement’s count of undecided judgements. A role map that terminates, does not loop and does not remap standard types passes every role-map check Taggart has.
What it gives you for the review is the effect of the mapping. Taggart resolves the role map when it reads the tree, and the screen-reader preview announces the resolved role. With the map above, a sidebar comes out as table with 0 columns and 0 rows, and a pull quote as graphic — no description available; the reader announces the role and nothing else. Both are hard to miss. The reading-order editor lists the resolved role for each element, and when you select one whose tag was mapped it shows the tag as written beside it: <Table> (tagged Sidebar).
Taggart also writes role-map entries itself. Its rolemap-repair, which runs with Fix All Safe for 02-001 and 02-003, gives every name that does not resolve a target from a table of common producer names, or a guess from the name — a numbered heading name to that level, any other head or title to H1, list to L, table to Table, figure or image to Figure — and P for anything else. Each entry it writes is a line in the change log:
mapped /Normal to the standard type /P
Those lines are exactly the mappings this condition asks you to review. The app writes its own targets and does not let you choose them; to give a name a different one, change the role map in Acrobat, or the style mapping in the program that made the file, and let Taggart check the result.
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
How is this different from 09-003?
02-002 is about an entry in the role map, which applies to every element with that tag. 09-003 is about one element's type after mapping. A map that sends Heading1 to H1 is right; a pull quote that was given the Heading1 style is still a heading to a reader, and that is 09-003, not this.
Is mapping every custom tag to P safe?
It passes every check, which is not the same thing. Prose is fine as P. Headings, lists, captions, notes and quotations mapped to P lose what made them navigable, and nothing will report it, because P is a valid, standard, terminating target.
Where do bad mappings come from?
From mapping by appearance (a boxed sidebar becomes Table), by name (a style called Caption used for footnotes becomes Caption), and from defaults: a tool that does not recognise a name has to pick something, and what it picks is a guess.
Can a checker ever catch this?
Only the obvious mechanics around it — a missing target, a loop, a remapped standard type. Whether Sidebar means Table is a question about the document, and the Matterhorn Protocol marks the condition as one a person decides.
Where this sits in the standards
| Standard | Reference |
|---|---|
| Matterhorn Protocol 1.1 | Checkpoint 02 (Role Mapping), index 02-002 |
| PDF/UA-1 (ISO 14289-1) | Clause 7.1-3 |
| 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
- 02-001 Non-standard tag mapping does not terminate with a standard typeA custom tag name is present in the role map but the chain of mappings never arrives at a structure type defined in ISO 32000-1, 14.8.4. Mapping may be indirect — a custom type may map to another custom type — but it must eventually terminate.
- 02-003 A circular mapping existsThe role map contains a cycle: A maps to B, B maps back to A. Resolution never terminates.
- 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.
- 01-006 Structure type is not semantically appropriateThe 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.
Other conditions in checkpoint 02
Checkpoint 02 covers role mapping. These are its other failure conditions; the ones without a link are in the rule set but do not have a written page yet.
- 02-001 Non-standard tag mapping does not terminate with a standard typeA custom tag name is present in the role map but the chain of mappings never arrives at a structure type defined in ISO 32000-1, 14.8.4. Mapping may be indirect — a custom type may map to another custom type — but it must eventually terminate.
- 02-003 A circular mapping existsThe role map contains a cycle: A maps to B, B maps back to A. Resolution never terminates.
- 02-004 One or more standard types are remappedA standard structure type appears as a key in the role map — for example /P mapped to /Span. Standard types must never be remapped; doing so redefines the vocabulary the whole file depends on.
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 .