Skip to content

Commit e2b42f1

Browse files
address first pass of comments
1 parent 30be109 commit e2b42f1

1 file changed

Lines changed: 43 additions & 21 deletions

File tree

  • docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards

docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd

Lines changed: 43 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22
title: PDF Accessibility and Standards
33
---
44

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
610

711
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.
812

@@ -13,7 +17,7 @@ Both standards instruct the PDF renderer to provide screen readers:
1317
* Spatial coordinates for highlighting and assistive navigation
1418
* Required metadata such as title and language
1519

16-
## Enabling a PDF Standard for Accessibility
20+
## How to enable a PDF Standard in Quarto
1721

1822
In Quarto 1.9, specify a PDF standard for your document or project with `pdf-standard`
1923

@@ -35,46 +39,64 @@ format:
3539
```
3640
:::
3741
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.
3945

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
4148

42-
## Markdown is naturally good for Accessibility
49+
veraPDF requires a separate install:
50+
51+
```{.bash filename="Terminal"}
52+
quarto install verapdf
53+
```
4354

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:
4568

4669
* Document metadata (title, author, date, language) flows into the PDF's built-in metadata fields.
4770
* 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.
4871
* Alt text for images is carried through to the PDF for screen readers.
4972

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:
5174

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.
5377

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.
5579

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
5881

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.
6483

6584
### LaTeX
6685

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).
6887

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).)
7089

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).
7291

7392
### Typst
7493

7594
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.
7695

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.
7897

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+
---
80101

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

Comments
 (0)