{"ok":true,"profile":"PDF/UA-1","profile_id":"ua1","standard":"ISO 14289-1","catalog_version":"2026-08-03","count":106,"rules":[{"rule_id":"5-1","clause":"5","test_number":1,"object":"MainXMPPackage","spec_description":"The PDF/UA version and conformance level of a file shall be specified using the PDF/UA Identification extension schema","title":"Missing or malformed PDF/UA identifier","plain":"The XMP metadata does not declare that this file claims PDF/UA-1 conformance, or declares it with the wrong part number or namespace prefix.","impact":"Conformance checkers and assistive technology cannot tell that the file was produced as an accessible PDF. Many procurement and compliance workflows reject the file on this alone.","how_to_fix":["Add the PDF/UA identification schema to the document XMP metadata with pdfuaid:part set to 1.","In Acrobat Pro use the preflight fixup 'Add PDF/UA-1 entry' or apply the veraPDF metadata fixer.","Fix the underlying accessibility errors first: the identifier is a claim of conformance, not a fix."],"wcag":[]},{"rule_id":"5-2","clause":"5","test_number":2,"object":"PDFUAIdentification","spec_description":"The value of \"pdfuaid:part\" shall be the part number of the International Standard to which the file conforms","title":"Missing or malformed PDF/UA identifier","plain":"The XMP metadata does not declare that this file claims PDF/UA-1 conformance, or declares it with the wrong part number or namespace prefix.","impact":"Conformance checkers and assistive technology cannot tell that the file was produced as an accessible PDF. Many procurement and compliance workflows reject the file on this alone.","how_to_fix":["Add the PDF/UA identification schema to the document XMP metadata with pdfuaid:part set to 1.","In Acrobat Pro use the preflight fixup 'Add PDF/UA-1 entry' or apply the veraPDF metadata fixer.","Fix the underlying accessibility errors first: the identifier is a claim of conformance, not a fix."],"wcag":[]},{"rule_id":"5-3","clause":"5","test_number":3,"object":"PDFUAIdentification","spec_description":"Property \"part\" of the PDF/UA Identification Schema shall have namespace prefix \"pdfuaid\"","title":"Missing or malformed PDF/UA identifier","plain":"The XMP metadata does not declare that this file claims PDF/UA-1 conformance, or declares it with the wrong part number or namespace prefix.","impact":"Conformance checkers and assistive technology cannot tell that the file was produced as an accessible PDF. Many procurement and compliance workflows reject the file on this alone.","how_to_fix":["Add the PDF/UA identification schema to the document XMP metadata with pdfuaid:part set to 1.","In Acrobat Pro use the preflight fixup 'Add PDF/UA-1 entry' or apply the veraPDF metadata fixer.","Fix the underlying accessibility errors first: the identifier is a claim of conformance, not a fix."],"wcag":[]},{"rule_id":"5-4","clause":"5","test_number":4,"object":"PDFUAIdentification","spec_description":"Property \"amd\" of the PDF/UA Identification Schema shall have namespace prefix \"pdfuaid\"","title":"Missing or malformed PDF/UA identifier","plain":"The XMP metadata does not declare that this file claims PDF/UA-1 conformance, or declares it with the wrong part number or namespace prefix.","impact":"Conformance checkers and assistive technology cannot tell that the file was produced as an accessible PDF. Many procurement and compliance workflows reject the file on this alone.","how_to_fix":["Add the PDF/UA identification schema to the document XMP metadata with pdfuaid:part set to 1.","In Acrobat Pro use the preflight fixup 'Add PDF/UA-1 entry' or apply the veraPDF metadata fixer.","Fix the underlying accessibility errors first: the identifier is a claim of conformance, not a fix."],"wcag":[]},{"rule_id":"5-5","clause":"5","test_number":5,"object":"PDFUAIdentification","spec_description":"Property \"corr\" of the PDF/UA Identification Schema shall have namespace prefix \"pdfuaid\"","title":"Missing or malformed PDF/UA identifier","plain":"The XMP metadata does not declare that this file claims PDF/UA-1 conformance, or declares it with the wrong part number or namespace prefix.","impact":"Conformance checkers and assistive technology cannot tell that the file was produced as an accessible PDF. Many procurement and compliance workflows reject the file on this alone.","how_to_fix":["Add the PDF/UA identification schema to the document XMP metadata with pdfuaid:part set to 1.","In Acrobat Pro use the preflight fixup 'Add PDF/UA-1 entry' or apply the veraPDF metadata fixer.","Fix the underlying accessibility errors first: the identifier is a claim of conformance, not a fix."],"wcag":[]},{"rule_id":"6.1-1","clause":"6.1","test_number":1,"object":"CosDocument","spec_description":"The file header shall consist of \"%PDF-1.n\" followed by a single EOL marker, where 'n' is a single digit number between 0 (30h) and 7 (37h)","title":"Malformed PDF file header","plain":"The file does not start with a well-formed %PDF-1.n header followed by a single end-of-line marker.","impact":"Strict parsers may reject the file. It usually indicates the file was assembled or truncated by a tool that does not write conforming PDF.","how_to_fix":["Re-save the file with a standards-compliant PDF producer.","Check any post-processing step that concatenates or rewrites the file bytes.","Validate the output of your generation pipeline, not just the source document."],"wcag":[]},{"rule_id":"6.2-1","clause":"6.2","test_number":1,"object":"CosDocument","spec_description":"The document catalog dictionary shall include a MarkInfo dictionary containing an entry, Marked, whose value shall be true","title":"Document is not tagged","plain":"The file has no usable logical structure: either the Marked flag is missing, there is no structure tree, or structure elements are detached from their parents.","impact":"This is the most severe accessibility failure. Without a structure tree, assistive technology has no reading order, no headings, and no way to describe content. Everything else in PDF/UA depends on this.","how_to_fix":["Tag the document at the source: use Word, InDesign, or LaTeX export settings that produce a tagged PDF.","If you only have the PDF, run Acrobat Pro's Accessibility > Autotag Document, then review the reading order manually.","Never rely on autotagging alone for tables, forms, or multi-column layouts: check the result in the Tags panel."],"wcag":["1.3.1 Info and Relationships (A)","1.3.2 Meaningful Sequence (A)"]},{"rule_id":"7.1-1","clause":"7.1","test_number":1,"object":"SEMarkedContent","spec_description":"Content marked as Artifact should not be present inside tagged content","title":"Content is neither tagged nor marked as an artifact","plain":"Every piece of visible content must be either real content in the structure tree, or explicitly marked as an artifact (decoration, page number, background, rule line). Some content here is neither, or artifacts and real content are nested inside each other.","impact":"Untagged content is invisible to screen readers, so parts of the page are silently skipped. Wrongly nested artifacts can hide real text or announce decorative page furniture as content.","how_to_fix":["In Acrobat Pro open Accessibility > Reading Order and mark decorative graphics, rules, and watermarks as Background (artifact).","Tag page headers, footers, and page numbers as artifacts rather than leaving them untagged.","Check the Tags panel for content that appears on the page but has no corresponding tag."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-2","clause":"7.1","test_number":2,"object":"SEMarkedContent","spec_description":"Tagged content should not be present inside content marked as Artifact","title":"Content is neither tagged nor marked as an artifact","plain":"Every piece of visible content must be either real content in the structure tree, or explicitly marked as an artifact (decoration, page number, background, rule line). Some content here is neither, or artifacts and real content are nested inside each other.","impact":"Untagged content is invisible to screen readers, so parts of the page are silently skipped. Wrongly nested artifacts can hide real text or announce decorative page furniture as content.","how_to_fix":["In Acrobat Pro open Accessibility > Reading Order and mark decorative graphics, rules, and watermarks as Background (artifact).","Tag page headers, footers, and page numbers as artifacts rather than leaving them untagged.","Check the Tags panel for content that appears on the page but has no corresponding tag."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-3","clause":"7.1","test_number":3,"object":"SESimpleContentItem","spec_description":"Content shall be marked as Artifact or tagged as real content","title":"Untagged content on the page","plain":"Content is drawn on the page but is neither tagged as real content nor marked as an artifact.","impact":"This content does not exist for a screen reader user. It is the single most common cause of a document being unusable with assistive technology.","how_to_fix":["Open Accessibility > Reading Order in Acrobat Pro and assign a tag to each untagged region.","Mark decorative lines, background images, and repeated page furniture as Background (artifact).","If the whole document reports this rule, it is untagged: retag it at the source rather than page by page."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-4","clause":"7.1","test_number":4,"object":"CosDocument","spec_description":"Files shall have a Suspects value of false(ISO 32000-1:2008, Table 321)","title":"Document is flagged as having unreliable tagging","plain":"The Suspects flag is set to true, which is how a producer records that its own tagging may be wrong.","impact":"The tagging cannot be trusted, so no conformance claim is possible even if every other check passes.","how_to_fix":["Review the tag structure and reading order manually, correcting whatever the producer was unsure about.","Once verified, clear the Suspects entry in the MarkInfo dictionary.","Do not clear the flag without reviewing the tags: it exists to signal genuine uncertainty."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-5","clause":"7.1","test_number":5,"object":"SENonStandard","spec_description":"All non-standard structure types shall be mapped to the nearest functionally equivalent standard type, as defined in ISO 32000-1:2008, 14.8.4, in the role map dictionary of the structure tree root. This mapping may be indirect; within the role map a non-standard type can map directly to another non-standard type, but eventually the mapping shall terminate at a standard type","title":"Custom tag types are not mapped correctly","plain":"The document uses non-standard structure types that are not mapped to standard PDF types, map in a circle, or remap standard types to something else.","impact":"Assistive technology cannot interpret unknown tag names. A custom tag such as 'BodyText' means nothing unless it maps to P.","how_to_fix":["Edit the role map in the structure tree root so every custom type resolves to a standard type such as P, H1, Table, or L.","Remove any mapping that redefines a standard type (for example mapping H1 to P).","Prefer standard tags in the authoring tool so the role map stays small."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-6","clause":"7.1","test_number":6,"object":"PDStructElem","spec_description":"A circular mapping shall not exist","title":"Custom tag types are not mapped correctly","plain":"The document uses non-standard structure types that are not mapped to standard PDF types, map in a circle, or remap standard types to something else.","impact":"Assistive technology cannot interpret unknown tag names. A custom tag such as 'BodyText' means nothing unless it maps to P.","how_to_fix":["Edit the role map in the structure tree root so every custom type resolves to a standard type such as P, H1, Table, or L.","Remove any mapping that redefines a standard type (for example mapping H1 to P).","Prefer standard tags in the authoring tool so the role map stays small."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-7","clause":"7.1","test_number":7,"object":"PDStructElem","spec_description":"Standard tags defined in ISO 32000-1:2008, 14.8.4, shall not be remapped","title":"Custom tag types are not mapped correctly","plain":"The document uses non-standard structure types that are not mapped to standard PDF types, map in a circle, or remap standard types to something else.","impact":"Assistive technology cannot interpret unknown tag names. A custom tag such as 'BodyText' means nothing unless it maps to P.","how_to_fix":["Edit the role map in the structure tree root so every custom type resolves to a standard type such as P, H1, Table, or L.","Remove any mapping that redefines a standard type (for example mapping H1 to P).","Prefer standard tags in the authoring tool so the role map stays small."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.1-8","clause":"7.1","test_number":8,"object":"PDDocument","spec_description":"The Catalog dictionary of a conforming file shall contain the Metadata key whose value is a metadata stream as defined in ISO 32000-1:2008, 14.3.2. The metadata stream dictionary shall contain entry Type with value /Metadata and entry Subtype with value /XML","title":"Document title and metadata problems","plain":"The document is missing XMP metadata, a dc:title entry, or the setting that makes viewers show the title instead of the file name.","impact":"Screen reader users hear the file name (for example 'invoice_final_v3.pdf') instead of a meaningful document title, and cannot tell what the document is from the window title.","how_to_fix":["Set a meaningful document title in File > Properties > Description.","In Acrobat Pro set File > Properties > Initial View > Show to 'Document Title'.","When generating PDFs programmatically, write both the Info dictionary Title and the XMP dc:title entry."],"wcag":["2.4.2 Page Titled (A)"]},{"rule_id":"7.1-9","clause":"7.1","test_number":9,"object":"MainXMPPackage","spec_description":"The Metadata stream in the document's catalog dictionary shall contain a dc:title entry, where dc is the recommended prefix for the Dublin Core metadata schema as defined in the XMP specification, which clearly identifies the document","title":"Document has no title in metadata","plain":"The XMP metadata has no dc:title entry identifying the document.","impact":"Assistive technology, search tools, and document management systems have no meaningful name for the file.","how_to_fix":["Set the title in File > Properties > Description > Title.","Write the title into XMP dc:title, not only the legacy Info dictionary.","Use a descriptive title such as 'Annual Report 2026' rather than a file name or template name."],"wcag":["2.4.2 Page Titled (A)"]},{"rule_id":"7.1-10","clause":"7.1","test_number":10,"object":"CosDocument","spec_description":"The document catalog dictionary shall include a ViewerPreferences dictionary containing a DisplayDocTitle key, whose value shall be true","title":"Viewer does not show the document title","plain":"The ViewerPreferences dictionary is missing DisplayDocTitle, or it is set to false, so the reader shows the file name in the window title.","impact":"Screen reader users hear the file name instead of the document title when the document opens, which rarely says anything useful about the content.","how_to_fix":["In Acrobat Pro set File > Properties > Initial View > Show to 'Document Title'.","When generating PDFs, set /ViewerPreferences << /DisplayDocTitle true >> in the catalog.","Make sure a real dc:title is also set, otherwise this setting shows an empty title."],"wcag":["2.4.2 Page Titled (A)"]},{"rule_id":"7.1-11","clause":"7.1","test_number":11,"object":"PDDocument","spec_description":"The logical structure of the conforming file shall be described by a structure hierarchy rooted in the StructTreeRoot entry of the document catalog dictionary, as described in ISO 32000-1:2008, 14.7","title":"Document is not tagged","plain":"The file has no usable logical structure: either the Marked flag is missing, there is no structure tree, or structure elements are detached from their parents.","impact":"This is the most severe accessibility failure. Without a structure tree, assistive technology has no reading order, no headings, and no way to describe content. Everything else in PDF/UA depends on this.","how_to_fix":["Tag the document at the source: use Word, InDesign, or LaTeX export settings that produce a tagged PDF.","If you only have the PDF, run Acrobat Pro's Accessibility > Autotag Document, then review the reading order manually.","Never rely on autotagging alone for tables, forms, or multi-column layouts: check the result in the Tags panel."],"wcag":["1.3.1 Info and Relationships (A)","1.3.2 Meaningful Sequence (A)"]},{"rule_id":"7.1-12","clause":"7.1","test_number":12,"object":"PDStructElem","spec_description":"A structure element dictionary shall contain the P (parent) entry according to ISO 32000-1:2008, 14.7.2, Table 355","title":"Document is not tagged","plain":"The file has no usable logical structure: either the Marked flag is missing, there is no structure tree, or structure elements are detached from their parents.","impact":"This is the most severe accessibility failure. Without a structure tree, assistive technology has no reading order, no headings, and no way to describe content. Everything else in PDF/UA depends on this.","how_to_fix":["Tag the document at the source: use Word, InDesign, or LaTeX export settings that produce a tagged PDF.","If you only have the PDF, run Acrobat Pro's Accessibility > Autotag Document, then review the reading order manually.","Never rely on autotagging alone for tables, forms, or multi-column layouts: check the result in the Tags panel."],"wcag":["1.3.1 Info and Relationships (A)","1.3.2 Meaningful Sequence (A)"]},{"rule_id":"7.2-2","clause":"7.2","test_number":2,"object":"PDOutline","spec_description":"Natural language in the Outline entries shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-3","clause":"7.2","test_number":3,"object":"SETable","spec_description":"Table element may contain only TR, THead, TBody, TFoot and Caption elements","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-4","clause":"7.2","test_number":4,"object":"SETR","spec_description":"TR element should be contained in Table, THead, TBody or TFoot element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-5","clause":"7.2","test_number":5,"object":"SETHead","spec_description":"THead element should be contained in Table element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-6","clause":"7.2","test_number":6,"object":"SETBody","spec_description":"TBody element should be contained in Table element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-7","clause":"7.2","test_number":7,"object":"SETFoot","spec_description":"TFoot element should be contained in Table element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-8","clause":"7.2","test_number":8,"object":"SETH","spec_description":"TH element should be contained in TR element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-9","clause":"7.2","test_number":9,"object":"SETD","spec_description":"TD element should be contained in TR element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-10","clause":"7.2","test_number":10,"object":"SETR","spec_description":"TR element may contain only TH and TD elements","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-11","clause":"7.2","test_number":11,"object":"SETable","spec_description":"Table element should contain zero or one THead kid","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-12","clause":"7.2","test_number":12,"object":"SETable","spec_description":"Table element should contain zero or one TFoot kid","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-13","clause":"7.2","test_number":13,"object":"SETable","spec_description":"If Table element contains TFoot kid, Table element should contain one or more TBody kids","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-14","clause":"7.2","test_number":14,"object":"SETable","spec_description":"If Table element contains THead kid, Table element should contain one or more TBody kids","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-15","clause":"7.2","test_number":15,"object":"SETableCell","spec_description":"A table cell shall not have intersection with other cells","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-16","clause":"7.2","test_number":16,"object":"SETable","spec_description":"Table element may contain a Caption element as its first or last kid","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-17","clause":"7.2","test_number":17,"object":"SELI","spec_description":"LI element should be contained in L element","title":"List structure is invalid","plain":"List tags are nested incorrectly: LI outside L, LBody outside LI, unexpected children inside L or LI, or a Caption in the wrong position.","impact":"Assistive technology announces list length and item position from this structure. Broken nesting means users lose the 'item 3 of 8' context that makes lists navigable.","how_to_fix":["Ensure the hierarchy is L > LI > (Lbl, LBody) with nothing else in between.","Move a list Caption so it is the first child of L.","Use real list styles in the source document instead of manually typed bullet characters."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-18","clause":"7.2","test_number":18,"object":"SELBody","spec_description":"LBody element should be contained in LI element","title":"List structure is invalid","plain":"List tags are nested incorrectly: LI outside L, LBody outside LI, unexpected children inside L or LI, or a Caption in the wrong position.","impact":"Assistive technology announces list length and item position from this structure. Broken nesting means users lose the 'item 3 of 8' context that makes lists navigable.","how_to_fix":["Ensure the hierarchy is L > LI > (Lbl, LBody) with nothing else in between.","Move a list Caption so it is the first child of L.","Use real list styles in the source document instead of manually typed bullet characters."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-19","clause":"7.2","test_number":19,"object":"SEL","spec_description":"L element may contain only L, LI and Caption elements","title":"List structure is invalid","plain":"List tags are nested incorrectly: LI outside L, LBody outside LI, unexpected children inside L or LI, or a Caption in the wrong position.","impact":"Assistive technology announces list length and item position from this structure. Broken nesting means users lose the 'item 3 of 8' context that makes lists navigable.","how_to_fix":["Ensure the hierarchy is L > LI > (Lbl, LBody) with nothing else in between.","Move a list Caption so it is the first child of L.","Use real list styles in the source document instead of manually typed bullet characters."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-20","clause":"7.2","test_number":20,"object":"SELI","spec_description":"LI element may contain only Lbl and LBody elements","title":"List structure is invalid","plain":"List tags are nested incorrectly: LI outside L, LBody outside LI, unexpected children inside L or LI, or a Caption in the wrong position.","impact":"Assistive technology announces list length and item position from this structure. Broken nesting means users lose the 'item 3 of 8' context that makes lists navigable.","how_to_fix":["Ensure the hierarchy is L > LI > (Lbl, LBody) with nothing else in between.","Move a list Caption so it is the first child of L.","Use real list styles in the source document instead of manually typed bullet characters."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-21","clause":"7.2","test_number":21,"object":"PDStructElem","spec_description":"Natural language for text in ActualText attribute shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-22","clause":"7.2","test_number":22,"object":"PDStructElem","spec_description":"Natural language for text in Alt attribute shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-23","clause":"7.2","test_number":23,"object":"PDStructElem","spec_description":"Natural language for text in E attribute shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-24","clause":"7.2","test_number":24,"object":"PDAnnot","spec_description":"Natural language in the Contents entry for annotations shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-25","clause":"7.2","test_number":25,"object":"PDFormField","spec_description":"Natural language in the TU key for form fields shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-26","clause":"7.2","test_number":26,"object":"SETOCI","spec_description":"TOCI element should be contained in TOC element","title":"Table of contents structure is invalid","plain":"TOCI elements sit outside a TOC element, a TOC contains unexpected children, or the Caption is not the first child.","impact":"The table of contents does not behave as a navigable list, so users cannot use it to jump around the document.","how_to_fix":["Wrap all TOCI entries in a TOC element, allowing nested TOC elements for sub-levels.","Move any Caption so it is the first child of the TOC.","Regenerate the table of contents from the source document so tagging is produced automatically."],"wcag":["1.3.1 Info and Relationships (A)","2.4.5 Multiple Ways (AA)"]},{"rule_id":"7.2-27","clause":"7.2","test_number":27,"object":"SETOC","spec_description":"TOC element may contain only TOC, TOCI and Caption elements","title":"Table of contents structure is invalid","plain":"TOCI elements sit outside a TOC element, a TOC contains unexpected children, or the Caption is not the first child.","impact":"The table of contents does not behave as a navigable list, so users cannot use it to jump around the document.","how_to_fix":["Wrap all TOCI entries in a TOC element, allowing nested TOC elements for sub-levels.","Move any Caption so it is the first child of the TOC.","Regenerate the table of contents from the source document so tagging is produced automatically."],"wcag":["1.3.1 Info and Relationships (A)","2.4.5 Multiple Ways (AA)"]},{"rule_id":"7.2-28","clause":"7.2","test_number":28,"object":"SETOC","spec_description":"TOC element may contain a Caption element only as its first kid","title":"Table of contents structure is invalid","plain":"TOCI elements sit outside a TOC element, a TOC contains unexpected children, or the Caption is not the first child.","impact":"The table of contents does not behave as a navigable list, so users cannot use it to jump around the document.","how_to_fix":["Wrap all TOCI entries in a TOC element, allowing nested TOC elements for sub-levels.","Move any Caption so it is the first child of the TOC.","Regenerate the table of contents from the source document so tagging is produced automatically."],"wcag":["1.3.1 Info and Relationships (A)","2.4.5 Multiple Ways (AA)"]},{"rule_id":"7.2-29","clause":"7.2","test_number":29,"object":"CosLang","spec_description":"If the Lang entry is present in the document's Catalog dictionary or in a structure element dictionary or property list, its value shall be a language identifier as described in ISO 32000-1:2008, 14.9.2. A language identifier shall be a Language-Tag as defined in RFC 3066, Tags for the Identification of Languages","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-30","clause":"7.2","test_number":30,"object":"SEMarkedContent","spec_description":"Natural language for text in ActualText attribute in Span Marked Content shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-31","clause":"7.2","test_number":31,"object":"SEMarkedContent","spec_description":"Natural language for text in Alt attribute in Span Marked Content shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-32","clause":"7.2","test_number":32,"object":"SEMarkedContent","spec_description":"Natural language for text in E attribute in Span Marked Content shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-33","clause":"7.2","test_number":33,"object":"XMPLangAlt","spec_description":"Natural language for document metadata shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-34","clause":"7.2","test_number":34,"object":"SETextItem","spec_description":"Natural language for text in page content shall be determined","title":"Natural language is not declared","plain":"Text in the document, or in an Alt, ActualText, E, Contents, or TU entry, has no determinable language, or the Lang value is not a valid RFC 3066 language tag.","impact":"A screen reader pronounces text using the wrong voice and pronunciation rules, which can make content unintelligible, especially for multilingual documents.","how_to_fix":["Set the document language in File > Properties > Advanced > Reading Options > Language.","Mark passages in another language by setting Lang on the enclosing structure element.","Use valid tags such as en, en-US, or cs-CZ: a free-text value like 'English' fails validation."],"wcag":["3.1.1 Language of Page (A)","3.1.2 Language of Parts (AA)"]},{"rule_id":"7.2-36","clause":"7.2","test_number":36,"object":"SETHead","spec_description":"THead element may contain only TR elements","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-37","clause":"7.2","test_number":37,"object":"SETBody","spec_description":"TBody element may contain only TR elements","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-38","clause":"7.2","test_number":38,"object":"SETFoot","spec_description":"TFoot element may contain only TR elements","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-39","clause":"7.2","test_number":39,"object":"SETable","spec_description":"Table element may contain only one Caption element","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-40","clause":"7.2","test_number":40,"object":"SEL","spec_description":"L element may contain a Caption element only as its first kid","title":"List structure is invalid","plain":"List tags are nested incorrectly: LI outside L, LBody outside LI, unexpected children inside L or LI, or a Caption in the wrong position.","impact":"Assistive technology announces list length and item position from this structure. Broken nesting means users lose the 'item 3 of 8' context that makes lists navigable.","how_to_fix":["Ensure the hierarchy is L > LI > (Lbl, LBody) with nothing else in between.","Move a list Caption so it is the first child of L.","Use real list styles in the source document instead of manually typed bullet characters."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-41","clause":"7.2","test_number":41,"object":"SETable","spec_description":"Table columns shall have the same number of rows (taking into account row spans)","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-42","clause":"7.2","test_number":42,"object":"SETable","spec_description":"Table rows shall have the same number of columns (taking into account column spans)","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.2-43","clause":"7.2","test_number":43,"object":"SETable","spec_description":"Table rows shall have the same number of columns (taking into account column spans)","title":"Table structure is invalid","plain":"The table tags do not follow the required hierarchy (Table > THead/TBody/TFoot > TR > TH/TD), or the grid is irregular: rows with differing column counts, overlapping cells, or misplaced captions.","impact":"Screen reader users navigate tables cell by cell and rely on the row and column structure to stay oriented. A broken grid makes the data unreadable in a table reading mode.","how_to_fix":["Open the Tags panel and confirm the nesting: every TR sits directly inside Table, THead, TBody, or TFoot, and every TH/TD sits inside a TR.","Fix merged and split cells so that RowSpan and ColSpan account for every position in the grid.","Rebuild badly converted tables in the source document rather than repairing tag by tag; layout tables that carry no data should be marked as artifacts instead."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.3-1","clause":"7.3","test_number":1,"object":"SEFigure","spec_description":"Figure tags shall include an alternative representation or replacement text that represents the contents marked with the Figure tag as noted in ISO 32000-1:2008, 14.7.2, Table 323","title":"Image is missing alternative text","plain":"A Figure tag has no Alt or ActualText attribute, so the image has no textual equivalent.","impact":"Screen reader users get nothing at all for this image. If the image carries information (a chart, a signature, a logo with text), that information is lost.","how_to_fix":["Add concise Alt text describing the purpose of the image, not its appearance.","Use ActualText instead of Alt when the graphic is really text, such as a stylised drop cap.","If the image is purely decorative, do not give it a Figure tag: mark it as an artifact instead."],"wcag":["1.1.1 Non-text Content (A)"]},{"rule_id":"7.4.2-1","clause":"7.4.2","test_number":1,"object":"SEHn","spec_description":"For documents that are not strongly structured, as described in ISO 32000-1:2008, 14.8.4.3.5, heading tags shall be used as follows: (*) If any heading tags are used, H1 shall be the first. (*) A document may use more than one instance of any specific tag level. For example, a tag level may be repeated if document content requires it. (*) If document semantics require a descending sequence of headers, such a sequence shall proceed in strict numerical order and shall not skip an intervening heading level. (*) A document may increment its heading sequence without restarting at H1 if document semantics require it","title":"Heading structure is inconsistent","plain":"The document mixes strongly structured headings (H1, H2, H3) with weakly structured H tags, skips heading levels, or nests more than one H under a single node.","impact":"Heading navigation is the primary way screen reader users skim a document. Skipped or inconsistent levels break the outline they navigate by.","how_to_fix":["Pick one model: numbered headings (H1..H6) throughout, or H tags throughout, never both in the same file.","Start at H1 and do not skip levels when descending (H1 > H2 > H3).","Fix heading levels in the source document's paragraph styles so every export is correct."],"wcag":["1.3.1 Info and Relationships (A)","2.4.6 Headings and Labels (AA)"]},{"rule_id":"7.4.4-1","clause":"7.4.4","test_number":1,"object":"PDStructElem","spec_description":"Each node in the tag tree shall contain at most one child H tag","title":"Heading structure is inconsistent","plain":"The document mixes strongly structured headings (H1, H2, H3) with weakly structured H tags, skips heading levels, or nests more than one H under a single node.","impact":"Heading navigation is the primary way screen reader users skim a document. Skipped or inconsistent levels break the outline they navigate by.","how_to_fix":["Pick one model: numbered headings (H1..H6) throughout, or H tags throughout, never both in the same file.","Start at H1 and do not skip levels when descending (H1 > H2 > H3).","Fix heading levels in the source document's paragraph styles so every export is correct."],"wcag":["1.3.1 Info and Relationships (A)","2.4.6 Headings and Labels (AA)"]},{"rule_id":"7.4.4-2","clause":"7.4.4","test_number":2,"object":"SEH","spec_description":"All documents shall be either strongly or weakly structured, but not both","title":"Heading structure is inconsistent","plain":"The document mixes strongly structured headings (H1, H2, H3) with weakly structured H tags, skips heading levels, or nests more than one H under a single node.","impact":"Heading navigation is the primary way screen reader users skim a document. Skipped or inconsistent levels break the outline they navigate by.","how_to_fix":["Pick one model: numbered headings (H1..H6) throughout, or H tags throughout, never both in the same file.","Start at H1 and do not skip levels when descending (H1 > H2 > H3).","Fix heading levels in the source document's paragraph styles so every export is correct."],"wcag":["1.3.1 Info and Relationships (A)","2.4.6 Headings and Labels (AA)"]},{"rule_id":"7.4.4-3","clause":"7.4.4","test_number":3,"object":"SEHn","spec_description":"All documents shall be either strongly or weakly structured, but not both","title":"Heading structure is inconsistent","plain":"The document mixes strongly structured headings (H1, H2, H3) with weakly structured H tags, skips heading levels, or nests more than one H under a single node.","impact":"Heading navigation is the primary way screen reader users skim a document. Skipped or inconsistent levels break the outline they navigate by.","how_to_fix":["Pick one model: numbered headings (H1..H6) throughout, or H tags throughout, never both in the same file.","Start at H1 and do not skip levels when descending (H1 > H2 > H3).","Fix heading levels in the source document's paragraph styles so every export is correct."],"wcag":["1.3.1 Info and Relationships (A)","2.4.6 Headings and Labels (AA)"]},{"rule_id":"7.5-1","clause":"7.5","test_number":1,"object":"SETD","spec_description":"If the table's structure is not determinable via Headers and IDs, then structure elements of type TH shall have a Scope attribute","title":"Table headers are missing a Scope attribute","plain":"The table's header relationships cannot be derived automatically, and the TH elements do not declare whether they head a row or a column.","impact":"Screen readers announce the wrong header (or none) when a user moves between data cells, which makes numeric tables ambiguous.","how_to_fix":["Give every TH a Scope attribute of Row or Column in the tag properties.","For complex tables with spanning headers, use Headers and IDs attributes instead of Scope.","In Acrobat Pro use the Table Editor (Reading Order > Table) to set cell types and scopes visually."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.5-2","clause":"7.5","test_number":2,"object":"SETD","spec_description":"If the table's structure is not determinable via Headers and IDs, then structure elements of type TH shall have a Scope attribute","title":"Table headers are missing a Scope attribute","plain":"The table's header relationships cannot be derived automatically, and the TH elements do not declare whether they head a row or a column.","impact":"Screen readers announce the wrong header (or none) when a user moves between data cells, which makes numeric tables ambiguous.","how_to_fix":["Give every TH a Scope attribute of Row or Column in the tag properties.","For complex tables with spanning headers, use Headers and IDs attributes instead of Scope.","In Acrobat Pro use the Table Editor (Reading Order > Table) to set cell types and scopes visually."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.7-1","clause":"7.7","test_number":1,"object":"SEFormula","spec_description":"All mathematical expressions shall be enclosed within a Formula tag as detailed in ISO 32000-1:2008, 14.8.4.5 and shall have Alt or ActualText attributes","title":"Mathematical expression is missing a text equivalent","plain":"A mathematical expression is not enclosed in a Formula tag, or the Formula tag has no Alt or ActualText.","impact":"Equations rendered as glyph soup or images read as nonsense. Without a text equivalent, the mathematics is inaccessible.","how_to_fix":["Wrap the expression in a Formula tag.","Add Alt text that reads the expression the way a person would say it aloud.","For documents with heavy mathematics, consider providing an accompanying HTML or MathML version."],"wcag":["1.1.1 Non-text Content (A)"]},{"rule_id":"7.9-1","clause":"7.9","test_number":1,"object":"SENote","spec_description":"Note tag shall have ID entry","title":"Footnote or endnote is missing a unique ID","plain":"A Note tag has no ID entry, or two Note tags share the same ID.","impact":"Assistive technology cannot reliably associate a reference in the text with its note, so users lose the link between the two.","how_to_fix":["Give every Note element a unique ID value in the structure element properties.","Link references to notes using Reference elements pointing at those IDs.","Generate footnotes with the source application's footnote feature rather than manual superscripts."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.9-2","clause":"7.9","test_number":2,"object":"SENote","spec_description":"Each Note tag shall have unique ID key","title":"Footnote or endnote is missing a unique ID","plain":"A Note tag has no ID entry, or two Note tags share the same ID.","impact":"Assistive technology cannot reliably associate a reference in the text with its note, so users lose the link between the two.","how_to_fix":["Give every Note element a unique ID value in the structure element properties.","Link references to notes using Reference elements pointing at those IDs.","Generate footnotes with the source application's footnote feature rather than manual superscripts."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.10-1","clause":"7.10","test_number":1,"object":"PDOCConfig","spec_description":"Each optional content configuration dictionary that forms the value of the D key, or that is an element in the array that forms the value of the Configs key in the OCProperties dictionary, shall contain the Name key","title":"Optional content (layers) is configured incorrectly","plain":"An optional content configuration dictionary has no Name, or uses the forbidden AS key for automatic state changes.","impact":"Users cannot tell what a layer contains, and automatic visibility changes can hide content from assistive technology without warning.","how_to_fix":["Give every optional content configuration a human-readable Name.","Remove the AS entry so layer visibility does not change automatically based on usage.","Flatten layers before publishing when they are not needed by the reader."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.10-2","clause":"7.10","test_number":2,"object":"PDOCConfig","spec_description":"The AS key shall not appear in any optional content configuration dictionary","title":"Optional content (layers) is configured incorrectly","plain":"An optional content configuration dictionary has no Name, or uses the forbidden AS key for automatic state changes.","impact":"Users cannot tell what a layer contains, and automatic visibility changes can hide content from assistive technology without warning.","how_to_fix":["Give every optional content configuration a human-readable Name.","Remove the AS entry so layer visibility does not change automatically based on usage.","Flatten layers before publishing when they are not needed by the reader."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.11-1","clause":"7.11","test_number":1,"object":"CosFileSpecification","spec_description":"The file specification dictionary for an embedded file shall contain the non-empty F and UF keys","title":"Embedded file is missing required names","plain":"The file specification for an attachment lacks non-empty F and UF entries.","impact":"Attachments appear without a usable name, so users cannot tell what they are about to open.","how_to_fix":["Set both the F (file name) and UF (Unicode file name) entries when embedding a file.","Add a Desc entry describing the attachment for extra clarity.","Re-attach the file with a current PDF library if the producer wrote only the legacy F entry."],"wcag":[]},{"rule_id":"7.15-1","clause":"7.15","test_number":1,"object":"PDAcroForm","spec_description":"Dynamic XFA forms shall not be used","title":"Form field is not accessible","plain":"The file uses dynamic XFA forms, or a widget annotation is not nested in a Form tag, or a form field has neither a TU tooltip nor an alternative description.","impact":"Screen reader users hear an unlabelled edit box with no idea what to type. Dynamic XFA forms are not accessible in most readers at all.","how_to_fix":["Set a meaningful tooltip (TU) on every form field: this is what assistive technology announces as the field label.","Ensure each widget annotation is nested inside a Form structure element.","Convert dynamic XFA forms to standard AcroForms before publishing."],"wcag":["3.3.2 Labels or Instructions (A)","4.1.2 Name, Role, Value (A)"]},{"rule_id":"7.16-1","clause":"7.16","test_number":1,"object":"PDEncryption","spec_description":"An encrypted conforming file shall contain a P key in its encryption dictionary (ISO 32000-1:2008, 7.6.3.2, Table 21). The 10th bit position of the P key shall be true","title":"Encryption blocks assistive technology","plain":"The file is encrypted and the permission bit that allows text extraction for accessibility is not set.","impact":"Screen readers are refused access to the text outright, which makes the document unusable regardless of how well it is tagged.","how_to_fix":["Re-apply security with the 'Enable text access for screen reader devices' permission allowed.","Prefer no encryption at all for documents intended for public distribution.","Check permissions after any post-processing step: some tools re-encrypt with default flags."],"wcag":[]},{"rule_id":"7.18.1-1","clause":"7.18.1","test_number":1,"object":"PDAnnot","spec_description":"An annotation, excluding annotations of subtype Widget, PrinterMark or Link, shall be nested within an Annot tag","title":"Annotation is not tagged or described","plain":"An annotation is not nested in an Annot tag, has no Contents or Alt description, or uses a subtype that PDF/UA forbids.","impact":"Comments, stamps, and other annotations are either skipped entirely or announced with no explanation of what they are.","how_to_fix":["Nest annotations inside an Annot structure element, except Widget, Link, and PrinterMark annotations.","Give every visible annotation a Contents value describing it.","Remove TrapNet annotations and mark printer marks as artifacts."],"wcag":["1.1.1 Non-text Content (A)","1.3.1 Info and Relationships (A)"]},{"rule_id":"7.18.1-2","clause":"7.18.1","test_number":2,"object":"PDAnnot","spec_description":"An annotation (except Widget annotations or hidden annotations, or those having rectangle outside the crop-box) shall have either Contents key or an Alt entry in the enclosing structure element","title":"Annotation is not tagged or described","plain":"An annotation is not nested in an Annot tag, has no Contents or Alt description, or uses a subtype that PDF/UA forbids.","impact":"Comments, stamps, and other annotations are either skipped entirely or announced with no explanation of what they are.","how_to_fix":["Nest annotations inside an Annot structure element, except Widget, Link, and PrinterMark annotations.","Give every visible annotation a Contents value describing it.","Remove TrapNet annotations and mark printer marks as artifacts."],"wcag":["1.1.1 Non-text Content (A)","1.3.1 Info and Relationships (A)"]},{"rule_id":"7.18.1-3","clause":"7.18.1","test_number":3,"object":"PDWidgetAnnot","spec_description":"A form field shall have a TU key present or all its Widget annotations shall have alternative descriptions (in the form of an Alt entry in the enclosing structure elements)","title":"Form field is not accessible","plain":"The file uses dynamic XFA forms, or a widget annotation is not nested in a Form tag, or a form field has neither a TU tooltip nor an alternative description.","impact":"Screen reader users hear an unlabelled edit box with no idea what to type. Dynamic XFA forms are not accessible in most readers at all.","how_to_fix":["Set a meaningful tooltip (TU) on every form field: this is what assistive technology announces as the field label.","Ensure each widget annotation is nested inside a Form structure element.","Convert dynamic XFA forms to standard AcroForms before publishing."],"wcag":["3.3.2 Labels or Instructions (A)","4.1.2 Name, Role, Value (A)"]},{"rule_id":"7.18.2-1","clause":"7.18.2","test_number":1,"object":"PDTrapNetAnnot","spec_description":"Annotations of subtype TrapNet shall not be permitted","title":"Annotation is not tagged or described","plain":"An annotation is not nested in an Annot tag, has no Contents or Alt description, or uses a subtype that PDF/UA forbids.","impact":"Comments, stamps, and other annotations are either skipped entirely or announced with no explanation of what they are.","how_to_fix":["Nest annotations inside an Annot structure element, except Widget, Link, and PrinterMark annotations.","Give every visible annotation a Contents value describing it.","Remove TrapNet annotations and mark printer marks as artifacts."],"wcag":["1.1.1 Non-text Content (A)","1.3.1 Info and Relationships (A)"]},{"rule_id":"7.18.3-1","clause":"7.18.3","test_number":1,"object":"PDPage","spec_description":"Every page on which there is an annotation shall contain in its page dictionary the key Tabs, and its value shall be S","title":"Page tab order does not follow the structure","plain":"A page containing annotations does not set Tabs to S, which is what makes keyboard focus follow the logical structure order.","impact":"Keyboard and screen reader users tab through links and fields in an unpredictable order, often jumping around the page.","how_to_fix":["Set the Tabs entry to S on every page that has annotations.","In Acrobat Pro use the Page Thumbnails panel, Page Properties > Tab Order > Use Document Structure.","Apply this to all pages: a single missed page breaks keyboard navigation there."],"wcag":["2.4.3 Focus Order (A)"]},{"rule_id":"7.18.4-1","clause":"7.18.4","test_number":1,"object":"PDWidgetAnnot","spec_description":"A Widget annotation shall be nested within a Form tag per ISO 32000-1:2008, 14.8.4.5, Table 340","title":"Form field is not accessible","plain":"The file uses dynamic XFA forms, or a widget annotation is not nested in a Form tag, or a form field has neither a TU tooltip nor an alternative description.","impact":"Screen reader users hear an unlabelled edit box with no idea what to type. Dynamic XFA forms are not accessible in most readers at all.","how_to_fix":["Set a meaningful tooltip (TU) on every form field: this is what assistive technology announces as the field label.","Ensure each widget annotation is nested inside a Form structure element.","Convert dynamic XFA forms to standard AcroForms before publishing."],"wcag":["3.3.2 Labels or Instructions (A)","4.1.2 Name, Role, Value (A)"]},{"rule_id":"7.18.4-2","clause":"7.18.4","test_number":2,"object":"SEForm","spec_description":"If the Form element omits a Role attribute (Table 348), it shall have only one child: an object reference (14.7.4.3) identifying the widget annotation per ISO 32000-1:2008, 14.8.4.5, Table 340","title":"Form field is not accessible","plain":"The file uses dynamic XFA forms, or a widget annotation is not nested in a Form tag, or a form field has neither a TU tooltip nor an alternative description.","impact":"Screen reader users hear an unlabelled edit box with no idea what to type. Dynamic XFA forms are not accessible in most readers at all.","how_to_fix":["Set a meaningful tooltip (TU) on every form field: this is what assistive technology announces as the field label.","Ensure each widget annotation is nested inside a Form structure element.","Convert dynamic XFA forms to standard AcroForms before publishing."],"wcag":["3.3.2 Labels or Instructions (A)","4.1.2 Name, Role, Value (A)"]},{"rule_id":"7.18.5-1","clause":"7.18.5","test_number":1,"object":"PDLinkAnnot","spec_description":"Links shall be tagged according to ISO 32000-1:2008, 14.8.4.4.2, Link Element","title":"Link is not tagged or has no description","plain":"A link annotation is not tagged as a Link element with an object reference, or has no Contents entry describing where it goes.","impact":"Screen reader users listing links hear a raw URL or nothing meaningful, so they cannot tell links apart out of context.","how_to_fix":["Tag links with a Link element containing both the link text and an OBJR reference to the annotation.","Set the Contents entry to a short description of the link target.","Write descriptive link text in the source document instead of 'click here' or a bare URL."],"wcag":["2.4.4 Link Purpose (In Context) (A)"]},{"rule_id":"7.18.5-2","clause":"7.18.5","test_number":2,"object":"PDLinkAnnot","spec_description":"Links shall contain an alternate description via their Contents key as described in ISO 32000-1:2008, 14.9.3","title":"Link is not tagged or has no description","plain":"A link annotation is not tagged as a Link element with an object reference, or has no Contents entry describing where it goes.","impact":"Screen reader users listing links hear a raw URL or nothing meaningful, so they cannot tell links apart out of context.","how_to_fix":["Tag links with a Link element containing both the link text and an OBJR reference to the annotation.","Set the Contents entry to a short description of the link target.","Write descriptive link text in the source document instead of 'click here' or a bare URL."],"wcag":["2.4.4 Link Purpose (In Context) (A)"]},{"rule_id":"7.18.6.2-1","clause":"7.18.6.2","test_number":1,"object":"PDMediaClip","spec_description":"In the media clip data dictionary, the optional CT key (ISO 32000-1:2008, 13.2.4.2, Table 274) is required","title":"Multimedia clip is missing required description","plain":"A media clip data dictionary is missing the CT (content type) or Alt (alternative description) key.","impact":"Users who cannot see or hear the media get no description of what it contains, and the player may not know how to handle it.","how_to_fix":["Set the CT key to the MIME type of the media, for example video/mp4.","Provide an Alt description summarising the media content.","Supply captions and a transcript alongside the document for substantial audio or video."],"wcag":["1.2.1 Audio-only and Video-only (A)","1.2.2 Captions (Prerecorded) (A)"]},{"rule_id":"7.18.6.2-2","clause":"7.18.6.2","test_number":2,"object":"PDMediaClip","spec_description":"In the media clip data dictionary, the optional Alt key (ISO 32000-1:2008, 13.2.4.2, Table 274) is required","title":"Multimedia clip is missing required description","plain":"A media clip data dictionary is missing the CT (content type) or Alt (alternative description) key.","impact":"Users who cannot see or hear the media get no description of what it contains, and the player may not know how to handle it.","how_to_fix":["Set the CT key to the MIME type of the media, for example video/mp4.","Provide an Alt description summarising the media content.","Supply captions and a transcript alongside the document for substantial audio or video."],"wcag":["1.2.1 Audio-only and Video-only (A)","1.2.2 Captions (Prerecorded) (A)"]},{"rule_id":"7.18.8-1","clause":"7.18.8","test_number":1,"object":"PDPrinterMarkAnnot","spec_description":"PrinterMark annotations, if present, shall be considered Incidental Artifacts, as if they are hidden page elements as defined in ISO 32000-1:2008, 14.8.2.2.3","title":"Annotation is not tagged or described","plain":"An annotation is not nested in an Annot tag, has no Contents or Alt description, or uses a subtype that PDF/UA forbids.","impact":"Comments, stamps, and other annotations are either skipped entirely or announced with no explanation of what they are.","how_to_fix":["Nest annotations inside an Annot structure element, except Widget, Link, and PrinterMark annotations.","Give every visible annotation a Contents value describing it.","Remove TrapNet annotations and mark printer marks as artifacts."],"wcag":["1.1.1 Non-text Content (A)","1.3.1 Info and Relationships (A)"]},{"rule_id":"7.20-1","clause":"7.20","test_number":1,"object":"PDXForm","spec_description":"A conforming file shall not contain any reference XObjects","title":"Form XObject content is not properly structured","plain":"The file uses reference XObjects, which PDF/UA forbids, or the content inside a Form XObject is not incorporated into the structure tree.","impact":"Content drawn inside these objects is invisible to assistive technology even though it is visible on the page.","how_to_fix":["Remove reference XObjects and embed the content directly.","Tag the content inside Form XObjects so it appears in the structure tree.","Re-export from the source application: this class of problem is rarely worth fixing by hand."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.20-2","clause":"7.20","test_number":2,"object":"PDXForm","spec_description":"The content of Form XObjects shall be incorporated into structure elements according to ISO 32000-1:2008, 14.7.2","title":"Form XObject content is not properly structured","plain":"The file uses reference XObjects, which PDF/UA forbids, or the content inside a Form XObject is not incorporated into the structure tree.","impact":"Content drawn inside these objects is invisible to assistive technology even though it is visible on the page.","how_to_fix":["Remove reference XObjects and embed the content directly.","Tag the content inside Form XObjects so it appears in the structure tree.","Re-export from the source application: this class of problem is rarely worth fixing by hand."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.21.3.1-1","clause":"7.21.3.1","test_number":1,"object":"PDType0Font","spec_description":"For any given composite (Type 0) font within a conforming file, the CIDSystemInfo entry in its CIDFont dictionary and its Encoding dictionary shall have the following relationship: - If the Encoding key in the Type 0 font dictionary is Identity-H or Identity-V, any values of Registry, Ordering, and Supplement may be used in the CIDSystemInfo entry of the CIDFont. - Otherwise, the corresponding Registry and Ordering strings in both CIDSystemInfo dictionaries shall be identical, and the value of the Supplement key in the CIDSystemInfo dictionary of the CIDFont shall be less than or equal to the Supplement key in the CIDSystemInfo dictionary of the CMap","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.3.2-1","clause":"7.21.3.2","test_number":1,"object":"PDCIDFont","spec_description":"ISO 32000-1:2008, 9.7.4, Table 117 requires that all embedded Type 2 CIDFonts in the CIDFont dictionary shall contain a CIDToGIDMap entry that shall be a stream mapping from CIDs to glyph indices or the name Identity, as described in ISO 32000-1:2008, 9.7.4, Table 117","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.3.3-1","clause":"7.21.3.3","test_number":1,"object":"PDCMap","spec_description":"All CMaps used within a PDF/UA file, except those listed in ISO 32000-1:2008, 9.7.5.2, Table 118, shall be embedded in that file as described in ISO 32000-1:2008, 9.7.5","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.3.3-2","clause":"7.21.3.3","test_number":2,"object":"CMapFile","spec_description":"For those CMaps that are embedded, the integer value of the WMode entry in the CMap dictionary shall be identical to the WMode value in the embedded CMap stream","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.3.3-3","clause":"7.21.3.3","test_number":3,"object":"PDReferencedCMap","spec_description":"A CMap shall not reference any other CMap except those listed in ISO 32000-1:2008, 9.7.5.2, Table 118","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.4.1-1","clause":"7.21.4.1","test_number":1,"object":"PDFont","spec_description":"The font programs for all fonts used for rendering within a conforming file shall be embedded within that file, as defined in ISO 32000-1:2008, 9.9","title":"Font is not embedded","plain":"A font used to render text in the document is not embedded in the file.","impact":"The reader substitutes a different font, which can change layout and, worse, break text extraction so screen readers announce the wrong characters.","how_to_fix":["Enable font embedding in the PDF export settings of the source application.","Check licensing: some fonts forbid embedding, in which case replace the font.","Verify with File > Properties > Fonts that every listed font says 'Embedded' or 'Embedded Subset'."],"wcag":[]},{"rule_id":"7.21.4.1-2","clause":"7.21.4.1","test_number":2,"object":"Glyph","spec_description":"Embedded fonts shall define all glyphs referenced for rendering within the conforming file. A font referenced solely in text rendering mode 3 is not rendered and is thus exempt from the requirements that impact the visual representation of the glyphs of a font. In all cases for TrueType fonts that are to be rendered, character codes shall be able to be mapped to glyphs according to ISO 32000-1:2008, 9.6.6.4 without the use of a non-standard mapping chosen by the conforming processor","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.4.2-1","clause":"7.21.4.2","test_number":1,"object":"PDType1Font","spec_description":"If the FontDescriptor dictionary of an embedded Type 1 font contains a CharSet string, then it shall list the character names of all glyphs present in the font program, regardless of whether a glyph in the font is referenced or used by the PDF or not","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.4.2-2","clause":"7.21.4.2","test_number":2,"object":"PDCIDFont","spec_description":"If the FontDescriptor dictionary of an embedded CID font contains a CIDSet stream, then it shall identify all CIDs which are present in the font program, regardless of whether a CID in the font is referenced or used by the PDF or not","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.5-1","clause":"7.21.5","test_number":1,"object":"Glyph","spec_description":"For every font embedded in a conforming file and used for rendering, the glyph width information in the font dictionary and in the embedded font program shall be consistent","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.6-1","clause":"7.21.6","test_number":1,"object":"TrueTypeFontProgram","spec_description":"For all non-symbolic TrueType fonts used for rendering, the embedded TrueType font program shall contain one or several non-symbolic cmap entries such that all necessary glyph lookups can be carried out","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.6-2","clause":"7.21.6","test_number":2,"object":"PDTrueTypeFont","spec_description":"All non-symbolic TrueType fonts shall have either MacRomanEncoding or WinAnsiEncoding as the value for the Encoding key in the Font dictionary or as the value for the BaseEncoding key in the dictionary which is the value of the Encoding key in the Font dictionary. In addition, no non-symbolic TrueType font shall define a Differences array unless all of the glyph names in the Differences array are listed in the Adobe Glyph List and the embedded font program contains at least the Microsoft Unicode (3,1 – Platform ID=3, Encoding ID=1) encoding in the 'cmap' table","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.6-3","clause":"7.21.6","test_number":3,"object":"PDTrueTypeFont","spec_description":"Symbolic TrueType fonts shall not contain an Encoding entry in the font dictionary","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.6-4","clause":"7.21.6","test_number":4,"object":"TrueTypeFontProgram","spec_description":"The 'cmap' table in the embedded font program for a symbolic TrueType font shall contain either exactly one encoding or it shall contain, at least, the Microsoft Symbol (3,0 - Platform ID=3, Encoding ID=0) encoding","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]},{"rule_id":"7.21.7-1","clause":"7.21.7","test_number":1,"object":"Glyph","spec_description":"The Font dictionary of all fonts shall define the map of all used character codes to Unicode values, either via a ToUnicode entry, or other mechanisms as defined in ISO 14289-1, 7.21.7","title":"Characters cannot be mapped to Unicode","plain":"The font does not define a usable mapping from character codes to Unicode values, or the ToUnicode CMap contains invalid values.","impact":"Screen readers and copy-paste produce gibberish because the reader cannot tell which actual characters the glyphs represent. Visually the page looks perfect, which makes this failure easy to miss.","how_to_fix":["Embed fonts with a valid ToUnicode CMap.","Replace symbol or icon fonts used for text with real text plus proper alt descriptions.","Verify by copying text out of the PDF: if the pasted text is wrong, this rule is why."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.21.7-2","clause":"7.21.7","test_number":2,"object":"Glyph","spec_description":"The Unicode values specified in the ToUnicode CMap shall all be greater than zero (0), but not equal to either U+FEFF or U+FFFE","title":"Characters cannot be mapped to Unicode","plain":"The font does not define a usable mapping from character codes to Unicode values, or the ToUnicode CMap contains invalid values.","impact":"Screen readers and copy-paste produce gibberish because the reader cannot tell which actual characters the glyphs represent. Visually the page looks perfect, which makes this failure easy to miss.","how_to_fix":["Embed fonts with a valid ToUnicode CMap.","Replace symbol or icon fonts used for text with real text plus proper alt descriptions.","Verify by copying text out of the PDF: if the pasted text is wrong, this rule is why."],"wcag":["1.3.1 Info and Relationships (A)"]},{"rule_id":"7.21.8-1","clause":"7.21.8","test_number":1,"object":"Glyph","spec_description":"A PDF/UA compliant document shall not contain a reference to the .notdef glyph from any of the text showing operators, regardless of text rendering mode, in any content stream","title":"Font is not embedded or is inconsistently encoded","plain":"A font used for rendering is not embedded, is missing glyphs, or has encoding tables that do not let a reader map character codes to glyphs reliably.","impact":"Text may render with substituted glyphs, and text extraction can produce wrong characters, so both sighted readers and screen reader users can get corrupted text.","how_to_fix":["Embed all fonts, including subsets, when exporting the PDF.","Avoid fonts with broken or missing cmap tables; substitute a well-formed font in the source document.","Check the export preset: 'optimised for size' presets often drop font embedding."],"wcag":[]}]}