A reader cannot make the text in a revealjs presentation larger. This fails WCAG 1.4.4 Resize Text. I am filing this to record the problem. I do not have a fix to propose.
Browser zoom has no effect
Reveal.js scales each slide to fit the viewport. When a reader zooms in with the browser controls, the viewport gets smaller in CSS pixels, and reveal.js scales the slide down to fit it. The text stays the same size on screen. Scroll view has the same result.
To see this, render any deck, open it in a desktop browser, and zoom to 200%:
---
title: "Zoom"
format: revealjs
---
## Slide
Some text.
The template also disables pinch-zoom
The revealjs template hard-codes maximum-scale=1.0, user-scalable=no in the viewport meta tag:
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui"> |
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, minimal-ui">
axe reports this tag on every deck (critical, WCAG 2.0 AA 1.4.4, rule meta-viewport):
Zooming and scaling must not be disabled
user-scalable=no on <meta> tag disables zooming on mobile devices
Removing user-scalable=no clears the axe finding. It does not by itself make text larger, because reveal.js still scales the slide to fit. I did not test pinch-zoom on a device.
Workaround for authors
The quarto-revealjs-a11y extension adds font-size controls for readers. It also rewrites the viewport tag to width=device-width, initial-scale=1.0 when the page loads.
Quarto 1.11.4, macOS 26.6.2 (build 25G83).
Investigation was AI-assisted, grounded in a local clone of quarto-cli, per CONTRIBUTING.md's note on using AI tools.
A reader cannot make the text in a revealjs presentation larger. This fails WCAG 1.4.4 Resize Text. I am filing this to record the problem. I do not have a fix to propose.
Browser zoom has no effect
Reveal.js scales each slide to fit the viewport. When a reader zooms in with the browser controls, the viewport gets smaller in CSS pixels, and reveal.js scales the slide down to fit it. The text stays the same size on screen. Scroll view has the same result.
To see this, render any deck, open it in a desktop browser, and zoom to 200%:
The template also disables pinch-zoom
The revealjs template hard-codes
maximum-scale=1.0, user-scalable=noin the viewport meta tag:quarto-cli/src/resources/formats/revealjs/pandoc/revealjs.template
Line 18 in 6e7f7ca
axe reports this tag on every deck (critical, WCAG 2.0 AA 1.4.4, rule
meta-viewport):Removing
user-scalable=noclears the axe finding. It does not by itself make text larger, because reveal.js still scales the slide to fit. I did not test pinch-zoom on a device.Workaround for authors
The quarto-revealjs-a11y extension adds font-size controls for readers. It also rewrites the viewport tag to
width=device-width, initial-scale=1.0when the page loads.Quarto 1.11.4, macOS 26.6.2 (build 25G83).