HomeFix guides → Media captions & transcripts (WCAG 1.2.2, 1.2.3 A)

acc

How to fix: Media captions & transcripts (WCAG 1.2.2, 1.2.3 A)

Why this matters

Video without captions is inaccessible to deaf + hard-of-hearing users (and to anyone watching on mute, e.g. in public). Audio without transcript: same. WCAG 1.2.2 (captions for prerecorded video) and 1.2.3 (audio description or alt) are Level A.

Background

Video without captions excludes deaf + hard-of-hearing users + anyone watching on mute. Audio without transcript: same. WCAG 1.2.2 + 1.2.3 are Level A baselines.

References

WCAG 2.1 SC 1.2.2 Captions (Prerecorded) A · SC 1.2.3 Audio Description or Alt (A)

How to fix

Code snippet for each stack we cover. Pick the one matching your server / framework.

nginx
No server config — content addition.
apache
Same.
cloudflare
Same.
wordpress
Generate captions via the WP Caption Manager plugin OR upload .vtt files alongside videos. YouTube/Vimeo auto-captions work too — review for accuracy.
flask
<video><track kind="captions" src="captions.vtt" srclang="en" label="English"></video>
express
Same.
rails
Same.

Verify it's working

Play a video on your site with audio muted. Captions should appear automatically (or be available via the captions menu).

Want to know if your site has this issue?

Run a free 53-check audit — security, GDPR, NIS2, and technical SEO.

Audit my site →