Accessibility Wiki

EqualWeb Accessibility Wiki

Generated from @app/a11y-engine rule metadata — do not edit by hand. Run pnpm --filter @app/a11y-engine wiki to regenerate. See also the WCAG cross-reference.

Two bodies of rules: 135 for web pages and 82 for PDF documents. Each has a page explaining why it matters, how to fix it, and the standards it maps to.

Web accessibility

Rules the scanning engine runs against web pages (WCAG 2.1 / 2.2). Open this area →

Images & non-text content

Rule WCAG Impact Mode Standards
img-alt — Images must have alternative text 1.1.1 (A) critical static WCAG A EN 301 549 Section 508 Trusted Tester ACT
input-image-alt — Image buttons must have alternative text 1.1.1 (A), 4.1.2 (A) critical static WCAG A EN 301 549 Section 508 Trusted Tester ACT
area-alt — Image-map areas must have alternative text 1.1.1 (A), 2.4.4 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester ACT
svg-img-name — Meaningful SVGs must have an accessible name 1.1.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester ACT
object-alt — Embedded objects must have a text alternative 1.1.1 (A) serious static WCAG A EN 301 549 Section 508
role-img-name — Elements with role="img" must have a name 1.1.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester ACT
img-redundant-alt — Alt text should not be a file name or duplicate adjacent text 1.1.1 (A) minor static WCAG A EN 301 549 Best practice

Forms

Rule WCAG Impact Mode Standards
label-control — Form inputs must have a label 4.1.2 (A), 3.3.2 (A) critical static WCAG A EN 301 549 Section 508 Trusted Tester ACT
select-name — Select elements must have a label 4.1.2 (A) critical static WCAG A EN 301 549 Section 508 Trusted Tester ACT
button-name — Buttons must have discernible text 4.1.2 (A) critical static WCAG A EN 301 549 Section 508 Trusted Tester ACT
widget-name — Custom interactive widgets must have an accessible name 4.1.2 (A) critical static WCAG A EN 301 549
form-field-multiple-labels — A form field should not have multiple label elements 3.3.2 (A) moderate static WCAG A EN 301 549 Trusted Tester
fieldset-legend — Radio and checkbox groups need a fieldset and legend 1.3.1 (A), 3.3.2 (A) moderate static WCAG A EN 301 549
autocomplete-valid — autocomplete attributes must use valid tokens 1.3.5 (AA) moderate static WCAG AA EN 301 549 ACT
label-content-name-mismatch — Accessible name must contain the visible label text 2.5.3 (A) serious static WCAG A EN 301 549
optgroup-label — Option groups must have a label 1.3.1 (A), 4.1.2 (A) serious static WCAG A EN 301 549
input-button-name — Input buttons must have discernible text 4.1.2 (A) critical static WCAG A EN 301 549 Section 508 Trusted Tester ACT
on-input-context-change — Changing a control must not auto-submit or navigate 3.2.2 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
on-focus-context-change — Receiving focus must not trigger a change of context 3.2.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
form-error-association — Invalid fields must expose their error message 3.3.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
form-error-visible — Failed form validation must surface a visible or programmatic error 3.3.1 (A) moderate live WCAG A EN 301 549
label-title-only — Don’t rely on title or placeholder as the only label 3.3.2 (A) minor static WCAG A EN 301 549 Best practice
accessible-authentication — Authentication must not depend on a cognitive-function test 3.3.8 (AA) serious static WCAG AA EN 301 549

Structure & semantics

Rule WCAG Impact Mode Standards
heading-order — Heading levels must not skip 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
empty-heading — Headings must not be empty 1.3.1 (A), 2.4.6 (AA) serious static WCAG A WCAG AA EN 301 549 Best practice
page-has-heading-one — Page should contain a level-one heading 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
landmark-one-main — Page should have exactly one main landmark 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
landmark-unique — Landmarks of the same role must be distinguishable 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
landmark-toplevel — Banner and contentinfo must be top-level landmarks 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
list-structure — Lists must be structured correctly 1.3.1 (A) moderate static WCAG A EN 301 549
dl-structure — Definition lists must be structured correctly 1.3.1 (A) moderate static WCAG A EN 301 549
table-headers — Data tables must have header cells 1.3.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
table-scope-valid — scope attributes must be valid and on header cells 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
section-headings — Long content should be organized with section headings 2.4.10 (AAA) minor static WCAG AAA

ARIA

Rule WCAG Impact Mode Standards
aria-valid-role — role must be a valid, non-abstract ARIA role 4.1.2 (A) serious static WCAG A EN 301 549
aria-valid-attr — aria-* attributes must be valid names with valid values 4.1.2 (A) serious static WCAG A EN 301 549
aria-allowed-attr — aria-* attributes must be allowed for the element’s role 4.1.2 (A) serious static WCAG A EN 301 549
aria-required-attr — Roles must declare their required states 4.1.2 (A) serious static WCAG A EN 301 549
aria-required-children — Container roles must own the required child roles 1.3.1 (A) serious static WCAG A EN 301 549
aria-required-parent — Roles must be contained by their required context role 1.3.1 (A) serious static WCAG A EN 301 549
aria-hidden-focusable — aria-hidden elements must not contain focusable content 4.1.2 (A), 1.3.1 (A) serious static WCAG A EN 301 549 Trusted Tester
aria-hidden-body — aria-hidden must not be on the document body 4.1.2 (A) critical static WCAG A EN 301 549
presentation-role-conflict — role="presentation" must not be on focusable or labelled elements 4.1.2 (A) moderate static WCAG A EN 301 549 ACT Best practice
aria-idref-integrity — ARIA ID references must resolve unambiguously 1.3.1 (A), 4.1.2 (A) serious static WCAG A EN 301 549
orphan-aria-reference — Named-required elements should not be left without a name 4.1.2 (A) minor static WCAG A EN 301 549
status-messages — Live regions must be able to announce status messages 4.1.3 (AA) serious static WCAG AA EN 301 549
nested-interactive — Interactive controls must not be nested 4.1.2 (A) serious static WCAG A EN 301 549 Trusted Tester

Document, language & navigation

Rule WCAG Impact Mode Standards
html-lang — The page must declare its language 3.1.1 (A) serious static WCAG A EN 301 549 Trusted Tester ACT
html-lang-valid — The page language must be a valid BCP-47 tag 3.1.1 (A) serious static WCAG A EN 301 549 Trusted Tester ACT
valid-lang — lang on inline content must be a valid tag 3.1.2 (AA) moderate static WCAG AA EN 301 549 Trusted Tester ACT
document-title — The page must have a non-empty title 2.4.2 (A) serious static WCAG A EN 301 549 Trusted Tester ACT
duplicate-id — id attributes must be unique 4.1.1 (A), 1.3.1 (A) moderate static WCAG A EN 301 549
meta-viewport — The viewport must allow zooming 1.4.4 (AA) serious static WCAG AA EN 301 549 ACT
bypass-blocks — Page must offer a way to skip to content 2.4.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
tabindex-positive — Avoid positive tabindex values 2.4.3 (A) moderate static WCAG A EN 301 549 Best practice
accesskeys-unique — accesskey values must be unique 2.1.1 (A) minor static WCAG A EN 301 549 Best practice
frame-title — Frames must have a descriptive title 4.1.2 (A), 2.4.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
orientation-lock — Content must not lock the display orientation 1.3.4 (AA) moderate static WCAG AA EN 301 549
audio-transcript — Audio-only content needs a transcript 1.2.1 (A) moderate static WCAG A EN 301 549
scripted-timeout — Scripted timers must not impose an unannounced time limit 2.2.1 (A) serious live WCAG A EN 301 549
meta-refresh — Don’t auto-refresh or redirect the page on a timer 2.2.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
no-blink-marquee — Don’t use or 2.2.2 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
no-autoplay-audio — Don’t autoplay sound the user can’t stop 1.4.2 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
media-captions — Prerecorded video should provide captions 1.2.2 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester
media-audio-description — Prerecorded video should provide an audio description 1.2.5 (AA) moderate static WCAG AA EN 301 549 Section 508
media-alternative — Prerecorded video needs an audio description or media alternative 1.2.3 (A) moderate static WCAG A EN 301 549 Section 508
visual-presentation — Blocks of text should be easy to read (spacing, line length, justification) 1.4.8 (AAA) minor live WCAG AAA
reading-level — Body text should not require post-secondary reading ability 3.1.5 (AAA) minor static WCAG AAA
Rule WCAG Impact Mode Standards
link-name — Links must have discernible text 2.4.4 (A), 4.1.2 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester ACT
link-generic-text — Link text should describe its destination 2.4.4 (A) minor static WCAG A EN 301 549
anchor-is-button — Anchors used as buttons need button semantics and keyboard support 4.1.2 (A) moderate static WCAG A EN 301 549
button-type — Buttons in forms should declare a type 3.2.2 (A) minor static WCAG A EN 301 549 Best practice
identical-links-same-purpose — Links with the same name should go to the same place 2.4.4 (A) minor static WCAG A EN 301 549

