From 43b75bea3dc7bbb5ff464c392a59661da4bcecaa Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Mon, 23 Feb 2026 14:21:53 -0500 Subject: [PATCH 1/8] draft: pdf accessibility --- .../index.qmd | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd new file mode 100644 index 0000000000..256fcbfd7e --- /dev/null +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -0,0 +1,42 @@ +--- +title: PDF Accessibility and Standards +--- + +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) + +The UA-1 standard supported by Typst, and the UA-2 standard supported by LaTeX, [Typst is likely to have UA-2 support later in 2026]{.aside} both instruct the PDF renderer to provide screen readers: + +* The semantic structure of the text (title, heading, paragraph, figure, etc) +* The natural reading order +* Spatial coordinates for highlighting and assistive navigation +* Required metadata such as title and language + +In Quarto 1.9, specify a PDF standard for your document or project with `pdf-standard` + +::: panel-tabset +## PDF (LaTeX) + +```yaml +format: + pdf: + pdf-standard: ua-2 +``` + +## Typst + +```yaml +format: + typst: + pdf-standard: ua-1 +``` +::: + +`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]{.aside} + +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. + +Typst validates many accessibility rules during rendering, and can fail earlier. + +It's too soon to say, but we don't expect Quarto users to see many errors when enabling a PDF standard. [need to test this further]{.content-hidden} + +The metadata and Markdown structure of your Quarto document satisfy the main requirement, semantic tagging. Quarto Alt text propagation, recently implemented in Pandoc and Quarto, with a fallback to the caption From 0ff2920a854828515daa764cef86eac7bb62ffa1 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Tue, 24 Feb 2026 13:09:57 -0500 Subject: [PATCH 2/8] test results and other edits --- .../index.qmd | 44 +++++++++++++++++-- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index 256fcbfd7e..3cee64da50 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -11,6 +11,8 @@ The UA-1 standard supported by Typst, and the UA-2 standard supported by LaTeX, * Spatial coordinates for highlighting and assistive navigation * Required metadata such as title and language +## Enabling a PDF Standard for Accessibility + In Quarto 1.9, specify a PDF standard for your document or project with `pdf-standard` ::: panel-tabset @@ -31,12 +33,46 @@ format: ``` ::: -`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]{.aside} +`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. 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. -Typst validates many accessibility rules during rendering, and can fail earlier. +## Markdown is naturally good for Accessibility + +Quarto doesn't guarantee PDF accessibility compliance, but its Markdown-based workflow handles many requirements automatically: + +* Document metadata (title, author, date, language) flows into the PDF's built-in metadata fields. +* 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. +* Alt text for images is carried through to the PDF for screen readers. + +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. + +## What to expect + +We ran our test suite, with 188 LaTeX examples and 317 Typst examples, in order to see: + +* Where Quarto produces PDFs that do not pass UA-1 or UA-2. +* Where users will need to change their documents to meet accessibility standards + +### Both formats + +Your document needs a title. + +Your document needs alt text and/or a caption for every image. + +### LaTeX + +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). + +There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documented here](https://github.com/quarto-dev/quarto-cli/pull/14097#issuecomment-3947653207). + +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. + +### Typst + +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. + +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. -It's too soon to say, but we don't expect Quarto users to see many errors when enabling a PDF standard. [need to test this further]{.content-hidden} +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. -The metadata and Markdown structure of your Quarto document satisfy the main requirement, semantic tagging. Quarto Alt text propagation, recently implemented in Pandoc and Quarto, with a fallback to the caption From f622ca7f40f18f9f5b1591425910d70736e708e7 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Tue, 24 Feb 2026 13:24:08 -0500 Subject: [PATCH 3/8] copy edit, remove aside --- .../2026-02-xx-pdf-accessibility-and-standards/index.qmd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index 3cee64da50..625dec1aeb 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -4,7 +4,9 @@ title: PDF Accessibility and Standards 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) -The UA-1 standard supported by Typst, and the UA-2 standard supported by LaTeX, [Typst is likely to have UA-2 support later in 2026]{.aside} both instruct the PDF renderer to provide screen readers: +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. + +Both standards instruct the PDF renderer to provide screen readers: * The semantic structure of the text (title, heading, paragraph, figure, etc) * The natural reading order From 1f785133e3e98fd89e37b4c77f356bff4d33536f Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Tue, 24 Feb 2026 15:07:25 -0500 Subject: [PATCH 4/8] quarto in first para Co-authored-by: Charlotte Wickham --- .../posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index 625dec1aeb..872e9a0887 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -2,7 +2,7 @@ title: PDF Accessibility and Standards --- -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) +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. 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. From 36e87812b1909e34b7f4bb6036df2d8521a065dc Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Tue, 24 Feb 2026 16:12:35 -0500 Subject: [PATCH 5/8] address first pass of comments --- .../index.qmd | 64 +++++++++++++------ 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index 872e9a0887..047650549e 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -2,7 +2,11 @@ title: PDF Accessibility and Standards --- -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. +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). + +Quarto 1.9 brings this support to you as a Quarto user. + +## What PDF Standards Do 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. @@ -13,7 +17,7 @@ Both standards instruct the PDF renderer to provide screen readers: * Spatial coordinates for highlighting and assistive navigation * Required metadata such as title and language -## Enabling a PDF Standard for Accessibility +## How to enable a PDF Standard in Quarto In Quarto 1.9, specify a PDF standard for your document or project with `pdf-standard` @@ -35,46 +39,64 @@ format: ``` ::: -`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. +`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. + +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. -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. +::: {.callout-note} +## Installing veraPDF -## Markdown is naturally good for Accessibility +veraPDF requires a separate install: + +```{.bash filename="Terminal"} +quarto install verapdf +``` -Quarto doesn't guarantee PDF accessibility compliance, but its Markdown-based workflow handles many requirements automatically: +veraPDF requires Java. + +::: + +When a document passes validation, you'll see output like: + +``` +[verapdf]: Validating my-document.pdf against PDF/UA-2... PASSED +``` + +## Creating accessible PDFs + +Quarto's Markdown-based workflow handles many accessibility requirements automatically: * Document metadata (title, author, date, language) flows into the PDF's built-in metadata fields. * 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. * Alt text for images is carried through to the PDF for screen readers. -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. +But you do need to make sure your document has: -## What to expect +* A **title** in the YAML front matter. +* **Alt text for every image**, specified with `fig-alt`. See [Figures](/docs/authoring/figures.qmd) for details. -We ran our test suite, with 188 LaTeX examples and 317 Typst examples, in order to see: +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. -* Where Quarto produces PDFs that do not pass UA-1 or UA-2. -* Where users will need to change their documents to meet accessibility standards +## Current limitations -### Both formats - -Your document needs a title. - -Your document needs alt text and/or a caption for every image. +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. ### LaTeX -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). +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). -There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documented here](https://github.com/quarto-dev/quarto-cli/pull/14097#issuecomment-3947653207). +(Margin content does work with Typst and passes UA-1 -- see [Typst Article Layout](/docs/output-formats/typst.qmd#article-layout).) -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. +There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documented here](https://github.com/quarto-dev/quarto-cli/pull/14097#issuecomment-3947653207). ### Typst 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. -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. +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. -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. +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. + +--- +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. From 52e8cb48d87391fe117e131541dd4c6835f7ee62 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Tue, 3 Mar 2026 12:06:41 -0500 Subject: [PATCH 6/8] address second round of review feedback - Add front matter: author, description, image, image-alt, draft - Use layout-ncol=2 instead of panel-tabset for YAML examples - Clarify veraPDF behavior when not installed - Reword Java install requirement - Fix wording: "due to missing titles or missing alt text" --- .../index.qmd | 29 ++++++++++++------ .../verapdf.jpg | Bin 0 -> 10420 bytes 2 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/verapdf.jpg diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index 047650549e..b52c829729 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -1,5 +1,12 @@ --- title: PDF Accessibility and Standards +description: | + Quarto 1.9 brings PDF accessibility and standards support, building on new tagging features in LaTeX and Typst. +author: Gordon Woodhull +date: "2026-02-xx" +image: verapdf.jpg +image-alt: "veraPDF logo" +draft: true --- 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). @@ -21,39 +28,41 @@ Both standards instruct the PDF renderer to provide screen readers: In Quarto 1.9, specify a PDF standard for your document or project with `pdf-standard` -::: panel-tabset -## PDF (LaTeX) +::::: {layout-ncol=2} +:::: {} +**PDF (LaTeX)** ```yaml format: pdf: pdf-standard: ua-2 ``` +:::: -## Typst +:::: {} +**Typst** ```yaml format: typst: pdf-standard: ua-1 ``` -::: +:::: +::::: `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. -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. +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. If veraPDF is not installed, you'll get a warning but still receive a PDF -- it just won't be validated. ::: {.callout-note} ## Installing veraPDF -veraPDF requires a separate install: +To install veraPDF, you'll first need Java, then run: ```{.bash filename="Terminal"} quarto install verapdf ``` -veraPDF requires Java. - ::: When a document passes validation, you'll see output like: @@ -73,7 +82,7 @@ Quarto's Markdown-based workflow handles many accessibility requirements automat But you do need to make sure your document has: * A **title** in the YAML front matter. -* **Alt text for every image**, specified with `fig-alt`. See [Figures](/docs/authoring/figures.qmd) for details. +* **Alt text for every image**, specified with `fig-alt`. See [Figures](/docs/authoring/figures.qmd#alt-text) for details. 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. @@ -93,7 +102,7 @@ There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documen 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. -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. +Typst also seems to do a very good job of generating UA-1 compliant output by default -- almost all errors were due to missing titles or missing alt text. 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. diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/verapdf.jpg b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/verapdf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c9bc1bc1afb56d4228f21506fd0b11fecba92984 GIT binary patch literal 10420 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 Date: Wed, 4 Mar 2026 10:37:41 -0500 Subject: [PATCH 7/8] what if it fails section; improve conclusion --- .../index.qmd | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index b52c829729..41bf091af3 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -86,6 +86,12 @@ But you do need to make sure your document has: 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. +## If your document fails validation + +LaTeX does not perform validation during PDF generation, so if veraPDF validation fails, that's a warning, and you still get a partially-accessible PDF as long as you use `pdf-standard: ua-2`. + +Typst fails and does not produce a PDF if its built-in validation fails during PDF generation. However, in Typst all accessibility features are on by default, so you can generate a partially-accessible PDF by rendering without `pdf-standard`. + ## Current limitations 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. @@ -106,6 +112,10 @@ Typst also seems to do a very good job of generating UA-1 compliant output by de 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. ---- +## Conclusion + +Although Typst currently targets an the earlier UA-1 standard, today it seems to offer better PDF accessibility than LaTeX. + +We expect PDF accessibility support to improve through the LaTeX ecosystem throughout 2026 as awareness of UA-2 and the new regulations spreads. -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. +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. From 98651953a3d3a00f1fa8529de20bc2cf94befa80 Mon Sep 17 00:00:00 2001 From: Gordon Woodhull Date: Wed, 4 Mar 2026 12:05:42 -0500 Subject: [PATCH 8/8] change links to use meta shortcode to point to prerelease --- .../2026-02-xx-pdf-accessibility-and-standards/index.qmd | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd index 41bf091af3..051798cbaf 100644 --- a/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd +++ b/docs/blog/posts/2026-02-xx-pdf-accessibility-and-standards/index.qmd @@ -7,6 +7,7 @@ date: "2026-02-xx" image: verapdf.jpg image-alt: "veraPDF logo" draft: true +quarto-root: https://prerelease.quarto.org --- 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). @@ -82,9 +83,9 @@ Quarto's Markdown-based workflow handles many accessibility requirements automat But you do need to make sure your document has: * A **title** in the YAML front matter. -* **Alt text for every image**, specified with `fig-alt`. See [Figures](/docs/authoring/figures.qmd#alt-text) for details. +* **Alt text for every image**, specified with `fig-alt`. See [Figures]({{< meta quarto-root >}}/docs/authoring/figures.html#alt-text) for details. -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. +See the [LaTeX]({{< meta quarto-root >}}/docs/output-formats/pdf-basics.html#accessibility-requirements) and [Typst]({{< meta quarto-root >}}/docs/output-formats/typst.html#accessibility-requirements) documentation for more details. ## If your document fails validation @@ -100,7 +101,7 @@ We ran our test suite -- 188 LaTeX examples and 317 Typst examples -- to find wh 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). -(Margin content does work with Typst and passes UA-1 -- see [Typst Article Layout](/docs/output-formats/typst.qmd#article-layout).) +(Margin content does work with Typst and passes UA-1 -- see [Typst Article Layout]({{< meta quarto-root >}}/docs/output-formats/typst.html#article-layout).) There are smaller upstream issues in Pandoc, LaTeX, and LaTeX packages, [documented here](https://github.com/quarto-dev/quarto-cli/pull/14097#issuecomment-3947653207). @@ -110,7 +111,7 @@ In our tests, Typst catches every UA-1 violation, and fails to generate the PDF. Typst also seems to do a very good job of generating UA-1 compliant output by default -- almost all errors were due to missing titles or missing alt text. -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. +However, we did discover that [Typst Books]({{< meta quarto-root >}}/docs/books/book-output.html#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. ## Conclusion