Guide
What is a tagged PDF?
A PDF page is drawing instructions with no idea what it draws. Tags are the structure that says. Why they exist, and why tagged does not mean accessible.
About 9 minutes · quick
What a PDF page actually contains
A PDF page is a content stream: a sequence of operators that paint things at coordinates.
BT /F1 18 Tf 72 720 Td (Annual Report) Tj ET
BT /F1 11 Tf 72 690 Td (Revenue rose 14% over the year.) Tj ET
Set a font, move to a point, show a string. That is the entire description. Nothing in it says Annual Report is a heading, or that the second line is a paragraph, or which should be read first. The format was designed to reproduce a printed page exactly, and a printed page does not carry that information either — a sighted reader infers it from size, position and convention.
Assistive technology cannot infer it. Given only the content stream, a screen reader has coordinates and guesses.
What tags add
A tagged PDF carries a second structure alongside the page content: the structure tree, hanging off the document Catalog as /StructTreeRoot. It is a tree of elements with standard types, and each element points at the marked content on the page that it describes.
/Document
├── /H1 → "Annual Report"
├── /P → "Revenue rose 14% over the year."
├── /Figure → (the chart) /Alt "Revenue by quarter, rising each quarter"
└── /Table
├── /TR → /TH "Quarter" /TH "Revenue"
└── /TR → /TD "Q1" /TD "£1.2m"
Three things come from this and from nothing else:
Meaning. A heading is a heading because an H1 element says so, not because the text is 18pt. A list is a list because of L, LI and LBody, not because the lines start with bullets.
Order. The sequence of the tree is the reading order. It is independent of where things sit on the page, which is what makes two-column layouts, sidebars and captions possible to read correctly — and what makes them read as nonsense when the tree is wrong.
Alternatives. /Alt on a Figure, /ActualText on a text run whose characters are not what should be read, /E for an abbreviation’s expansion. There is nowhere else to put any of these.
The tree is never drawn. Tagging a file changes nothing about how it looks, which is why it can be done to a finished document — and why a tool that modifies structure should prove the rendering is unchanged rather than assert it.
Marked content: how the tree connects to the page
Elements do not contain text. They contain references to sequences in the content stream, which are labelled inline with a marked-content id:
/P <</MCID 1>> BDC
BT /F1 11 Tf 72 690 Td (Revenue rose 14% over the year.) Tj ET
EMC
BDC opens the sequence, EMC closes it, and the structure element points at MCID 1 on that page. Content that is deliberately meaningless — a page number, a decorative rule, a background — is wrapped as an artifact instead:
/Artifact <</Type /Pagination>> BDC
BT /F1 9 Tf 290 40 Td (Page 3 of 40) Tj ET
EMC
Every painting operator on the page must be in one or the other. Content in neither is orphaned: it is on the page, it is not in the tree, and it is not marked as ignorable — so a conforming reader never reaches it. That is condition 01-005, and it is the most common single failure in real documents.
Tagged is not accessible
This is the part that matters, and it is why is my PDF tagged is the wrong question.
Tagged means the tree exists. It does not mean the tree is right. A file can be fully tagged and:
- have every heading at the wrong level, or no heading structure at all because everything came out as
P; - read the right column before the left, so the text is interleaved half-sentences;
- have
Figureelements with alt text reading image1.png; - have tables with no
THat all, so a screen reader in table mode announces cells with no headers; - declare English while the text is Hebrew, so a synthesiser reads Hebrew letters with English phonetics and produces noise.
Every one of those passes “is it tagged”. Most of them pass several automated checkers, because a checker can see that a Figure has an /Alt and cannot see that the /Alt says nothing useful.
Auto-tagging makes this concrete. Acrobat’s Autotag Document produces a complete structure tree in seconds, and the file is then tagged. It infers headings from font size, tables from ruled lines and order from page geometry — each of which is right most of the time and wrong in exactly the places that matter. Acrobat knows this: it sets a flag, /Suspects true, saying its own tagging may be unreliable (condition 01-007).
How to check what your file has
Is it tagged at all: Acrobat’s File → Properties → Description tab reports Tagged PDF: Yes/No. Any free checker will tell you the same in a second.
What the tree actually says: Acrobat’s Tags panel (View → Show/Hide → Navigation Panes → Tags) shows the tree. Expanding it and reading the element types down the document is the fastest way to see whether the structure means anything.
What a reader would do with it: the only reliable test is listening. A screen-reader test script takes fifteen minutes and finds things no validator can.
Where to go next
If your file is untagged: how to tag an untagged PDF.
If it is tagged and wrong: how to fix reading order is where most of the wrongness lives.
If you are producing the document rather than repairing it: fix it at the source — Word, InDesign, LaTeX — because tags made in Acrobat are lost at the next export.
For the whole job in order: how to make a PDF accessible.
Frequently asked questions
How do I tell whether a PDF is tagged?
In Acrobat, File → Properties → Description tab, bottom right: Tagged PDF says Yes or No. In any PDF reader, try selecting text and copying a paragraph — if the line breaks come back as hard returns mid-sentence, the file is probably untagged, though this is a hint rather than proof. Any free checker answers it definitively in a second.
Does tagging change how the page looks?
No. Tags live in a parallel structure that is never painted. A correctly tagged file renders pixel for pixel identically to the untagged one, which is why tagging is safe to do to a finished document — and why a remediation tool should verify the rendering did not change, rather than assume.
Do tags make the file much bigger?
Rarely more than a few percent. The structure tree is a tree of small dictionaries; the page content, fonts and images are what the file size is made of.
My file is tagged and a screen reader still reads it wrong. Why?
Because tagged only means a structure tree exists. If the tree says the sidebar comes before the paragraph it interrupts, the reader is faithfully reading a wrong description. This is the single most common misunderstanding in the subject.
Is tagging the same as OCR?
No, and confusing them wastes a lot of time. OCR turns an image of text into text. Tagging describes text that already exists. A scanned page needs OCR first; tagging it before that produces a tagged picture.
Related failure conditions
- 01-005 Content is neither marked as Artifact nor tagged as real content Every text-showing, image-painting and path-painting operator on a page must sit either inside a marked-content sequence that maps to the structure tree, or inside an artifact sequence. Content that is in neither is orphaned.
- 09-001 Tags are not in logical reading order The order of elements in the structure tree does not match the order a human would read the page. This is the single most common substantive defect in tagged PDFs and the one Acrobat's own tooling handles worst.
- 14-001 Headings are not tagged Text that is visually a heading — larger, bolder, isolated — is tagged as a paragraph. The document has no navigable outline.
- 02-001 Non-standard tag mapping does not terminate with a standard type A custom tag name is present in the role map but the chain of mappings never arrives at a structure type defined in ISO 32000-1, 14.8.4. Mapping may be indirect — a custom type may map to another custom type — but it must eventually terminate.
- 13-001 Graphics objects are not tagged with a Figure tag An image or vector drawing that carries meaning is not inside a Figure element. Either it is untagged, or it has been swept into a paragraph.
Check your own file. Taggart's validator is free and unlimited — no page cap, no watermark, no account.
Last updated .