Skip to content

Text in revealjs presentations cannot be resized #14952

Description

@cwickham

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions