PDF/UA checks
PDF/UA defines what a conforming document must contain; these are the 82 individual checks EqualWeb runs against a PDF to test it. Each one maps to a clause of ISO 14289-2, and most map to a WCAG 2.2 success criterion as well. Open any check for what it means in plain language, why it matters, and a step-by-step fix.
56 of them describe something an author can fix in the source document or in Acrobat. The remaining 26 are marked advanced: they describe defects inside the file's font and encoding internals, where the practical remedy is almost always to regenerate the PDF from a toolchain that produces conforming output rather than to edit the file.
| Check | What it means | Severity | Category | WCAG 2.2 |
|---|---|---|---|---|
CHARACTER_UNICODE | Every character must map to Unicode | Critical | Fonts & text encoding | 1.3.1 (A) |
CHOICE_FIELD_OPT_TEXT | Dropdown options need text | Critical | Forms | 4.1.2 (A) |
CONTENT_FONT_EMBEDDING | All fonts must be embedded | Critical | Fonts & text encoding | — |
CONTENT_IS_TAGGED | All real content must be tagged, decoration marked as artifact | Critical | Page content | 1.3.1 (A) |
DOC_ACCESSIBILITY_PERMISSIONS | Security settings must not block assistive technology | Critical | Document level | 1.3.1 (A) |
DOC_LOGICAL_ORDER | Reading order must follow the visual order | Critical | Document level | 1.3.2 (A) |
DOC_TAGS | The document must be a tagged PDF | Critical | Document level | 1.3.1 (A) |
FIGURE_ALT_TEXT | Images need alternative text | Critical | Figures & images | 1.1.1 (A) |
FORM_FIELD_DESCRIPTION | Form fields need labels | Critical | Forms | 3.3.2 (A), 4.1.2 (A) |
FORMULA_ALT_TEXT | Formulas need alternative text | Critical | Figures & images | 1.1.1 (A) |
IMAGE_OUTSIDE_FIGURE | Images must be tagged as figures | Critical | Figures & images | 1.1.1 (A) |
MULTIMEDIA_ALT_DESCRIPTION | 3D and rich media need alternative descriptions | Critical | Annotations | 1.1.1 (A) |
SCREEN_ANNOT_CONTENTS | Embedded media needs a text description | Critical | Annotations | 1.1.1 (A) |
TABLE_DATA_ASSOCIATION | Data cells need to be linked to their headers | Critical | Tables | 1.3.1 (A) |
TABLE_HEADER_SCOPE | Header cells need a scope | Critical | Tables | 1.3.1 (A) |
TABLE_HEADERS_EXIST | Tables need header cells | Critical | Tables | 1.3.1 (A) |
XFA_FORM_PRESENT | XFA forms are not allowed | Critical | Forms | 4.1.2 (A) |
ANNOT_DEPRECATED_TYPE | Remove deprecated annotation types | High | Annotations | — |
ANNOT_TAB_ORDER | Pages with annotations need a tab order | High | Annotations | 2.4.3 (A) |
ANNOT_TAGGED | Annotations must appear in the tag tree | High | Annotations | 1.3.1 (A) |
CODE_ALT_TEXT | Code blocks need alternative text | High | Structure & other | 1.3.1 (A) |
COLOR_CONTRAST | Text needs sufficient contrast against its background | High | Page content | 1.4.3 (AA) |
CUSTOM_TAG_MAPPING | Custom tags must be role-mapped | High | Structure & other | 1.3.1 (A) |
DOC_LANG | The document needs a primary language | High | Document level | 3.1.1 (A) |
FILEATTACHMENT_METADATA | File attachments need a description and relationship | High | Annotations | — |
FONT_CIDSYSTEMINFO_COMPAT | CIDSystemInfo must agree between font and CMap | High | Fonts & text encoding | — |
FONT_CIDTOGIDMAP | Embedded CIDFontType2 fonts need a CIDToGIDMap | High | Fonts & text encoding | — |
FONT_CMAP_EMBEDDED | Custom CMaps must be embedded | High | Fonts & text encoding | — |
FONT_TRUETYPE_NONSYMBOLIC_ENCODING | Non-symbolic TrueType fonts need a valid encoding | High | Fonts & text encoding | — |
FONT_UNICODE_INVALID_VALUES | ToUnicode maps must not use reserved codepoints | High | Fonts & text encoding | 1.3.1 (A) |
FORM_LBL_STRUCTURE | Visible form labels need an Lbl element | High | Forms | 1.3.1 (A), 3.3.2 (A) |
FORM_XOBJECT_MCID_MULTIREF | Tagged Form XObjects must be referenced once | High | Structure & other | 1.3.1 (A) |
H_TAG_USAGE | Use numbered headings, not the generic H tag | High | Headings | 1.3.1 (A) |
HEADER_NESTING | Heading levels must not skip | High | Headings | 1.3.1 (A) |
LINK_PARENT_LINK | Link annotations belong inside a Link element | High | Links | 1.3.1 (A) |
MARKUP_ANNOT_PARENT_ANNOT | Markup annotations belong inside an Annot element | High | Annotations | 1.3.1 (A) |
MEDIA_CLIP_ALT | Media clips need an Alt entry | High | Annotations | 1.2.1 (A) |
NOTE_TAG_USAGE | Use FENote instead of Note | High | Structure & other | — |
REFERENCE_XOBJECT | Reference XObjects are not allowed | High | Structure & other | — |
STANDARD_TYPE_REMAPPED | Standard tags must not be re-mapped | High | Structure & other | 1.3.1 (A) |
TEXT_FIELD_RV_REQUIRES_V | Rich-text fields need a plain-text value | High | Forms | 4.1.2 (A) |
WIDGET_PARENT_FORM | Form widgets belong inside a Form element | High | Forms | 4.1.2 (A) |
ANNOT_INVALID_PARENT | Annotations must not hang off headings or the document root | Medium | Annotations | 1.3.1 (A) |
FENOTE_NOTETYPE | FENote elements should declare their note type | Medium | Structure & other | — |
FIGURE_BBOX | Figures need a bounding box | Medium | Figures & images | — |
FONT_CHARSET_COMPLETE | Type 1 CharSet must list every embedded glyph | Medium | Fonts & text encoding | — |
FONT_CIDSET_COMPLETE | CIDSet must list every embedded CID | Medium | Fonts & text encoding | — |
FONT_GLYPH_WIDTH_CONSISTENT | Declared glyph widths must match the font program | Medium | Fonts & text encoding | — |
FONT_TRUETYPE_SYMBOLIC_ENCODING | Symbolic TrueType fonts must not declare an encoding | Medium | Fonts & text encoding | — |
FONT_WMODE_CONSISTENT | CMap writing mode must be consistent | Medium | Fonts & text encoding | — |
FORM_FIELD_HIDDEN | Form fields must not be hidden by ancestor alt text | Medium | Forms | 4.1.2 (A) |
INTRA_DOC_STRUCTURE_DEST | Internal links should target structure, not page numbers | Medium | Document level | — |
LINK_DESCRIPTION | Links need a meaningful description | Medium | Links | 2.4.4 (A) |
LIST_PARENT_ELEMENT | List items must sit inside a list | Medium | Lists | 1.3.1 (A) |
MARKUP_ANNOT_DESCRIPTION | Markup annotations need a description | Medium | Annotations | 1.1.1 (A) |
MARKUP_ANNOT_TAGGED | Markup annotations must be tagged | Medium | Annotations | 1.3.1 (A) |
MEDIA_CLIP_CT | Media clips need a content type | Medium | Annotations | — |
MULTIPLE_H_IN_PARENT | Only one generic H per parent | Medium | Headings | 1.3.1 (A) |
OCCD_AS_KEY | Automatic layer state is not allowed | Medium | Structure & other | — |
OCCD_NAME | Layer configurations need a name | Medium | Structure & other | — |
OUTLINE_ACTION_ENTRY | Bookmarks must actually go somewhere | Medium | Document level | 2.4.5 (AA) |
POPUP_IN_STRUCTURE | Popup annotations must stay out of the tag tree | Medium | Annotations | — |
PRINTERMARK_ARTIFACT | Printer marks must be artifacts | Medium | Annotations | — |
PUA_CHARACTER_USAGE | Avoid Private Use Area characters for real text | Medium | Fonts & text encoding | 1.3.1 (A) |
RADIO_BUTTON_UNIQUE_NAMES | Radio groups need distinct field names | Medium | Forms | 4.1.2 (A) |
TABLE_DATA_STRUCTURE | TD cells must sit directly inside a row | Medium | Tables | 1.3.1 (A) |
TABLE_HEADER_STRUCTURE | TH cells must sit directly inside a row | Medium | Tables | 1.3.1 (A) |
TABLE_LEGALITY | Tables need valid row and cell structure | Medium | Tables | 1.3.1 (A) |
TABLE_REGULARITY | Tables must have a consistent column count | Medium | Tables | 1.3.1 (A) |
TABLE_ROW_STRUCTURE | Rows must sit inside the table or a row group | Medium | Tables | 1.3.1 (A) |
TOCI_REF_ENTRY | Table-of-contents entries need a target | Medium | Structure & other | 1.3.1 (A) |
XMP_TEXT_PUA | Metadata must not contain private-use characters | Medium | Metadata | 2.4.2 (A) |
DOC_BOOKMARKS | Long documents need bookmarks | Low | Document level | 2.4.5 (AA) |
DOC_PDF_STANDARD | The file should declare PDF/UA conformance | Low | Document level | — |
DOC_TITLE | The document needs a title | Low | Document level | 2.4.2 (A) |
FIGURE_ALT_TEXT_EXPOSURE | Ancestor alt text is shadowing a figure | Low | Figures & images | 1.1.1 (A) |
FIRST_HEADER_LEVEL | The first heading should be an H1 | Low | Headings | 1.3.1 (A) |
LINK_ALT_TEXT_EXPOSURE | Nested link tags hide the link description | Low | Links | 2.4.4 (A) |
LIST_BODY_ELEMENT | List item content needs an LBody | Low | Lists | 1.3.1 (A) |
METADATA_DISPLAY_TITLE | Viewers should show the title, not the file name | Low | Metadata | 2.4.2 (A) |
METADATA_EMBEDDED_FILE_SPECS | Attachments need a Unicode filename | Low | Metadata | — |
TABLE_SUMMARY | Complex tables benefit from a summary | Low | Tables | — |
Where these come from
These are the checks behind an EqualWeb PDF accessibility report, so a finding in a report and a row in this table are the same thing. For hands-on practice, the Learn section covers the defects most documents actually fail: accessible documents & PDF, tables in PDF, links & annotations, and headings, lists & tag semantics.