Guide
How to export an accessible PDF from Google Docs
Google Docs exports tagged PDFs and has done since 2022. What comes out right, the three things it cannot do, and what to fix afterwards.
About 8 minutes · quick
Export the right way
File → Download → PDF Document (.pdf).
That path emits a tagged PDF. There are no options to set, which is both the good news and the bad news — nothing to get wrong, and nothing to tune.
Not File → Print → Save as PDF. The browser print path produces an untagged file, exactly as it does from Word. The output looks identical and has no structure at all.
What comes out right
- Headings.
Heading 1…Heading 6from the styles menu becomeH1…H6, at the right levels. - Lists. The list buttons produce proper
L/LI/LBody. - Links. Real
/Linkstructure elements, not bare annotations — better than several commercial tools manage. - Tables.
Table/TR/TD, with a header row if you have set one. - Alt text. Right-click an image → Alt text carries through to
/Alt. - Document language. The document’s language setting becomes
/Lang.
For a report, a policy document or a letter, that is most of the way there.
The three gaps
Language of parts
Google Docs has one language setting for the whole document. There is no way to mark a passage as being in a different language, so nothing exports per-run /Lang.
For a monolingual document this does not matter. For a bilingual one it matters a great deal: a Hebrew document with an English abstract will read the abstract with a Hebrew voice, or the reverse. WCAG 3.1.2 Language of Parts is a Level AA criterion and this is the failure mode — see TG-RTL-002.
The fix is after export, in Acrobat’s Tags panel: select the element, Properties → Tag → Language. Or in Taggart, which detects the runs by script and proposes the language for each.
The display-title flag
The document’s name becomes the PDF’s /Title, which is right. What Docs cannot set is /DisplayDocTitle, so a reader ignores that title and announces the filename anyway.
Two switches, both required — see the title guide. This one has to be set after export, in Acrobat or with a two-line script.
Name the document properly before you export, though. “Untitled document” and “Copy of Annual Report v3 FINAL” both become the title.
Complex tables
You get a header row and nothing else — no /Scope on header cells, no Headers/ID references. Adequate for a simple grid, insufficient for anything with merged cells or two header rows. See the table guide.
Before you export
The same discipline as any other authoring tool, and it is what decides the outcome:
Real heading styles, in order, no skipped levels. The Format → Paragraph styles menu, not bold 16pt text.
Real lists, from the list buttons.
A header row on every data table: select the row → Format → Table → Pin header row. Google’s terminology differs from Word’s; “pin header row” is what becomes THead.
Alt text on every image: right-click → Alt text, or Ctrl+Alt+Y. Google Docs has no “mark as decorative” option, which is a real limitation: a decorative image has to be dealt with after export, by changing its Figure to an artifact.
Name the document. It becomes the title.
Set the language: File → Language.
Google’s own accessibility checker
Tools → Accessibility → Accessibility settings turns on screen-reader support and braille support, which affects editing rather than export.
There is no equivalent of Word’s Check Accessibility — Docs will not tell you that an image lacks alt text or that a heading level is skipped. That absence is worth planning around: check the exported PDF rather than expecting the editor to warn you.
After you export
Three things, in about five minutes:
- The display-title flag. Acrobat:
File → Properties → Initial View → Window Options → Show: Document Title. - Language of parts, if the document is bilingual.
- Decorative images — retype any
Figurethat carries no information to an artifact.
Then check it: two checkers and a paste test.
Frequently asked questions
Does Google Docs actually produce tagged PDFs?
Yes. Since 2022 the Download as PDF path emits a structure tree with headings, lists, tables and links. It is a real improvement over what came before, and for a straightforward text document the output is close to Word's.
What is the biggest gap versus Word?
Language of parts. Word exports a per-run /Lang for passages you have marked in another language; Google Docs exports only a document-level language. For a bilingual document — which in practice means most Hebrew and Arabic documents with any English in them — that gap has to be closed after export.
Can I set the document title from Google Docs?
The document's name becomes the PDF title, so name the document properly rather than leaving it as 'Untitled document' or 'Copy of Report v3'. What you cannot set is the DisplayDocTitle flag, so a reader still announces the filename until that is fixed after export.
What about Google Slides?
Slides exports tags too, and the same reading-order caveat as PowerPoint applies: the order comes from the object stacking, not from position on the slide. Slides has no Selection Pane equivalent, which makes reordering harder — arrange objects in the order you want as you build.
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.
- 06-001 Document does not contain an XMP metadata stream The catalog has no /Metadata entry pointing at an XMP packet. PDF/UA-1 requires one — it is where the conformance claim and the document title live.
- 14-003 Numbered heading levels in descending sequence are skipped The heading hierarchy jumps a level going down — H1 straight to H3. Going back up any number of levels is fine; going down must be one level at a time.
- 11-001 Natural language for text in page content cannot be determined No /Lang is in effect for some text: neither on the catalog, nor on an enclosing structure element, nor on a marked-content sequence.
- 15-003 A TH cell does not contain a Scope attribute Header cells must declare whether they head a row, a column, or both, unless the table instead uses explicit /Headers ID references on every data cell.
Check your own file. Taggart's validator is free and unlimited — no page cap, no watermark, no account.
Last updated .