Color & contrast

Rule WCAG Impact Mode Standards
text-contrast — Text must meet minimum contrast (4.5:1) 1.4.3 (AA) serious live WCAG AA EN 301 549 Trusted Tester ACT
text-contrast-enhanced — Text should meet enhanced contrast (7:1) 1.4.6 (AAA) moderate live WCAG AAA ACT
non-text-contrast — UI components and graphics need 3:1 contrast 1.4.11 (AA) moderate live WCAG AA EN 301 549
use-of-color — Don’t distinguish links by color alone 1.4.1 (A) serious static WCAG A EN 301 549 Section 508 Trusted Tester

Deeper checks

Rule WCAG Impact Mode Standards
accessible-name-quality — Interactive elements need a high-quality accessible name 4.1.2 (A), 2.4.6 (AA), 1.1.1 (A) moderate static WCAG A WCAG AA EN 301 549
reading-order — Visual order should match DOM (focus) order 1.3.2 (A), 2.4.3 (A) serious live WCAG A EN 301 549
target-size — Pointer targets must be large enough 2.5.8 (AA) serious live WCAG AA EN 301 549
reflow — Content must reflow without horizontal scrolling 1.4.10 (AA) serious live WCAG AA EN 301 549
text-spacing — Content must survive increased text spacing 1.4.12 (AA) moderate live WCAG AA EN 301 549
link-opens-new-tab — Links that open a new tab or window must warn users 3.2.5 (AAA) minor static WCAG AAA
scrollable-region-focusable — Scrollable regions must be keyboard-accessible 2.1.1 (A) serious live WCAG A EN 301 549
empty-table-header — Table header cells must not be empty 1.3.1 (A), 4.1.2 (A) serious static WCAG A EN 301 549
missing-autocomplete — Personal-data inputs should declare an autocomplete token 1.3.5 (AA) minor static WCAG AA EN 301 549
abbr-no-title — Abbreviations should have a title with their expanded form 3.1.4 (AAA) minor static WCAG AAA
infinite-animation — Auto-playing animation must be pausable 2.2.2 (A) moderate live WCAG A EN 301 549 Section 508 Trusted Tester
flash-rate — Content must not flash more than 3 times per second 2.3.1 (A) serious live WCAG A EN 301 549 Section 508 Trusted Tester
respects-reduced-motion — Motion must respect prefers-reduced-motion 2.2.2 (A) moderate live WCAG A EN 301 549
link-purpose-link-only — Link text alone should describe the link’s purpose 2.4.9 (AAA) minor static WCAG AAA

Component patterns (best practice)

