Changes that affect accessibility
In a PDF snapshot, a change's AffectsAccessibility is true when
it's one of the changes below, and a test failure lists it first, tagged [accessibility]:
| Change | Shows as | Could affect (WCAG 2.2) |
|---|---|---|
A structure element's type changed, such as a heading becoming a paragraph. A header cell's generated name, such as TH1 becoming TH2, doesn't count |
type: H2 -> P |
1.3.1 |
| A structure element moved in reading order | moved in structure |
1.3.2 |
| Alt text, replacement text or an expansion (on an element or on marked content inside it), a media clip's alternate text, a table header's scope, a cell's headers, an element's associated files (such as a formula's MathML), or a form field's or annotation's accessible name was removed or emptied, or a cell's headers point at a header that isn't there | alt: "Logo" -> (missing), actual: "fi" -> (missing), span-expansion: ["Mount":"Mt."] -> (missing), scope: Column -> (missing), associated-files: [Supplement:3f9c0a1b2d4e5f60:"formula.mml"] -> (missing), accessible-name: "Name" -> "", headers: [TH1] -> [?h2] |
1.1.1; 1.2.1 for a media clip; 1.3.1 for scope and headers; 3.1.4 for an expansion; 4.1.2 for an accessible name |
| The document's or an element's language changed or was removed, or one set on marked content inside an element (a change to only the words such marked content covers isn't flagged) | lang: en-US -> en-GB, span-lang: [fr-FR:"bonjour"] -> [de-DE:"bonjour"] |
3.1.1 for the document; 3.1.2 for an element or marked content |
| Something was added to the untagged content: a line, words in a line, or more images, paths or shadings | added, "Page 1 {+Draft+}" or images: 1 -> 2 in untagged |
1.3.1 |
| An annotation became untagged | ... tagged ... -> ... untagged ... in annotations |
1.3.1 |
A new problem in the checks section from a rule that isn't a house rule |
+ new problem FigureAltText (p4) in checks |
The rule's criteria, in the rules table below |
| Text, an image, a path or a shading that was tagged is now an artifact (decoration) or untagged, so a screen reader skips it | p1 text tagged ... -> p1 text artifact ... in layout |
1.3.1 |
| The document is no longer marked as tagged, or the viewer no longer shows its title | marked: yes -> no, display-doc-title: yes -> no |
1.3.1 for marked; 2.4.2 for display-doc-title |
| The document's title was removed or emptied | title: "Trail Guide" -> (missing), xmp-title: "Trail Guide" -> "" |
2.4.2 |
| A conformance claim was removed: the PDF/UA part or revision the XMP claims, or a PDF Declaration such as Well-Tagged PDF's, including one replaced by another. PDiffy records claims but doesn't check whether they're true | pdfuaid-part: 2 -> (missing), pdfuaid-rev: 2024 -> (missing), a removed or replaced declaration line in metadata |
None |
| A page's tab order is no longer the structure order | tabs: structure -> rows |
2.4.3 |
| A Form element's field role changed or was removed, such as a check box becoming a text field | field-role: checkbox -> text, field-role: radio-button -> (missing) |
4.1.2 |
| A structure element lost its parent entry, its parent entry now names an element other than the one that lists it, its parent no longer lists it, or it lists more children that the tree already reached elsewhere, or the parent tree gave the element's content to another element, or to none, more often than before (moving content to a different element counts; content that was only renumbered doesn't), or the document's parent tree went missing or gained a problem with its keys | parent: (missing) -> missing, parent: (missing) -> wrong, parent: (missing) -> unlisted, shared-children: (missing) -> 1, parent-tree: [p2:7->P] -> [p2:7->P,p2:8->none], parent-tree: (missing) -> missing and parent-tree-problems: (missing) -> [duplicate-keys] in document |
1.3.1 |
| A Note lost its ID, or a structure element's ID is now shared with another element | id: (missing) -> missing, id: (missing) -> duplicate |
1.3.1 |
| A font's text no longer maps to Unicode, or more of its character codes fail to map or show the missing-glyph box | to-unicode: yes -> no, unmapped: [41] -> [41-43], missing-glyphs: (missing) -> [01] |
None |
| A document is newly encrypted, or its permissions changed, so screen readers can no longer extract its text | permissions: (missing) -> print, permissions: print,extract-for-accessibility -> print |
None |
| The file header's or catalog's PDF version moved past 1.7, which PDF/UA-1 doesn't allow | version: 1.7 -> 2.0, catalog-version: (missing) -> 2.0 |
None |
| A structure element's link annotation became another kind of annotation or was removed, so it's no longer presented as a link | annot: Link -> Text, annot: Link -> (missing) |
2.4.4; 4.1.2 |
Less untagged content doesn't count, except that a text line that loses more than half its words shows as removed and added, and the added line counts.
In a Word snapshot, these changes are flagged:
| Change | Shows as | Could affect (WCAG 2.2) |
|---|---|---|
| A paragraph or style became a heading, stopped being one or changed level, including a paragraph that switched to a style with a different heading level (or none) | heading: 2 -> 3, style: Heading1 -> Normal |
1.3.1 |
| A table row stopped being a header row | Row header ... -> Row ... |
1.3.1 |
| The document's title was removed or emptied | title: "Trail Guide" -> (missing) |
2.4.2 |
| An image's alt text, or a table's caption or description, was removed or emptied | alt: "Logo" -> (missing), caption: "Trails" -> (missing), description: "Lengths" -> "" |
1.1.1 for alt text; 1.3.1 for a caption or description |
| The language of the document, a style or a span changed or was removed, including its East Asian and complex-script languages | lang: en-US -> fr-FR, lang-east-asian: ja-JP -> (missing) |
3.1.1 for the document; 3.1.2 for a style or span |
A new problem in the checks section (every Word rule is about accessibility) |
+ new problem ImageAltText in checks |
1.1.1 for ImageAltText; 3.1.1 for DocumentLanguage; 1.3.1 for TableHeaders and HeadingStyles |
A flagged change's WcagCriteria lists the WCAG 2.2 success criteria it could affect, as the last column shows,
so whoever keeps an accessibility conformance report knows which rows to look at again. They say what a change could
affect, never that a criterion fails. The JSON output and the HTML report show them too.
A new problem from a PDF check rule could affect the criteria below. A rule that no criterion clearly covers is still
flagged, with no criteria: the font rules, PdfVersion, XmpMetadata, LayerConfigurations, EmbeddedFileNames,
NoReferenceXObjects, NoDynamicXfa and AccessibilityPermission.
| Rules | Could affect (WCAG 2.2) |
|---|---|
FigureAltText, FormulaAltText, MeaningfulAltText |
1.1.1 |
MediaClips |
1.1.1, 1.2.1 |
UntaggedContent, ArtifactNesting, TaggedPdf, ParentTree, RoleMap, ListStructure, TocStructure, HeadingLevels, HeadingTypes, NoteIds, TableHeaders, TableStructure, TableGrid |
1.3.1 |
AnnotationTags |
1.3.1, 4.1.2 |
ReadingOrder |
1.3.2 |
DocumentTitle |
2.4.2 |
TabOrder |
2.4.3 |
LinkDescriptions, LinkText |
2.4.4 |
DocumentLanguage |
3.1.1 |
LanguageTags, TextLanguage |
3.1.1, 3.1.2 |
FormFieldNames |
3.3.2, 4.1.2 |
AnnotationDescriptions |
4.1.2 |
Changes for review
Some changes aren't flagged but still need an accessibility specialist to look at them. In a PDF snapshot, a
change's NeedsReview is true when it doesn't affect accessibility and is one of these:
| Change | Shows as |
|---|---|
| Alt text, replacement text or an expansion (on an element or on marked content inside it), a media clip's alternate text, a form field's or annotation's accessible name or a link's description was added or reworded | alt: "Map" -> "Trail map", alt: (missing) -> "Trail map", accessible-name: "Hiker" -> "Hiker name" |
| A figure, formula, table, form field, link or heading was added, on its own or inside a new element such as a paragraph | an added line in structure |
| A heading's or link's text changed (a heading reworded completely shows as removed and added) | "Trail Guide {+2026+}" |
In a Word snapshot:
| Change | Shows as |
|---|---|
| An image's alt text, or a table's caption or description, was added or reworded | alt: "Logo" -> "Park logo" |
| An image, chart, shape or other graphic, or a table, was added, on its own or in a new paragraph | an added line in body |
The HTML report lists them under "For review", and the JSON output has needsReview, so a specialist can check only
what changed since the last audit. Text snapshots have no such flag: their NeedsReview is null.
How the flag is used
- The rules are the same for every project. A release can add rules, so an upgrade can flag a change that wasn't flagged before; Format changes lists each one.
- Content made an artifact is found through the
layoutsection. With layout left out, as theContentprofile does, it shows as words leaving its structure element and, for text, a line added toartifacts, neither of which is flagged. - A Word style's heading level is found through the
stylessection. With styles left out, as the WordContentprofile does, a paragraph switching to a style with a different heading level (or none) isn't flagged. A heading style removed while paragraphs still use it isn't flagged in any profile. - A snapshot test passes or fails on the whole snapshot. The flag only orders and marks the explanation, in the test's
message, the HTML report ("Only accessibility" filter), the
JSON output and
pdiffy report. - To fail only on these changes, compare with
CompareToand assert onAffectsAccessibility. - Text snapshots have no flags: their
AffectsAccessibilityis null.