Table of Contents

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 layout section. With layout left out, as the Content profile does, it shows as words leaving its structure element and, for text, a line added to artifacts, neither of which is flagged.
  • A Word style's heading level is found through the styles section. With styles left out, as the Word Content profile 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 CompareTo and assert on AffectsAccessibility.
  • Text snapshots have no flags: their AffectsAccessibility is null.