Rule WCAG Impact Mode Standards
tab-selected-state — A tablist must have exactly one selected tab 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
tab-controls-panel — A tab should point to its tabpanel 1.3.1 (A), 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
tabpanel-labelled — A tabpanel should be labelled by its tab 1.3.1 (A) moderate static WCAG A EN 301 549 Best practice
tablist-roving-tabindex — Tabs should use roving tabindex 2.1.1 (A) moderate static WCAG A EN 301 549 Best practice
menu-roving-tabindex — Menus should expose one focusable item (roving tabindex) 2.1.1 (A) moderate static WCAG A EN 301 549 Best practice
menuitem-haspopup-expanded — A submenu trigger must expose aria-expanded 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
dialog-name — A dialog must have an accessible name 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
dialog-modal — A modal dialog should declare aria-modal 4.1.2 (A) minor static WCAG A EN 301 549 Best practice
dialog-focusable-content — An open dialog must contain focusable content 2.1.1 (A) serious static WCAG A EN 301 549 Best practice
disclosure-trigger-operable — A disclosure trigger must be keyboard operable 2.1.1 (A) serious static WCAG A EN 301 549 Best practice
disclosure-state-match — aria-expanded must match the controlled region 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
combobox-popup — A combobox must declare its popup 1.3.1 (A), 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
combobox-activedescendant — aria-activedescendant must resolve when a combobox is open 4.1.2 (A) moderate static WCAG A EN 301 549 Best practice
listbox-single-select — A single-select listbox must not have multiple selected options 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
tree-roving-tabindex — A tree should expose exactly one focusable item 2.1.1 (A) moderate static WCAG A EN 301 549 Best practice
treeitem-expanded — A parent treeitem must expose aria-expanded 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
range-value-in-bounds — A range widget value must be within its min and max 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
switch-state-valid — A switch must have a valid aria-checked 4.1.2 (A) serious static WCAG A EN 301 549 Best practice
single-current-page — Only one element should be the current page 4.1.2 (A) minor static WCAG A EN 301 549 Best practice
link-group-semantics — Groups of links should use list semantics 1.3.1 (A) minor static WCAG A EN 301 549 Best practice
breadcrumb-structure — A breadcrumb should be a list that marks the current page 1.3.1 (A) minor static WCAG A EN 301 549 Best practice
carousel-controls — A carousel needs controls 2.2.2 (A), 2.1.1 (A) moderate static WCAG A EN 301 549 Best practice
tooltip-referenced — A tooltip must be referenced by the element it describes 4.1.2 (A) moderate static WCAG A EN 301 549 Best practice
toolbar-roving-tabindex — A toolbar should use roving tabindex 2.1.1 (A) moderate static WCAG A EN 301 549
radiogroup-single-selected — A radiogroup must have at most one checked radio 4.1.2 (A) serious static WCAG A EN 301 549
grid-roving-tabindex — A grid should use roving tabindex 2.1.1 (A) moderate static WCAG A EN 301 549
skip-link-target-valid — A same-page link must point at a real target 2.4.1 (A) serious static WCAG A EN 301 549
interactive-role-focusable — An element with an interactive role must be keyboard focusable 2.1.1 (A) serious static WCAG A EN 301 549
role-application-misuse — role="application" should wrap a widget, not browse-mode content 4.1.2 (A), 1.3.1 (A) serious static WCAG A EN 301 549
data-table-caption — A data table should have an accessible name 1.3.1 (A) moderate static WCAG A EN 301 549
slider-spinbutton-range-complete — A slider/spinbutton must expose a coherent value range 4.1.2 (A), 1.3.1 (A) serious static WCAG A EN 301 549
combobox-aria-autocomplete — aria-autocomplete on a combobox must be a valid token 4.1.2 (A) moderate static WCAG A EN 301 549
accordion-heading-structure — Accordion headers should sit inside a heading 1.3.1 (A) minor static WCAG A EN 301 549
feed-structure — A feed must contain articles with position information 1.3.1 (A) minor static WCAG A EN 301 549
keyboard-trap — Keyboard focus must not be trapped 2.1.2 (A) critical live WCAG A EN 301 549 Best practice
keyboard-reachable — Interactive elements must be reachable by keyboard 2.1.1 (A) serious live WCAG A EN 301 549 Best practice
focus-order — Tab order should follow the visual order 2.4.3 (A) moderate live WCAG A EN 301 549 Best practice
focus-visible-live — Focused elements must show a visible focus indicator 2.4.7 (AA) serious live WCAG AA EN 301 549 Best practice
focus-appearance — The focus indicator must be large enough (2.4.13) 2.4.13 (AAA) minor live WCAG AAA
on-focus-navigation — Receiving focus must not trigger a page navigation 3.2.1 (A) serious live WCAG A EN 301 549 Section 508 Trusted Tester
widget-keyboard-operable — A composite widget must respond to arrow-key navigation 2.1.1 (A) serious live WCAG A EN 301 549
focus-not-obscured — A focused control must not be hidden by a sticky or fixed overlay 2.4.11 (AA) serious live WCAG AA EN 301 549
dialog-focus-return — Closing a dialog must return focus to its opener 2.4.3 (A) serious live WCAG A EN 301 549
content-on-hover — Hover-revealed content must be hoverable and dismissable 1.4.13 (AA) moderate live WCAG AA EN 301 549

Document accessibility

