Over 1 billion people worldwide have some form of disability. PDF is the most widely shared document format on the planet. Yet the vast majority of PDFs are completely inaccessible to screen readers. This guide explains what makes a PDF accessible and how to create one.
Why PDF Accessibility Matters
- Legal requirements — laws like the ADA (US), EAA (EU), and Equality Act (UK) require organizations to provide accessible digital documents.
- Government mandates — Section 508 (US) and EN 301 549 (EU) specifically require accessible PDFs for public-facing government documents.
- Education — students with visual impairments need accessible course materials, syllabi, and exam papers.
- Searchability — tagged PDFs allow search engines to index content properly, improving discoverability.
- Reflow — properly tagged PDFs can reflow text for mobile viewing and zoom without horizontal scrolling.
Tagged PDF vs Untagged PDF
The foundation of PDF accessibility is the tag tree — a logical structure that describes the document's content hierarchy.
| Aspect | Untagged PDF | Tagged PDF |
|---|---|---|
| What a screen reader sees | A stream of characters with no structure | Headings, paragraphs, lists, tables, images with alt text |
| Reading order | Determined by byte order in the content stream (often wrong) | Defined by the tag tree (correct logical order) |
| Tables | Read as disconnected text fragments | Read as rows and columns with headers |
| Images | Invisible — screen readers skip them entirely | Announced with alt text description |
| Reflow | Cannot reflow — text overflows on small screens | Reflows correctly based on tag structure |
Essential PDF Tags
PDF tags map to familiar HTML-like semantics:
| PDF Tag | HTML Equivalent | Purpose |
|---|---|---|
| <Document> | <html> | Root element of the tag tree |
| <H1> – <H6> | <h1> – <h6> | Heading hierarchy (most important accessibility feature) |
| <P> | <p> | Paragraph text |
| <L>, <LI> | <ul>/<ol>, <li> | Lists and list items |
| <Table>, <TR>, <TH>, <TD> | Same names | Table structure with header cells |
| <Figure> | <figure> | Images and illustrations (holds alt text) |
| <Link> | <a> | Hyperlinks |
| <Form> | <form> | Interactive form containers |
| <Artifact> | n/a | Decorative content to be ignored (headers, footers, page numbers, watermarks) |
Reading Order
PDFs are not like HTML — there's no inherent "top to bottom" reading order. Content can appear anywhere on the page in any byte order. The tag tree defines the logical reading sequence.
Common reading order problems:
- Multi-column layouts — a two-column page may read left column top to bottom, then right column, or it may zigzag between columns depending on how it was created.
- Headers and footers — page numbers and running titles should be tagged as
<Artifact>so screen readers skip them. - Sidebars and call-out boxes — must be placed in the correct position in the tag tree, not just visually on the page.
- Footnotes — should be linked to their reference points and positioned logically in the reading order.
Alt Text for Images
Every meaningful image needs alternative text. The rules:
- Describe the content, not the appearance — "Bar chart showing Q3 revenue up 15% to $2.3M" is useful. "Image of chart" is not.
- Be concise — aim for one or two sentences. For complex images like data charts, consider a longer description or a data table alternative.
- Skip decorative images — purely decorative borders, dividers, and background images should be tagged as
<Artifact>with no alt text. - Avoid "image of" or "picture of" — screen readers already announce it as an image. Saying "image of a dog" is redundant; just say "Golden retriever in a park".
Accessible Tables
Tables are one of the hardest elements to make accessible in PDF:
- Every table must have
<TH>(header) cells that identify column or row meanings. - Use the
Scopeattribute on headers to specify whether they apply to the row or column. - Avoid merged cells when possible — they confuse screen readers. If you must merge, define the header relationships explicitly.
- Don't use tables for layout — only for tabular data. Layout tables are a major accessibility barrier.
Language Settings
The document language tells screen readers which pronunciation rules and dictionaries to use:
- Set the primary language in the document properties (e.g., "en-US" for American English).
- For multilingual documents, tag individual sections with their language (e.g., a French quote within an English document).
- Without language settings, screen readers may mispronounce every word using the wrong language model.
Accessible Forms
- Every form field must have a label that describes what to enter (not just placeholder text).
- Group related fields (e.g., "Address" fields) using
<Form>tags. - Provide tool tips for fields — screen readers announce these as instructions.
- Ensure tab order follows the logical reading order (top to bottom, left to right).
- Include error messages that are announced when validation fails.
PDF/UA Standard
PDF/UA (ISO 14289) is the international standard for accessible PDF. Key requirements:
- All content must be tagged — no untagged text or images.
- Tags must be in a correct, meaningful order.
- All images have alt text or are marked as artifacts.
- Document language is set.
- Font information allows Unicode mapping (for text extraction and search).
- Bookmarks reflect the document's heading structure.
- Security settings don't block assistive technology access.
Testing Tools
| Tool | Cost | What It Checks |
|---|---|---|
| Adobe Acrobat Accessibility Check | Paid (Acrobat Pro) | Full PDF/UA compliance, tag structure, reading order, alt text |
| PAC (PDF Accessibility Checker) | Free | PDF/UA compliance, WCAG 2.1 mapping, detailed error reports |
| NVDA (Screen Reader) | Free | Real-world screen reader testing on Windows |
| VoiceOver | Free (built into macOS/iOS) | Real-world screen reader testing on Apple devices |
| axe PDF Checker | Free/Paid | Automated accessibility scanning |
Accessibility Checklist
- ✅ Tag tree with proper heading hierarchy (H1 → H2 → H3, no skipping)
- ✅ Alt text on all meaningful images
- ✅ Decorative elements marked as artifacts
- ✅ Correct reading order (verify with Reflow view)
- ✅ Table headers defined with TH tags and scope
- ✅ Document language set
- ✅ Form fields labeled
- ✅ Tab order matches logical reading order
- ✅ Sufficient color contrast (4.5:1 for body text)
- ✅ Bookmarks match heading structure
- ✅ Tested with PAC and a screen reader