Default revealjs link colour fails text contrast at normal sizes
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Newbie friendliness
- 88/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- scss
- Domain
- accessibility, frontend
Research direction
Inspect src/resources/formats/revealjs/quarto.scss around L40-L41, where the default link colour is defined. Render the provided revealjs example and check the footer, smaller text, and captions against the default background; done means normal-sized links meet the 4.5:1 WCAG contrast requirement.
Written by the indexing model from the issue text.
Description
I have:
- searched the issue tracker for similar issues
- installed the latest version of Quarto CLI
- formatted my issue following the Markdown guide
Bug description
The default revealjs theme sets $link-color to #2a76dd. On the default #fff background, the contrast is 4.44:1. WCAG 2.2 SC 1.4.3 Contrast (Minimum) requires 4.5:1 for text that is not large.
Slide body text is 40px, so body links pass (large text needs 3:1). Links in smaller text fail, for example in the footer (18px, and 14px on a 320px viewport), in .smaller slides, and in captions.
The colour comes from quarto.scss L40-L41. axe reports this on the quarto.org revealjs demo footer.
Steps to reproduce
---
format: revealjs
footer: "[quarto.org](https://quarto.org)"
---
## Slide
See [the Quarto website](https://quarto.org).
- Render the file.
- Measure the footer link colour against the slide background.
Actual behavior
The footer link is #2a76dd on #fff, at 4.44:1.
Expected behavior
The default link colour gives at least 4.5:1 on the default background.
AI helped investigate this issue. The investigation used a local clone of quarto-cli (see "Using AI tools to investigate" in CONTRIBUTING.md).
Your environment
- IDE: Positron 1.134.0
- OS: macOS 26.6.2 (build 25G83)
Quarto check output
Quarto 1.11.4
[✓] Checking environment information...
Quarto cache location: /Users/charlottewickham/Library/Caches/quarto
[✓] Checking versions of quarto binary dependencies...
Pandoc version 3.10.0: OK
Dart Sass version 1.101.0: OK
Deno version 2.7.14: OK
Typst version 0.15.1: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
Version: 1.11.4
Path: /Applications/quarto/bin
[✓] Checking tools....................OK
TinyTeX: v2026.04
Chrome Headless Shell: 150.0.7871.115
VeraPDF: 1.28.2
[✓] Checking LaTeX....................OK
Using: TinyTex
Path: /Users/charlottewickham/Library/TinyTeX/bin/universal-darwin
Version: 2026
[✓] Checking Chrome Headless....................OK
Using: Chrome Headless Shell installed by Quarto
Path: /Users/charlottewickham/Library/Application Support/quarto/chrome-headless-shell/chrome-headless-shell-mac-arm64/chrome-headless-shell
Version: 150.0.7871.115
[✓] Checking basic markdown render....OK
[✓] Checking R installation...........OK
Version: 4.6.0
Path: /Library/Frameworks/R.framework/Versions/4.6/Resources
LibPaths:
- /Users/charlottewickham/Library/R/arm64/4.6/library
- /Library/Frameworks/R.framework/Versions/4.6/Resources/library
knitr: 1.51
rmarkdown: 2.31
[✓] Checking Knitr engine render......OK
[✓] Checking Python 3 installation....OK
Version: 3.12.2
Path: /Users/charlottewickham/.pyenv/versions/3.12.2/bin/python3
Jupyter: 5.9.1
Kernels: python3
[✓] Checking Jupyter engine render....OK
[✓] Checking Julia installation...
- Dominant language
- JavaScript
- Stars
- 6k
- Forks
- 461
- Avg merge
- 13h 15m
- Merged PRs (30d)
- 54
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing 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.
More from quarto-dev/quarto-cli
-
accessibility bug embed websites
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
quarto-dev/quarto-cli#14972 ·
Maintainers usually reply within 1 day
-
accessibility documentation revealjs
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
quarto-dev/quarto-cli#14971 ·
Maintainers usually reply within 1 day
-
accessibility revealjs
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
quarto-dev/quarto-cli#14970 ·
Maintainers usually reply within 1 day
-
accessibility embed
Difficulty 1/5 Under an hour Newbie friendliness 90/100
quarto-dev/quarto-cli#14968 ·
Maintainers usually reply within 1 day
-
accessibility revealjs themes
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
quarto-dev/quarto-cli#14963 ·
Maintainers usually reply within 1 day
All issues in quarto-dev/quarto-cli
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CopilotKit/aimock#491 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
keyxmakerx/Chronicle#967 ·
Maintainers usually reply within 1 day
-
good first issue hacktoberfest
Difficulty 1/5 Under an hour Newbie friendliness 92/100
RogueAlg0/taken#386 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
DietrichGebert/ponytail#978 ·
Maintainers usually reply within 2 days
-
bug component: bulk editor support
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Yoast/wordpress-seo#23669 ·
Maintainers usually reply within 3 days