You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd
+43-21Lines changed: 43 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,11 @@
2
2
title: PDF Accessibility and Standards
3
3
---
4
4
5
-
2025 was a big year for PDF accessibility. LaTeX and Typst both released support for PDF tagging and accessibility standards, just in time for new regulations in the EU (June 2025) and US (April 2026). Quarto 1.9 brings this support to you as a Quarto user.
5
+
2025 was a big year for PDF accessibility. LaTeX and Typst both released support for PDF tagging and accessibility standards, just in time for new regulations in the [EU](https://en.wikipedia.org/wiki/European_Accessibility_Act) (June 2025) and [US](https://accessible.org/ada-title-ii-web-accessibility/) (April 2026).
6
+
7
+
Quarto 1.9 brings this support to you as a Quarto user.
8
+
9
+
## What PDF Standards Do
6
10
7
11
Currently LaTeX supports the newer UA-2 standard, and Typst supports the older UA-1 standard. Typst is likely to have UA-2 support later in 2026.
8
12
@@ -13,7 +17,7 @@ Both standards instruct the PDF renderer to provide screen readers:
13
17
* Spatial coordinates for highlighting and assistive navigation
14
18
* Required metadata such as title and language
15
19
16
-
## Enabling a PDF Standard for Accessibility
20
+
## How to enable a PDF Standard in Quarto
17
21
18
22
In Quarto 1.9, specify a PDF standard for your document or project with `pdf-standard`
19
23
@@ -35,46 +39,64 @@ format:
35
39
```
36
40
:::
37
41
38
-
`pdf-standard` takes a single standard name or list of standard names.PDF version is used if provided in the list, but otherwise inferred from the standard.
42
+
`pdf-standard` takes a single standard name or list of standard names. PDF version is used if provided in the list, but otherwise inferred from the standard.
43
+
44
+
If you specify a PDF standard, Quarto first instructs LaTeX or Typst to use the standard when producing the PDF, and then validates the output PDF against the standard using veraPDF, an open-source PDF validation tool.
39
45
40
-
If you specify a PDF standard, Quarto first instructs LaTeX or Typst to use the standard when producing the PDF, and then validates the output PDF against the standard using veraPDF, an open-source PDF validation tool.
46
+
::: {.callout-note}
47
+
## Installing veraPDF
41
48
42
-
## Markdown is naturally good for Accessibility
49
+
veraPDF requires a separate install:
50
+
51
+
```{.bash filename="Terminal"}
52
+
quarto install verapdf
53
+
```
43
54
44
-
Quarto doesn't guarantee PDF accessibility compliance, but its Markdown-based workflow handles many requirements automatically:
55
+
veraPDF requires Java.
56
+
57
+
:::
58
+
59
+
When a document passes validation, you'll see output like:
60
+
61
+
```
62
+
[verapdf]: Validating my-document.pdf against PDF/UA-2... PASSED
63
+
```
64
+
65
+
## Creating accessible PDFs
66
+
67
+
Quarto's Markdown-based workflow handles many accessibility requirements automatically:
45
68
46
69
* Document metadata (title, author, date, language) flows into the PDF's built-in metadata fields.
47
70
* The semantic structure of Markdown satisfies PDF tagging requirements. For Typst this is always enabled; for LaTeX it is enabled when you specify a standard that requires it.
48
71
* Alt text for images is carried through to the PDF for screen readers.
49
72
50
-
See the [LaTeX](https://prerelease.quarto.org/docs/output-formats/pdf-basics.html#accessibility-requirements) and [Typst](https://prerelease.quarto.org/docs/output-formats/typst.html#accessibility-requirements) documentation for details.
73
+
But you do need to make sure your document has:
51
74
52
-
## What to expect
75
+
* A **title** in the YAML front matter.
76
+
* **Alt text for every image**, specified with `fig-alt`. See [Figures](/docs/authoring/figures.qmd) for details.
53
77
54
-
We ran our test suite, with 188 LaTeX examples and 317 Typst examples, in order to see:
78
+
See the [LaTeX](https://prerelease.quarto.org/docs/output-formats/pdf-basics.html#accessibility-requirements) and [Typst](https://prerelease.quarto.org/docs/output-formats/typst.html#accessibility-requirements) documentation for more details.
55
79
56
-
* Where Quarto produces PDFs that do not pass UA-1 or UA-2.
57
-
* Where users will need to change their documents to meet accessibility standards
80
+
## Current limitations
58
81
59
-
### Both formats
60
-
61
-
Your document needs a title.
62
-
63
-
Your document needs alt text and/or a caption for every image.
82
+
We ran our test suite -- 188 LaTeX examples and 317 Typst examples -- to find where Quarto PDFs do not yet pass UA-1 or UA-2, and where users will need to change their documents.
64
83
65
84
### LaTeX
66
85
67
-
Margin notes are the biggest structural blocker. The `sidenotes` and `marginnote` LaTeX packages [do not cooperate with PDF Tagging](https://github.com/quarto-dev/quarto-cli/issues/14103).
86
+
Margin content is the biggest structural blocker. If you use `.column-margin` divs, `cap-location: margin`, `reference-location: margin`, or `citation-location: margin`, the resulting PDF will not pass UA-2. The underlying `sidenotes` and `marginnote` LaTeX packages [do not cooperate with PDF tagging](https://github.com/quarto-dev/quarto-cli/issues/14103).
68
87
69
-
There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documented here](https://github.com/quarto-dev/quarto-cli/pull/14097#issuecomment-3947653207).
88
+
(Margin content does work with Typst and passes UA-1 -- see [Typst Article Layout](/docs/output-formats/typst.qmd#article-layout).)
70
89
71
-
We expect that as awareness of accessibility and UA-2 spreads, these problems will get fixed upstream. Please search for [discussions](https://github.com/orgs/quarto-dev/discussions) and file a new one if essential features of PDF output in Quarto fail UA-2.
90
+
There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documented here](https://github.com/quarto-dev/quarto-cli/pull/14097#issuecomment-3947653207).
72
91
73
92
### Typst
74
93
75
94
In our tests, Typst catches every UA-1 violation, and fails to generate the PDF. veraPDF did not detect any violation that Typst did not.
76
95
77
-
Typst also seems to do a very good job of generating UA-1 compliant output by default - almost all errors were titles and alt text.
96
+
Typst also seems to do a very good job of generating UA-1 compliant output by default -- almost all errors were titles and alt text.
78
97
79
-
However, we did discover that Typst Books are not yet compliant. There is [structural problem with the Typst orange-book package](https://github.com/flavio20002/typst-orange-template/issues/38) and we'll work with the maintainers to correct it.
98
+
However, we did discover that [Typst Books](/docs/books/book-output.qmd#typst-output) are not yet compliant. There is a [structural problem with the Typst orange-book package](https://github.com/flavio20002/typst-orange-template/issues/38) and we'll work with the maintainers to correct it.
99
+
100
+
---
80
101
102
+
We expect PDF accessibility support to improve upstream throughout 2026 as awareness of UA-2 and the new regulations spreads. If you run into accessibility issues with PDF output, please search the [Quarto discussions](https://github.com/orgs/quarto-dev/discussions) and open a new one with the `accessibility` label for any issues you discover.
0 commit comments