quarto-dev / quarto-dev/quarto-cli

PDF validation should fail with no alt text

Open
#14,338 3 comments 1 reaction 1 assignee View on GitHub

@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
---

![](https://quarto.org/quarto.png){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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.