Quarto 1.10 is out! You can get the current release from the download page.

Quarto 1.10 is dominated by fixes, as much of our development effort is now going into Quarto 2, but there are some improvements we wanted to point out: more refined HTML accessibility checks, and access to Quarto’s localized strings for template authors.

You can read about these improvements and the most important fixes below. You can find all the changes in this version in the Release Notes.

Accessibility Checking Improvements#

Since Quarto 1.8, setting the axe option on HTML documents runs axe-core accessibility checks on your rendered document. Quarto 1.10 makes these checks easier to rely on.

Checking works offline. Quarto now bundles its own copy of axe-core instead of loading it from a CDN in the reader’s browser. Accessibility checking works without a network connection, and viewing a rendered document no longer triggers a request to an external CDN. The axe-core version is unchanged, so results are identical.

Check against a WCAG conformance level. The new standard option scopes checks to a WCAG conformance level, including rules axe-core keeps off by default for that level. The best-practice option controls whether axe’s best-practice rules, recommendations not required by any WCAG success criterion, are also checked:

document.qmd
format:
  html:
    axe:
      standard: wcag21aa
      best-practice: true

A clearer report. When using output: document, violations are now listed first by impact, then WCAG conformance level. The report overlay also received its own accessibility and styling fixes: it can be scrolled with the keyboard, uses theme and brand independent colors, and no longer inherits page styling like text centering.

Learn more at HTML Accessibility.

Localized Strings in Templates#

If you write custom Pandoc templates or template partials, you can now use Quarto’s localized strings through the new quarto.language template variable namespace. Quarto resolves each string for the document’s language and exposes it as a template variable:

template.typ
$quarto.language.toc-title-document$
$quarto.language.crossref-fig-title$

This lets templates honor the document’s lang option without hard-coding text. For example, the orange-book Typst book extension now uses these variables in its running headers, so a book with lang: fr gets Chapitre rather than Chapter.

Learn more at Localized Strings in Templates.

Other Important Fixes#

  • quarto preview reliability—a long-standing bug that showed stale HTML for non-index pages is fixed, changes to a document’s format: are detected on the first render after the edit, a _brand.yml added or removed during preview is picked up, and transient .quarto_ipynb files no longer accumulate on disk.

  • Shortcodes—shortcodes are now resolved inside inline and display math expressions.

  • PDF font fallbacksmainfontfallback, sansfontfallback, and monofontfallback no longer crash LuaLaTeX on TeX Live 2026, and a missing fallback font is now installed automatically.

  • Typst fonts—fonts not installed locally are filtered from CSS font-family fallback lists before they reach Typst, suppressing unknown font family warnings, alongside a batch of fixes to Quarto’s CSS-to-Typst translation.

  • Chrome Headless Shell—the quarto install chromium command, deprecated in 1.9, now transparently redirects to chrome-headless-shell, quarto check install warns about legacy Chromium installs, and arm64 Linux is now supported.

  • Output for LLMs—fixes for websites with llms-txt enabled: headings and shortcodes inside conditional content, and clean-URL rewriting of index.html.md links.

Dependency updates:

  • pandoc updated to 3.10
  • typst updated to 0.15.1
  • deno updated to 2.7.14
  • dart-sass updated to 1.101.0
  • esbuild updated to 0.28.1

Acknowledgements#

We’d like to say a huge thank you to everyone who contributed to this release by opening issues and pull requests:

AlexLietard, ArthurRudolph, Artmann, C-Monaghan, ChrisJefferson, CoryMcCartan, DCEW, DrFloLinke, Guest-1013, MBe-iUS, MurzNN, ThierryO, ThomasFaria, TinasheMTapera, Voorhoeve, alderete, andrewheiss, barendgehrels, basm92, blauzo, chainsawriot, crisbour, cs-res-pub-ser-st, dustinstoltz, eculler, eneveu, github-actions[bot], gregswinehart, hwine, ianpittwood, ihrke, jdonaldson, jiangyun-fun, jidanni, jkrumbiegel, jnkatz, jph00, jtkulas, juleswg23, juliohm, kazuyanagimoto, kelli-rstudio, lsbjordao, luismmontilla, maelle, maucejo, memeplex, micedre, multimeric, nathant181, neilernst, nessan, nickvigilante, nrennie, pbosetti, reckoner, rgouveiamendes, robjhyndman, sbwiecko, seandavi, sebastiansauer, skyfroger, songwupei, stefkuypers, stragu, tiagojct, victorrssx, widlarizer, wlatendresse, xuefeng-xu, yasyf, zinc75.

The hammer and wrench emoji in the listing and social card image for this post comes from OpenMoji– the open-source emoji and icon project. License: CC BY-SA 4.0