Checks the PDF accessibility checker runs against PDF files (PDF/UA — ISO 14289). Their pages are prefixed pdf-. Open this area →

Document level

Rule WCAG Impact Mode Standards
pdf-doc-title — The document needs a title 2.4.2 (A) Low PDF/UA WCAG A EN 301 549
pdf-doc-tags — The document must be a tagged PDF 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-doc-lang — The document needs a primary language 3.1.1 (A) High PDF/UA WCAG A EN 301 549
pdf-doc-pdf-standard — The file should declare PDF/UA conformance Low PDF/UA
pdf-doc-bookmarks — Long documents need bookmarks 2.4.5 (AA) Low PDF/UA WCAG AA EN 301 549
pdf-doc-accessibility-permissions — Security settings must not block assistive technology 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-doc-logical-order — Reading order must follow the visual order 1.3.2 (A) Critical PDF/UA WCAG A EN 301 549
pdf-outline-action-entry — Bookmarks must actually go somewhere 2.4.5 (AA) Medium PDF/UA WCAG AA EN 301 549
pdf-intra-doc-structure-dest — Internal links should target structure, not page numbers Medium PDF/UA

Metadata

Rule WCAG Impact Mode Standards
pdf-metadata-embedded-file-specs — Attachments need a Unicode filename Low PDF/UA
pdf-metadata-display-title — Viewers should show the title, not the file name 2.4.2 (A) Low PDF/UA WCAG A EN 301 549
pdf-xmp-text-pua — Metadata must not contain private-use characters 2.4.2 (A) Medium PDF/UA WCAG A EN 301 549

Page content

Rule WCAG Impact Mode Standards
pdf-content-is-tagged — All real content must be tagged, decoration marked as artifact 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-color-contrast — Text needs sufficient contrast against its background 1.4.3 (AA) High PDF/UA WCAG AA EN 301 549

Headings

Rule WCAG Impact Mode Standards
pdf-h-tag-usage — Use numbered headings, not the generic H tag 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-header-nesting — Heading levels must not skip 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-first-header-level — The first heading should be an H1 1.3.1 (A) Low PDF/UA WCAG A EN 301 549
pdf-multiple-h-in-parent — Only one generic H per parent 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549

Figures & images

Rule WCAG Impact Mode Standards
pdf-figure-alt-text — Images need alternative text 1.1.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-image-outside-figure — Images must be tagged as figures 1.1.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-figure-alt-text-exposure — Ancestor alt text is shadowing a figure 1.1.1 (A) Low PDF/UA WCAG A EN 301 549
pdf-figure-bbox — Figures need a bounding box Medium PDF/UA
pdf-formula-alt-text — Formulas need alternative text 1.1.1 (A) Critical PDF/UA WCAG A EN 301 549

Tables

Rule WCAG Impact Mode Standards
pdf-table-headers-exist — Tables need header cells 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-table-header-scope — Header cells need a scope 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-table-data-association — Data cells need to be linked to their headers 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-table-legality — Tables need valid row and cell structure 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-table-regularity — Tables must have a consistent column count 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-table-header-structure — TH cells must sit directly inside a row 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-table-data-structure — TD cells must sit directly inside a row 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-table-row-structure — Rows must sit inside the table or a row group 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-table-summary — Complex tables benefit from a summary Low PDF/UA

Lists

Rule WCAG Impact Mode Standards
pdf-list-parent-element — List items must sit inside a list 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-list-body-element — List item content needs an LBody 1.3.1 (A) Low PDF/UA WCAG A EN 301 549
Rule WCAG Impact Mode Standards
pdf-link-description — Links need a meaningful description 2.4.4 (A) Medium PDF/UA WCAG A EN 301 549
pdf-link-parent-link — Link annotations belong inside a Link element 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-link-alt-text-exposure — Nested link tags hide the link description 2.4.4 (A) Low PDF/UA WCAG A EN 301 549

Forms

