Reference
Every Matterhorn Protocol failure condition
The Matterhorn Protocol is how PDF/UA-1 conformance is actually tested: 31 checkpoints, 136 failure conditions, of which 87 can be decided by software and 47 require human judgement. This is the whole list, with what each one means in practice.
Why most of these are not links yet. A page goes up when somebody has followed its fix instructions on a real document and confirmed they work — not when the rule exists in a data file. Publishing 142 template-filled pages would be the exact thing Google warns programmatic SEO turns into. The rest are being written in batches.
Checkpoint 01: Real content tagged
PDF/UA-1 clause 7.1 · 7 failure conditions · 1 written
- 01-001 Warning Artifact tagged as real content Decoration — 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 Warning Real content marked as artifact Content 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 Blocker Content marked as Artifact is present inside tagged content A 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 Blocker Tagged content is present inside content marked as Artifact A marked-content sequence for real content has been opened inside an open artifact sequence. The artifact swallows the real content.
- 01-005 Blocker Content is neither marked as Artifact nor tagged as real content Every 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-006 Human decision Structure type is not semantically appropriate 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.
- 01-007 Blocker Suspects entry has a value of true The 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.
Checkpoint 02: Role Mapping
PDF/UA-1 clause 7.1 · 4 failure conditions
- 02-001 Blocker Non-standard tag mapping does not terminate with a standard type A 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-002 Human decision Role mapping is semantically inappropriate The role map terminates at a standard type, but the wrong one — a custom "Sidebar" mapped to Table, or "PullQuote" mapped to Figure.
- 02-003 Blocker A circular mapping exists The role map contains a cycle: A maps to B, B maps back to A. Resolution never terminates.
- 02-004 Blocker One or more standard types are remapped A 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.
Checkpoint 03: Flickering
PDF/UA-1 clause 7.1 · 3 failure conditions
- 03-001 Human decision One or more Actions lead to flickering Page or annotation actions produce flashing that can trigger photosensitive seizures.
- 03-002 Human decision Multimedia objects contain flickering content Embedded video or animation flashes more than three times per second.
- 03-003 Human decision JavaScript actions lead to flickering Document-level or field-level JavaScript animates content at a rate that can trigger seizures.
Checkpoint 04: Color and Contrast
PDF/UA-1 clause 7.1 · 1 failure condition
- 04-001 Human decision Information conveyed by contrast, colour, format or layout is not tagged Red text meaning "overdue", bold meaning "required", indentation meaning "sub-clause" — visual encodings that carry meaning must also exist in the tag structure or in text.
Checkpoint 05: Sound
PDF/UA-1 clause 7.1 · 3 failure conditions
- 05-001 Human decision Media annotation present, but audio content not available in another form Embedded media carries information in audio with no transcript or equivalent text in the document.
- 05-002 Human decision Audio annotation present, but content not available in another form A Sound annotation carries information with no transcript.
- 05-003 Human decision JavaScript uses beep but provides no other notification Form validation signals an error only with app.beep().
Checkpoint 06: Metadata
PDF/UA-1 clause 7.1 · 4 failure conditions
- 06-001 Blocker Document does not contain an XMP metadata stream The catalog has no /Metadata entry pointing at an XMP packet. PDF/UA-1 requires one — it is where the conformance claim and the document title live.
- 06-002 Blocker XMP metadata does not include the PDF/UA identifier The PDF/UA identification schema (pdfuaid:part) is absent, so the file does not actually claim PDF/UA-1 conformance even if it meets every other requirement.
- 06-003 Blocker XMP metadata stream does not contain dc:title The Dublin Core title property is missing from the XMP packet.
- 06-004 Warning dc:title does not clearly identify the document A title is present but useless: the filename, "Microsoft Word - Document1", "untitled", or the template name.
Checkpoint 07: Dictionary
PDF/UA-1 clause 7.1 · 2 failure conditions · 1 written
- 07-001 Blocker ViewerPreferences does not contain DisplayDocTitle Without /DisplayDocTitle the viewer is free to show the filename in the window title instead of the document title.
- 07-002 Blocker DisplayDocTitle is false The entry is present and explicitly instructs the viewer to show the filename rather than the title.
Checkpoint 08: OCR Validation
PDF/UA-1 clause 7.1 · 2 failure conditions
- 08-001 Human decision OCR-generated text contains significant errors The invisible text layer produced by OCR does not match the visible glyphs. Confusions like rn→m, l→1, and dropped Hebrew niqqud are typical.
- 08-002 Human decision OCR-generated text is not tagged OCR added a text layer but no structure tree, so the document is searchable but not navigable.
Checkpoint 09: Appropriate Tags
PDF/UA-1 clause 7.2 · 8 failure conditions · 1 written
- 09-001 Warning Tags are not in logical reading order The order of elements in the structure tree does not match the order a human would read the page. This is the single most common substantive defect in tagged PDFs and the one Acrobat's own tooling handles worst.
- 09-002 Human decision Structure elements are nested in a semantically inappropriate manner Nesting that is syntactically legal but semantically nonsense — a Table inside an H2, a paragraph containing a section.
- 09-003 Human decision Structure type is not semantically appropriate after role mapping Once role mapping has been resolved, the effective type still does not describe the content.
- 09-004 Blocker A table-related structure element does not conform to ISO 32000-1, Table 337 The table grammar is broken: a TD outside a TR, a TR outside Table/THead/TBody/TFoot, a Table with no rows.
- 09-005 Blocker A list-related structure element does not conform to ISO 32000-1, Table 336 The list grammar is broken: an LI outside an L, an Lbl or LBody outside an LI, a list item with no LBody.
- 09-006 Blocker A TOC-related structure element does not conform to ISO 32000-1, Table 333 TOCI appears outside a TOC, or a TOC contains children other than TOC and TOCI.
- 09-007 Blocker A Ruby-related structure element does not conform to ISO 32000-1, Table 338 RB, RT or RP appears outside a Ruby element, or Ruby has an illegal child sequence.
- 09-008 Blocker A Warichu-related structure element does not conform to ISO 32000-1, Table 338 WT or WP appears outside a Warichu element, or Warichu has an illegal child sequence.
Checkpoint 10: Character Mappings
PDF/UA-1 clause 7.2 · 1 failure condition
- 10-001 Blocker Character code cannot be mapped to Unicode A glyph is painted whose character code has no Unicode equivalent reachable through the font's ToUnicode CMap, encoding, or glyph names. The text renders correctly but cannot be extracted.
Checkpoint 11: Declared Natural Language
PDF/UA-1 clause 7.2 · 7 failure conditions · 1 written
- 11-001 Blocker Natural language for text in page content cannot be determined No /Lang is in effect for some text: neither on the catalog, nor on an enclosing structure element, nor on a marked-content sequence.
- 11-002 Blocker Natural language for Alt, ActualText and E cannot be determined Alternative text, actual text and expansion text are announced by the reader and therefore need a determinable language just as page content does.
- 11-003 Blocker Natural language in the Outline entries cannot be determined Bookmark titles have no determinable language.
- 11-004 Blocker Natural language in the Contents entry for annotations cannot be determined Annotation Contents strings — link descriptions, comments — have no determinable language.
- 11-005 Blocker Natural language in the TU entry for form fields cannot be determined Form field tooltips are the accessible name of the field and need a determinable language.
- 11-006 Blocker Natural language for document metadata cannot be determined The XMP dc:title (and other metadata) has no xml:lang and the catalog has no /Lang.
- 11-007 Warning Natural language is not appropriate A language is declared but it is the wrong one — a Hebrew document declared en-US, or an English abstract inside a Hebrew paper inheriting he-IL.
Checkpoint 12: Stretchable Characters
PDF/UA-1 clause 7.2 · 1 failure condition
- 12-001 Human decision Stretched characters are not represented appropriately Glyphs stretched to fill space — kashida elongation in Arabic, stretched brackets in mathematics — must map to the character they represent, not to a sequence of repeated glyphs.
Checkpoint 13: Graphics
PDF/UA-1 clause 7.3 · 8 failure conditions · 1 written
- 13-001 Warning Graphics objects are not tagged with a Figure tag An image or vector drawing that carries meaning is not inside a Figure element. Either it is untagged, or it has been swept into a paragraph.
- 13-002 Human decision A link with a meaningful background lacks alternative text for both An image link — a button, a logo that navigates — needs alternative text that conveys both what the graphic shows and where the link goes.
- 13-003 Warning 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.
- 13-004 Blocker Figure tag alternative or replacement text missing A Figure element has neither /Alt nor /ActualText. Every Figure must have one or the other; if the image is decorative it should be an artifact instead of a Figure.
- 13-005 Human decision ActualText used for a Figure for which alternative text is more appropriate ActualText replaces the content for text-extraction purposes; Alt describes it. A photograph needs Alt. A drop cap or a glyph-as-image needs ActualText.
- 13-006 Human decision A graphic with meaning only as part of a group is tagged on its own A chart built from dozens of separate vector paths has been tagged as dozens of Figures instead of one. Each fragment is meaningless alone.
- 13-007 Human decision A more accessible representation is not used A data table rendered as a picture, or body text set as an image, when real text and real table structure were available.
- 13-008 Human decision ActualText not present when a Figure is intended to be consumed primarily as text A drop cap, a logo that is a word, an image of a signature block — content that is text — needs ActualText so it flows into the text stream.
Checkpoint 14: Headings
PDF/UA-1 clause 7.4 · 7 failure conditions · 1 written
- 14-001 Warning Headings are not tagged Text that is visually a heading — larger, bolder, isolated — is tagged as a paragraph. The document has no navigable outline.
- 14-002 Blocker First heading tag is not H1 The document uses numbered headings (H1–H6) but the first one encountered in the structure tree is not an H1.
- 14-003 Blocker Numbered heading levels in descending sequence are skipped The heading hierarchy jumps a level going down — H1 straight to H3. Going back up any number of levels is fine; going down must be one level at a time.
- 14-004 Human decision Numbered heading tags do not use Arabic numerals Custom heading tags like "Heading-One" or "HI" must role-map to H1–H6 or to Hn using Arabic numerals.
- 14-005 Human decision Content representing a 7th level (or higher) heading does not use an H7 (or higher) tag Documents deeper than six levels must use Hn tags (H7, H8 …), role-mapped because ISO 32000-1 defines only H1–H6.
- 14-006 Blocker A node contains more than one H tag In the strong-structure model, an unnumbered H derives its level from nesting depth, so a single structural node may contain at most one H.
- 14-007 Blocker Document uses both H and H# tags A document must commit to one heading model: strong structure (H, levelled by nesting) or weak structure (H1–H6). Mixing them makes the level of any given heading ambiguous.
Checkpoint 15: Tables
PDF/UA-1 clause 7.5 · 5 failure conditions · 1 written
- 15-001 Warning A row has a header cell, but that header cell is not tagged as a header The leftmost (or, in RTL, rightmost) cell of each row labels the row but is tagged TD instead of TH.
- 15-002 Warning A column has a header cell, but that header cell is not tagged as a header The top row labels the columns but is tagged as ordinary data cells.
- 15-003 Blocker A TH cell does not contain a Scope attribute Header cells must declare whether they head a row, a column, or both, unless the table instead uses explicit /Headers ID references on every data cell.
- 15-004 Warning Content is tagged as a table for information not organized in rows and columns A table used purely to position content on the page — a two-column layout, a form arrangement — has been tagged as a real table.
- 15-005 Human decision A given cell's header cannot be unambiguously determined In a complex table — merged cells, stacked header rows, split spans — Scope alone cannot express the associations, so explicit /Headers references are required.
Checkpoint 16: Lists
PDF/UA-1 clause 7.6 · 3 failure conditions · 1 written
- 16-001 Warning Ordered list has no ListNumbering attribute An L element whose items are numbered lacks the /ListNumbering attribute that tells the reader the numbering scheme.
- 16-002 Warning ListNumbering value is not one of the permitted values ListNumbering is present but carries a value outside the permitted set — often /None or /Disc on a genuinely ordered list.
- 16-003 Warning Content is a list but is not tagged as a list Bulleted or numbered content is a run of paragraphs, with the bullet characters sitting in the text as literal glyphs.
Checkpoint 17: Mathematical Expressions
PDF/UA-1 clause 7.7 · 3 failure conditions
- 17-001 Warning Content is a mathematical expression but is not tagged with a Formula tag An equation is tagged as a paragraph or a figure rather than a Formula.
- 17-002 Blocker Formula tag is missing an Alt attribute A Formula element has no /Alt giving the expression in words.
- 17-003 Blocker Unicode mapping requirements are not met for a formula Mathematical glyphs — often from a symbol font with no ToUnicode — cannot be mapped to Unicode.
Checkpoint 18: Page Headers and Footers
PDF/UA-1 clause 7.8 · 2 failure conditions · 1 written
- 18-001 Warning Headers and footers are not marked as pagination artifacts Running heads, footers and page numbers are tagged as real content, so they repeat in the reading order on every page.
- 18-002 Warning Header or footer artifacts are not classified as Header or Footer subtypes The content is an artifact but carries no /Subtype /Header or /Subtype /Footer, so a processor cannot offer to read running content on demand.
Checkpoint 19: Notes and References
PDF/UA-1 clause 7.9 · 4 failure conditions
- 19-001 Warning Footnotes or endnotes are not tagged as Note Footnote text at the bottom of the page is tagged as an ordinary paragraph.
- 19-002 Warning References are not tagged as Reference The in-text citation marker is not tagged as a Reference pointing at the note.
- 19-003 Blocker ID entry of the Note tag is not present Every Note element must carry an /ID so references can point at it.
- 19-004 Blocker ID entry of the Note tag is non-unique Two or more Note elements share an /ID, usually because a template was copied per page.
Checkpoint 20: Optional Content
PDF/UA-1 clause 7.10 · 3 failure conditions
- 20-001 Blocker Name missing or empty in an Optional Content Configuration Dictionary in Configs Optional content (layer) configurations must be nameable so a user can identify and toggle them.
- 20-002 Blocker Name missing or empty in the default Optional Content Configuration Dictionary The default optional-content configuration has no name.
- 20-003 Blocker An AS entry appears in an Optional Content Configuration Dictionary Automatic state (usage application) entries let content appear or disappear based on zoom or print state, which can hide content from a reader unpredictably. PDF/UA-1 forbids them.
Checkpoint 21: Embedded Files
PDF/UA-1 clause 7.11 · 1 failure condition
- 21-001 Blocker File specification dictionary for an embedded file does not contain F and UF entries Embedded attachments must carry both the byte-string filename (F) and the Unicode filename (UF).
Checkpoint 22: Article Threads
PDF/UA-1 clause 7.12 · 1 failure condition
- 22-001 Human decision Article threads do not reflect logical reading order If article threads are present at all, the bead order must match the logical reading order.
Checkpoint 23: Digital Signatures
PDF/UA-1 clause 7.13 · 1 failure condition
- 23-001 Human decision No test specific to digital signatures is required Signature fields are widget annotations and are therefore covered by the form-field requirements in checkpoint 28.
Checkpoint 24: Non-Interactive Forms
PDF/UA-1 clause 7.14 · 1 failure condition
- 24-001 Warning Non-interactive forms are not tagged with the PrintField attribute A printed form — checkbox squares, signature rules, fill-in lines drawn on the page rather than implemented as widgets — needs /PrintField attributes so a reader can describe the control.
Checkpoint 25: XFA
PDF/UA-1 clause 7.15 · 1 failure condition
- 25-001 Blocker File contains the dynamicRender element with value "required" A dynamic XFA form has no static PDF representation, so its content is invisible to anything but the XFA renderer. PDF/UA-1 forbids it.
Checkpoint 26: Security
PDF/UA-1 clause 7.16 · 2 failure conditions · 1 written
- 26-001 Blocker The file is encrypted but does not contain a P entry in its encryption dictionary Without a /P permissions entry there is no declaration that content may be extracted for accessibility.
- 26-002 Blocker The 10th bit position of the P entry is false Bit 10 of the permissions flags is the "extract for accessibility" permission. Clearing it tells assistive technology it may not read the file.
Checkpoint 27: Navigation
PDF/UA-1 clause 7.17 · 1 failure condition
- 27-001 Human decision No tests specific to navigation are required PDF/UA-1 sets no machine test here, but a long document without bookmarks fails WCAG 2.4.5 in practice and is the single most common procurement complaint.
Checkpoint 28: Annotations
PDF/UA-1 clause 7.18 · 18 failure conditions · 2 written
- 28-001 Warning An annotation is not in correct reading order The annotation's position in the structure tree does not match where it appears on the page.
- 28-002 Blocker An annotation is not a direct child of an Annot structure element Non-widget, non-link annotations must sit inside an Annot structure element so they have a place in the reading order.
- 28-003 Human decision An annotation is used for visual formatting but is not tagged according to its semantic function A Square or Line annotation used to draw a box round a callout is decoration and should be artifacted, or tagged for what it actually means.
- 28-004 Blocker An annotation has neither a Contents entry nor an alternative description Every non-widget annotation needs an accessible description, either in its own /Contents or in the /Alt of the structure element that encloses it.
- 28-005 Blocker A form field has neither a TU entry nor an alternative description The /TU tooltip is the accessible name of a PDF form field. Without it the field has no name at all — the visible label printed next to it is not connected to the control.
- 28-006 Blocker An annotation with subtype undefined in ISO 32000 does not meet 7.18.1 A custom annotation subtype still has to be placed in the structure tree and described.
- 28-007 Blocker An annotation of subtype TrapNet exists TrapNet annotations are prepress artefacts and are forbidden in PDF/UA-1.
- 28-008 Blocker A page containing an annotation does not contain a Tabs entry Any page carrying annotations must declare a tab order. PDF/UA-1 requires /Tabs /S — tab order follows the structure tree.
- 28-009 Blocker A page containing an annotation has a Tabs entry with a value other than S /Tabs is present but set to /R (row order) or /C (column order) rather than /S (structure order).
- 28-010 Blocker A widget annotation is not nested within a Form tag Every form control must sit inside a Form structure element.
- 28-011 Blocker A link annotation is not nested within a Link tag A link annotation must be a child of a Link structure element containing the link's text, joined by an object reference (/OBJR).
- 28-012 Blocker A link annotation does not include an alternate description in its Contents entry Link annotations need /Contents describing where the link goes.
- 28-013 Human decision An IsMap entry is true but the functionality is not provided in some other way A server-side image map requires pointing at a pixel, which is not possible without a mouse.
- 28-014 Blocker CT entry is missing from the media clip data dictionary The media clip's content type (/CT) is required so a processor knows what it is being asked to play.
- 28-015 Blocker Alt entry is missing from the media clip data dictionary Media clips require an /Alt array giving a text description.
- 28-016 Blocker File attachment annotations do not conform to 7.11 The file specification referenced by a FileAttachment annotation must carry both /F and /UF.
- 28-017 Blocker A PrinterMark annotation is included in the logical structure Crop marks and registration targets are production artefacts and must not appear in the structure tree.
- 28-018 Blocker The appearance stream of a PrinterMark annotation is not marked as Artifact The content inside a PrinterMark's appearance stream must itself be artifacted.
Checkpoint 29: Actions
PDF/UA-1 clause 7.19 · 1 failure condition
- 29-001 Human decision A script requires specific timing for individual keystrokes Field JavaScript that depends on how fast the user types — auto-advancing a date field, for instance — locks out anyone using switch access or an on-screen keyboard.
Checkpoint 30: XObjects
PDF/UA-1 clause 7.20 · 2 failure conditions
- 30-001 Blocker A reference XObject is present Reference XObjects import content from an external file, which may not be available. PDF/UA-1 forbids them.
- 30-002 Blocker Form XObject contains MCIDs and is referenced more than once An MCID is only unique within one content stream. Re-using an XObject that contains MCIDs makes the structure-to-content mapping ambiguous.
Checkpoint 31: Fonts
PDF/UA-1 clause 7.21 · 30 failure conditions · 1 written
- 31-001 Blocker CIDSystemInfo Registry values are not identical The CMap and the descendant CID font must agree on the character collection registry.
- 31-002 Blocker CIDSystemInfo Ordering values are not identical The CMap and the descendant CID font must agree on the character collection ordering.
- 31-003 Blocker CIDSystemInfo Supplement of the CID font is lower than that of the CMap The font's character collection supplement must be at least as new as the CMap's, or the CMap may reference CIDs the font does not define.
- 31-004 Blocker A Type 2 CID font contains neither a stream nor the name Identity as CIDToGIDMap CIDToGIDMap must be either the name /Identity or a stream mapping CIDs to glyph indices.
- 31-005 Blocker A Type 2 CID font does not contain a CIDToGIDMap entry The entry is absent entirely.
- 31-006 Blocker A CMap is neither listed in ISO 32000-1 Table 118 nor embedded A predefined CMap must be one of the standard names; anything else must be embedded in the file.
- 31-007 Blocker The WMode entry in a CMap dictionary is not identical to the WMode value in the CMap stream Writing mode (horizontal or vertical) must be declared consistently in the dictionary and the stream.
- 31-008 Blocker A CMap references another CMap which is not listed in ISO 32000-1 Table 118 A UseCMap chain must terminate at a predefined CMap.
- 31-009 Blocker For a font used by text intended to be rendered the font program is not embedded PDF/UA-1 requires every font used for visible text to be embedded, so the document renders and extracts identically everywhere. A glyph counts as rendered if the text render mode is not 3.
- 31-010 Human decision A font program is embedded that is not legally embeddable for unlimited, universal rendering The font's embedding permission bits forbid the kind of embedding used. Machines can read the flags but the flags may not reflect the actual licence.
- 31-011 Blocker The embedded font program does not contain glyphs for all referenced glyphs The subset embedded in the file is missing glyphs the content stream asks for — very common when a document is edited after subsetting.
- 31-012 Blocker A glyph present in an embedded Type 1 font program is not listed in CharSet CharSet must accurately list the glyphs in the embedded subset.
- 31-013 Blocker A glyph listed in CharSet is not present in the Type 1 font program CharSet promises glyphs the font does not contain.
- 31-014 Blocker A glyph present in an embedded CID font program is not listed in CIDSet CIDSet must accurately list the CIDs in the embedded subset.
- 31-015 Blocker A glyph listed in CIDSet is not present in the CID font program CIDSet promises CIDs the font does not contain.
- 31-016 Blocker Glyph widths in the font dictionary and the font program differ The /Widths array must agree with the embedded font program.
- 31-017 Blocker A non-symbolic TrueType font has no non-symbolic cmap A font declared non-symbolic must actually carry a (3,1) or (1,0) cmap subtable.
- 31-018 Blocker A glyph cannot be looked up by any non-symbolic cmap entry Some rendered glyph is unreachable through the declared cmap tables.
- 31-019 Blocker The font dictionary for a non-symbolic TrueType font does not contain an Encoding entry Non-symbolic TrueType fonts must declare an /Encoding.
- 31-020 Blocker The Encoding dictionary for a non-symbolic TrueType font does not contain BaseEncoding If /Encoding is a dictionary it must name a /BaseEncoding.
- 31-021 Blocker BaseEncoding is neither MacRomanEncoding nor WinAnsiEncoding Only MacRomanEncoding and WinAnsiEncoding are permitted for non-symbolic TrueType fonts.
- 31-022 Blocker Differences contains glyph names not listed in the Adobe Glyph List Glyph names in /Differences must be resolvable through the Adobe Glyph List so a processor can derive Unicode.
- 31-023 Blocker Differences present but the font has no (3,1) Microsoft Unicode cmap The Differences array is resolved through the (3,1) cmap; without it the mapping is undefined.
- 31-024 Blocker The Encoding entry is present in the font dictionary for a symbolic TrueType font Symbolic TrueType fonts must not carry an /Encoding; the font's own cmap governs.
- 31-025 Blocker The embedded font program for a symbolic TrueType font contains no cmap A symbolic TrueType font must contain at least one cmap subtable.
- 31-026 Blocker A symbolic TrueType font has multiple cmaps but none is a (3,0) Microsoft Symbol cmap With multiple cmaps present, a (3,0) symbol cmap is required to disambiguate.
- 31-027 Blocker A font dictionary does not contain the ToUnicode entry and no exemption applies A ToUnicode CMap is required unless the font uses MacRoman/MacExpert/WinAnsi encoding, or is a Type 1/Type 3 whose glyph names are all in the Adobe Glyph List or the Symbol set, or is a Type 0 whose descendant uses a standard Adobe character collection, or is a non-symbolic TrueType.
- 31-028 Blocker Unicode values in the ToUnicode CMap are zero U+0000 is not a valid mapping target; it usually means the producer could not determine the character and wrote a placeholder.
- 31-029 Blocker Unicode values in the ToUnicode CMap are U+FEFF or U+FFFE Byte-order marks are not characters and must not appear as mapping targets.
- 31-030 Blocker Characters used in text showing operators reference the .notdef glyph The content stream paints glyph index 0, which is by definition "no glyph" — typically a hollow box or nothing at all.
Right-to-left text and reading order (Taggart extension)
PDF/UA-1 clause n/a · 5 failure conditions · 2 written
- TG-RTL-001 Blocker Right-to-left text is stored in visual order Older Israeli government, legal and DTP systems lay out Hebrew by reversing the character order and then rendering left-to-right. The page looks correct, but the stored text is backwards. Extracting it gives you the sentence mirrored, and the bidi algorithm then reverses it a second time.
- TG-RTL-002 Blocker A right-to-left run has no language declaration The document declares en-US at the catalog and never overrides it, so Hebrew paragraphs inherit English.
- TG-RTL-003 Warning A mixed-direction run is not correctly ordered Hebrew sentences containing English product names, dates, percentages or citation numbers are the hardest bidi case. Producers frequently reverse the RTL and leave the LTR runs alone, or reverse everything.
- TG-RTL-004 Blocker Reading order is not right-to-left aware Auto-tagging tools order blocks left-to-right, top-to-bottom. In a Hebrew two-column layout the correct order is right column first.
- TG-RTL-005 Warning Right-to-left punctuation or numerals are misplaced A full stop that renders at the left edge of a Hebrew line must be stored at the end of the logical string, not the beginning. Brackets must be stored as the logical opening/closing character, not the visually mirrored one.
Checkpoint identifiers and failure-condition text are quoted from the PDF Association's Matterhorn Protocol 1.1 for interoperability. The plain-language explanations, severity model, screen-reader impact and remediation guidance are Taggart's own work. Taggart is not affiliated with the PDF Association.