Accessible PDF checklist
PAC reports zero errors, and the screen reader still reads the table out of order. That is why every PDF/UA and WCAG check below says whether a tool will find it or whether someone has to look.
Last updated:
Reading the "Check" column
"Automated" means validators such as PAC, veraPDF or the EasyPDFUA PDF/UA check find the problem reliably. With "partly", a tool can see whether something exists and is formally correct, but not whether it makes sense. An Alt attribute that just says "image" passes every validator. "Manual" is left to a person, by eye or with a screen reader.
The background is in What is PDF/UA? and WCAG 2.2 for PDF documents. If a validator reports errors, Common PAC and veraPDF errors will help.
1. Document properties
| Check item | What to check | Check |
|---|---|---|
| Document title | A title is set in the metadata (dc:title) and is meaningful, not "Document1" or a file name | partly |
| Display title | DisplayDocTitle is true, so the title bar shows the title instead of the file name | automated |
| Document language | The main language (/Lang) is set and correct, e.g. en-GB or de-AT | partly |
| Language changes | Passages in another language have their own language attribute on the tag | manual |
| PDF/UA identifier | XMP contains pdfuaid:part, but only once the other requirements are met | automated |
| Tagged flag | MarkInfo with Marked true and a structure tree (StructTreeRoot) are present | automated |
2. Structure and reading order
| Check item | What to check | Check |
|---|---|---|
| All content tagged | Every piece of content is either assigned to a tag or marked as an artifact | automated |
| Appropriate tags | Paragraphs as P, headings as H1–H6, no content left only in generic containers | manual |
| Heading hierarchy | A logical outline without skipped levels; visually emphasised headings are also tagged as headings | partly |
| Lists | Bulleted and numbered lists as L with LI, Lbl and LBody, not paragraphs starting with a dash | partly |
| Tables | Data tables as Table with TR; header cells as TH with Scope (Row/Column); a regular structure without missing cells | partly |
| Layout tables | Tables used only for positioning are not tagged as data tables | manual |
| Reading order | The order in the structure tree matches the logical order of the content, including columns, boxes and captions | manual |
| Artifacts | Headers and footers, page numbers, backgrounds and decorative rules are artifacts; no real content is an artifact | manual |
3. Images and graphics
| Check item | What to check | Check |
|---|---|---|
| Alternative text present | Every Figure tag has an Alt attribute | automated |
| Alternative text meaningful | The text briefly describes the purpose and content of the image, not "image1.jpg" | manual |
| Decorative images | Purely decorative images are marked as artifacts rather than tagged with empty alternative text | manual |
| Complex graphics | Charts, maps and infographics also have an extended description or a data table | manual |
| Text as image | No body text as images; scanned pages have been converted into real text with OCR | partly |
4. Text, fonts and colour
| Check item | What to check | Check |
|---|---|---|
| Fonts embedded | All fonts used are embedded in the PDF | automated |
| Unicode mapping | Every character maps to Unicode (ToUnicode); quick test: copy text and paste it into an editor | automated |
| Word spacing | Words are read out correctly separated, not split apart or run together | manual |
| Text contrast | At least 4.5:1 for normal text and 3:1 for large text (WCAG 1.4.3) | manual |
| Graphics contrast | At least 3:1 for meaningful graphical elements such as chart lines (WCAG 1.4.11) | manual |
| Not colour alone | Information is not conveyed by colour alone, for example in charts or status indicators (WCAG 1.4.1) | manual |
5. Links and navigation
| Check item | What to check | Check |
|---|---|---|
| Link annotations | Every link annotation is anchored in the structure through a Link tag with an object reference and has a description (Contents) | automated |
| Link text | The destination is clear from the link text or its context, not merely "here" | manual |
| Links work | Web addresses are clickable and lead to the right destination | partly |
| Bookmarks | Longer documents have bookmarks that follow the heading structure | partly |
| Tab order | Pages with annotations use the document structure as tab order (/Tabs /S) | automated |
There is no fixed page threshold for bookmarks. WCAG technique PDF2 recommends them for documents longer than a few pages. We recommend them as soon as a document has several chapters.
6. Forms
| Check item | What to check | Check |
|---|---|---|
| Fields tagged | Every form field is anchored in the structure through a Form tag | automated |
| Field labels | Every field has a tooltip (TU) stating its purpose and format, e.g. "Date of birth (DD/MM/YYYY)" | partly |
| Required fields and errors | Required fields are not marked by colour alone; input error messages are available as text | manual |
| Keyboard operation | All fields can be reached and filled in with the Tab key in a sensible order | manual |
7. Security
| Check item | What to check | Check |
|---|---|---|
| Access for assistive technology | If the PDF is encrypted, content access for accessibility tools must be permitted, otherwise screen readers cannot read the text | automated |
| No copy protection by image | Text has not been converted into graphics to prevent copying | manual |
8. Validation and testing
- Validator: validate against PDF/UA-1 with PAC (PDF Accessibility Checker) or veraPDF. Both cover the machine-checkable conditions of the Matterhorn Protocol.
- Structure: go through the tag tree and reading order in Acrobat Pro, axesPDF or the structure view in the EasyPDFUA report.
- Screen reader: listen to the document with NVDA or JAWS on Windows, or VoiceOver on macOS, paying attention to reading order, jumping between headings, tables and alternative text.
- Contrast: measure critical colour combinations with a tool such as the Colour Contrast Analyser.
Only after step 3 do you know whether the PDF is actually usable.
Most of it belongs in the template
Many items on this list are handled once per template instead of once per PDF. Headings, lists and table header rows are marked up in Word, InDesign or the content system with styles, not manual formatting, and export turns them into the right tags. Alternative text is maintained in the original document, which is also where decorative images are marked as decorative. Title and language go into the document properties of the source file.
On export, the option for tagged or accessible PDF has to be switched on. "Print to PDF" usually does not produce a tagged document. Retroactive tagging is for files whose source is missing or can no longer be changed.
What EasyPDFUA covers
The EasyPDFUA PDF/UA check shows the structure tree with RoleMap, alternative text, ActualText, language settings and page references, and flags simple findings such as a Figure without alternative text or a table without TH. That mostly concerns sections 1 to 3.
Retroactive tagging sets the title, DisplayDocTitle, language and the PDF/UA-1 identifier, adds a base structure with one P tag per page and turns standalone web and email addresses into links with a Link tag and /Tabs /S. It fills in missing ToUnicode mappings where they can be derived unambiguously. A missing TrueType font program is embedded only if a local font file with the same PostScript name exists, its licence bits permit embedding and its widths match exactly. Headings, lists, tables, alternative text, forms and contrast remain manual work. If many PDFs pass through a document workflow, checking and tagging can be connected via the API.
Frequently asked questions
Which checklist items can be checked automatically?
The technical ones: title and DisplayDocTitle, language, PDF/UA identifier, tagged flag, embedded fonts, Unicode mapping, link tags, tab order and whether alternative text exists. Whether headings, reading order, alternative text and contrast are actually right is for a person to judge.
What contrast does an accessible PDF need?
For WCAG 2.2 level AA, at least 4.5:1 for normal text, 3:1 for large text and 3:1 for meaningful graphical elements. And no information may rely on colour alone.
From how many pages does a PDF need bookmarks?
There is no fixed threshold. WCAG technique PDF2 refers to documents longer than a few pages. With several chapters they are always worth it.
Is it enough if PAC reports no errors?
No. PAC and veraPDF only see what a machine can decide. A pass with NVDA, JAWS or VoiceOver and a look at reading order, headings and alternative text belong in the process.