Rule WCAG Impact Mode Standards
pdf-form-field-description — Form fields need labels 3.3.2 (A), 4.1.2 (A) Critical PDF/UA WCAG A EN 301 549
pdf-form-field-hidden — Form fields must not be hidden by ancestor alt text 4.1.2 (A) Medium PDF/UA WCAG A EN 301 549
pdf-widget-parent-form — Form widgets belong inside a Form element 4.1.2 (A) High PDF/UA WCAG A EN 301 549
pdf-form-lbl-structure — Visible form labels need an Lbl element 1.3.1 (A), 3.3.2 (A) High PDF/UA WCAG A EN 301 549
pdf-choice-field-opt-text — Dropdown options need text 4.1.2 (A) Critical PDF/UA WCAG A EN 301 549
pdf-radio-button-unique-names — Radio groups need distinct field names 4.1.2 (A) Medium PDF/UA WCAG A EN 301 549
pdf-text-field-rv-requires-v — Rich-text fields need a plain-text value 4.1.2 (A) High PDF/UA WCAG A EN 301 549
pdf-xfa-form-present — XFA forms are not allowed 4.1.2 (A) Critical PDF/UA WCAG A EN 301 549

Annotations

Rule WCAG Impact Mode Standards
pdf-annot-tagged — Annotations must appear in the tag tree 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-annot-tab-order — Pages with annotations need a tab order 2.4.3 (A) High PDF/UA WCAG A EN 301 549
pdf-annot-deprecated-type — Remove deprecated annotation types High PDF/UA
pdf-markup-annot-tagged — Markup annotations must be tagged 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-markup-annot-description — Markup annotations need a description 1.1.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-markup-annot-parent-annot — Markup annotations belong inside an Annot element 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-annot-invalid-parent — Annotations must not hang off headings or the document root 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-popup-in-structure — Popup annotations must stay out of the tag tree Medium PDF/UA
pdf-printermark-artifact — Printer marks must be artifacts Medium PDF/UA
pdf-screen-annot-contents — Embedded media needs a text description 1.1.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-multimedia-alt-description — 3D and rich media need alternative descriptions 1.1.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-media-clip-alt — Media clips need an Alt entry 1.2.1 (A) High PDF/UA WCAG A EN 301 549
pdf-media-clip-ct — Media clips need a content type Medium PDF/UA
pdf-fileattachment-metadata — File attachments need a description and relationship High PDF/UA

Fonts & text encoding

Rule WCAG Impact Mode Standards
pdf-content-font-embedding — All fonts must be embedded Critical PDF/UA
pdf-character-unicode — Every character must map to Unicode 1.3.1 (A) Critical PDF/UA WCAG A EN 301 549
pdf-pua-character-usage — Avoid Private Use Area characters for real text 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-font-unicode-invalid-values — ToUnicode maps must not use reserved codepoints 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-font-cidsysteminfo-compat — CIDSystemInfo must agree between font and CMap High PDF/UA
pdf-font-cidtogidmap — Embedded CIDFontType2 fonts need a CIDToGIDMap High PDF/UA
pdf-font-cmap-embedded — Custom CMaps must be embedded High PDF/UA
pdf-font-wmode-consistent — CMap writing mode must be consistent Medium PDF/UA
pdf-font-charset-complete — Type 1 CharSet must list every embedded glyph Medium PDF/UA
pdf-font-cidset-complete — CIDSet must list every embedded CID Medium PDF/UA
pdf-font-glyph-width-consistent — Declared glyph widths must match the font program Medium PDF/UA
pdf-font-truetype-nonsymbolic-encoding — Non-symbolic TrueType fonts need a valid encoding High PDF/UA
pdf-font-truetype-symbolic-encoding — Symbolic TrueType fonts must not declare an encoding Medium PDF/UA

Structure & other

Rule WCAG Impact Mode Standards
pdf-custom-tag-mapping — Custom tags must be role-mapped 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-standard-type-remapped — Standard tags must not be re-mapped 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-note-tag-usage — Use FENote instead of Note High PDF/UA
pdf-fenote-notetype — FENote elements should declare their note type Medium PDF/UA
pdf-code-alt-text — Code blocks need alternative text 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-toci-ref-entry — Table-of-contents entries need a target 1.3.1 (A) Medium PDF/UA WCAG A EN 301 549
pdf-reference-xobject — Reference XObjects are not allowed High PDF/UA
pdf-form-xobject-mcid-multiref — Tagged Form XObjects must be referenced once 1.3.1 (A) High PDF/UA WCAG A EN 301 549
pdf-occd-name — Layer configurations need a name Medium PDF/UA
pdf-occd-as-key — Automatic layer state is not allowed Medium PDF/UA