quarto-dev / quarto-dev/quarto-cli
PDF validation should fail with no alt text
Open
@gordonwoodhull is already working on this.
Since Apr 8, 2026.
accessibility
bug
triaged-to
upstream
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 458
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 41
Description
I have:
- searched the issue tracker for similar issues
- installed the latest version of Quarto CLI
- formatted my issue following the Bug Reports guide
Bug description
Came across this example while invesitgating #14315.
The intermediate .tex has no alt attribute on the image:
\pandocbounded{\includegraphics[keepaspectratio]{alt-text_files/mediabag/quarto.png}}
There is a warning:
WARN: PDF accessibility: Missing alt text for image(s): alt-text_files/mediabag/quarto.png. Add alt text using fig-alt in YAML or {fig-alt="description"} on the image for PDF/UA compliance.
But, ultimately the validation passes:
[verapdf]: Validating alt-text.pdf against PDF/UA2...PASSED
I would expect this example to FAIL.
Is there some kind of fallback alt text being used? If so, I think we need to point it out more clearly in the warning, that in fact the passing validation should not be taken at face value.
Steps to reproduce
alt-text.qmd:
---
title: "Alt text"
format:
pdf:
pdf-standard: ua-2
keep-tex: true
---
{fig-alt="Quarto logo"}
quarto render alt-text.qmd
Actual behavior
pandoc
to: latex
output-file: alt-text.tex
standalone: true
variables:
pdfstandard:
standards:
- ua-2
tagging: true
graphics: true
tables: true
pdf-engine: lualatex
default-image-extension: pdf
metadata
documentclass: scrartcl
classoption:
- DIV=11
- numbers=noendperiod
papersize: letter
header-includes:
- \KOMAoption{captions}{tableheading}
pdf-standard-applied:
- ua-2
block-headings: true
engines:
- path: /Applications/quarto/share/extension-subtrees/julia-engine/_extensions/julia-engine/julia-engine.js
title: Alt text
Rendering PDF
running lualatex - 1
This is LuaHBTeX, Version 1.22.0 (TeX Live 2025)
restricted system commands enabled.
WARN: PDF accessibility: Missing alt text for image(s): alt-text_files/mediabag/quarto.png. Add alt text using fig-alt in YAML or {fig-alt="description"} on the image for PDF/UA compliance.
WARN: PDF accessibility: Document language not set. Add 'lang: en' (or appropriate language) to document metadata for PDF/UA compliance.
running lualatex - 2
This is LuaHBTeX, Version 1.22.0 (TeX Live 2025)
restricted system commands enabled.
[verapdf]: Validating alt-text.pdf against PDF/UA2...PASSED
Output created: alt-text.pdf
Expected behavior
A FAIL for the validation.
Your environment
No response
Quarto check output
Quarto 1.9.36
[✓] Checking environment information...
Quarto cache location: /Users/charlottewickham/Library/Caches/quarto
[✓] Checking versions of quarto binary dependencies...
Pandoc version 3.8.3: OK
Dart Sass version 1.87.0: OK
Deno version 2.4.5: OK
Typst version 0.14.2: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
Version: 1.9.36
Path: /Applications/quarto/bin
[✓] Checking tools....................OK
TinyTeX: v2025.12
VeraPDF: 1.28.2
Chromium: (not installed)
Chrome Headless Shell: (not installed)
[✓] Checking LaTeX....................OK
Using: TinyTex
Path: /Users/charlottewickham/Library/TinyTeX/bin/universal-darwin
Version: 2025
[✓] Checking Chrome Headless....................OK
Using: Chrome found on system
Path: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Source: MacOS known location
[✓] Checking basic markdown render....OK
[✓] Checking R installation...........OK
Version: 4.4.3
Path: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources
LibPaths:
- /Users/charlottewickham/Library/R/arm64/4.4/library
- /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library
knitr: 1.45
rmarkdown: 2.26
[✓] Checking Knitr engine render......OK
[✓] Checking Python 3 installation....OK
Version: 3.13.2
Path: /Users/charlottewickham/.local/share/uv/python/cpython-3.13.2-macos-aarch64-none/bin/python
Jupyter: (None)
Jupyter is not available in this Python installation.
Install with python3 -m pip install jupyter
[✓] Checking Julia installation...
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.