PDFcheck
Immediately check one or more PDF files for signs of inaccessibility
PDFcheck looks for signs of inaccessibility. It can tell you a feature is missing, but it can’t tell you a feature is correct. Treat it as a first pass before testing with Acrobat’s accessibility checker, PAC, a keyboard, and a screen reader.
Add files to review
Files are only loaded locally and are not transmitted anywhere. Need files to try? Here are a few example PDF files from the GitHub repo to check.
Results
Here’s an example result:
example-tagged-PAC-2024-pass.pdf [PDF - 115KB]
PDF Version 1.7
Creator Tool Microsoft Word 2019
Producer Adobe PDF Services
Document Title test details Heading level reference
Display Document Title test details Not configured
Language test details en-US
Marked test details True
PDF/UA identifier test details Yes
Bookmarks test details Present
Structure test details Could not inspect (compressed structure tree)
Tests
Learn more about the tests and results.
Tagged
This check indicates that tags are present in the document. If no tags are present, the file is absolutely not accessible. This check doesn’t determine if existing tags are correct.
Possible tagged values:
Tagged Yes
Tagged No
Language
All documents should have the language attribute set. For example, a document primarily in U.S. English should use (en-US).
To set the language in Acrobat, go to: File → Properties → Advanced tab → Reading Options → Language drop down
Possible language values:
Language Language abbreviation
Language Not set
Marked
A Tagged PDF document shall also contain a mark information dictionary (see Table 321) with a value of true for the Marked entry.
— ISO PDF-1.7 specification, page 574 [PDF - 9 MB]
Check out more info about Marked on Stack Overflow.
Possible marked values:
Marked True
Marked False
Marked No
PDF/UA identifier
This checkpoint isn’t a deal breaker.
The PDF/UA ID attests that the PDF is ISO 14289 (PDF/UA) compliant. It should be added as the final remediation step; otherwise you would kind of be fibbing.
— TaggedPDF.com: PDF/UA Identifier Missing
Watch a screencast showing how to fix this issue using Adobe Acrobat.
Possible PDF/UA identifier values:
PDF/UA identifier Yes
PDF/UA identifier Not set
Document Title
A conformant PDF will have a readable title specified in File → Properties.
Possible document title values:
Document Title Document title
Document Title Empty
Document Title Not set
Display Document Title
When enabled, PDF viewers will display the document title in the title bar instead of the filename.
To enable in Acrobat: File → Properties → Initial View tab → Window Options → Check “Show: Document Title”
Possible display document title values:
Display Document Title Enabled
Display Document Title Disabled
Display Document Title Not configured
PDF Version
PDF/UA (ISO 14289-1), the accessibility standard for PDF, builds on PDF 1.7. A file with an earlier version can still be tagged and usable, so this isn’t a deal breaker on its own. Saving the file again from a current tool usually updates the version.
Possible PDF version values:
PDF Version 1.7
PDF Version 1.4 (PDF/UA requires 1.7 or later)
Suspects
The Suspects entry in the mark information dictionary means the producer found content it couldn’t tag with confidence. Acrobat sets it after some auto-tagging and OCR steps. Review the tags before trusting them. This check only appears when the flag is set.
Possible suspects values:
Suspects True
Bookmarks
Bookmarks (the outline shown in a viewer’s side panel) let people jump to a section without paging through the document. Common federal guidance, including the HHS checklist, calls for bookmarks in documents of 9 or more pages. PDFcheck can’t read the page count reliably, so a missing outline is shown as information rather than a warning.
Possible bookmarks values:
Bookmarks Present
Bookmarks Not found
Form Fields
Each form field needs a description (the tooltip, stored as TU) so a screen reader can announce what to type or choose. This check only appears when the file has a form. Fields are counted from uncompressed field dictionaries, and radio button and checkbox groups can make the count approximate.
Possible form fields values:
Form Fields 2 fields, 2 with descriptions
Form Fields 5 fields, 2 with descriptions
Form Fields Form present (fields could not be inspected)
Structure
The checks for headings, lists, tables, and figures read the tag tree as plain text. Many tools, including Acrobat and Word, store the tag tree in compressed object streams that PDFcheck can’t open. When that happens this flag appears instead of those checks. It says nothing about whether the tags are good or bad, so open the file in PAC or Acrobat to inspect them.
Possible structure values:
Structure Could not inspect (compressed structure tree)
Headings
Headings give screen reader users a way to skim and jump through the document, and every document should start with an H1. This check counts heading tags by level and flags a missing H1. It doesn’t check whether levels are skipped or whether the text makes sense as a heading.
Possible headings values:
Headings H1: 1, H2: 3, H3: 2
Headings No H1 (H2: 3, H3: 2)
Headings None found
Lists
Tagged lists tell assistive technology how many items there are and where each one starts. This check counts list and list item tags and only appears when the file has at least one list.
Possible lists values:
Lists 2 lists, 7 items
Tables
Data tables need header cells (TH tags) so a screen reader can announce the row or column each cell belongs to. This check counts table and header cell tags and only appears when the file has at least one table. It can’t tell whether the headers are attached to the correct cells.
Possible tables values:
Tables 2 tables, 8 header cells
Tables 2 tables, no header cells
Figures
Each figure tag needs alternative text (the Alt entry) that describes the image. This check counts figure tags and alt text entries across the whole file. It can’t match an entry to a specific figure or judge whether the text is useful. The check only appears when the file has at least one figure.
Possible figures values:
Figures 3 figures, 3 alt text entries
Figures 3 figures, 1 alt text entry