1.2.3 Audio Description or Media Alternative

Level: A | Principle: Perceivable | Since: WCAG 2.0 | Automation: Manual


What This Means

Pre-recorded video with audio must provide either an audio description track or a full text alternative (such as a screenplay-style transcript) that describes all visual information not already conveyed by the existing audio track. This includes on-screen actions, scene changes, on-screen text, and visual cues that are essential to understanding the content.

Blind and low-vision users cannot see what is happening on screen. If a presenter says "as you can see here" while pointing at a chart, that information is lost without an audio description or text alternative.

Who This Affects

  1. Blind users — they rely entirely on audio and need descriptions of visual content
  2. Low-vision users — they may miss visual details that are not described in dialogue
  3. Deafblind users — a full text alternative can be rendered in braille

Common Pitfalls

1. Video relies on visuals with no description

<!-- Bad: cooking video where ingredients and steps are shown but not spoken -->
<video controls src="pasta-recipe.mp4">
  <track kind="captions" src="pasta-captions.vtt" srclang="en" label="English">
</video>
<!-- Chef says "add this much" while holding up a measuring cup — amount never spoken -->

2. Presentation video where slides are not described

<!-- Bad: speaker references slides that are never read aloud -->
<video controls src="quarterly-review.mp4"></video>
<!-- Speaker: "As this graph clearly shows..." but the data is never stated -->

3. Providing a summary instead of a full alternative

<!-- Bad: a brief overview is not a sufficient media alternative -->
<video controls src="safety-training.mp4"></video>
<p>This video covers workplace safety procedures.</p>

How to Fix

Option A: Audio description track

<!-- Good: separate audio description track describes visual content -->
<video controls src="quarterly-review.mp4">
  <track kind="captions" src="captions.vtt" srclang="en" label="English" default>
  <track kind="descriptions" src="descriptions.vtt" srclang="en" label="Audio descriptions">
</video>

Audio description example (VTT format)

WEBVTT

00:00:15.000 --> 00:00:19.000
A bar chart shows Q3 revenue at 4.2 million, up 18% from Q2.

00:01:02.000 --> 00:01:06.000
The presenter clicks to a slide titled "2026 Roadmap" showing three phases.

00:02:30.000 --> 00:02:34.000
A pie chart breaks down expenses: 45% engineering, 30% marketing, 25% operations.

Option B: Full text alternative

<!-- Good: complete text transcript that includes visual descriptions -->
<video controls src="quarterly-review.mp4"></video>
<details>
  <summary>Full text alternative (with visual descriptions)</summary>
  <p>[Slide: Q3 Revenue — bar chart showing $4.2M, up 18% from Q2]</p>
  <p>PRESENTER: As this graph clearly shows, we had a strong quarter
     with revenue reaching 4.2 million dollars...</p>
  <p>[Slide transitions to "2026 Roadmap" with three phases listed]</p>
  <p>PRESENTER: Looking ahead, our roadmap has three phases...</p>
</details>

How to Test

  1. Identify all prerecorded videos with audio on the page.
  2. Watch each video with your eyes closed (or screen off) and listen for visual information that is never described in the audio track (e.g., on-screen text, charts, actions, scene changes).
  3. Check if an audio description track or a full text alternative is provided near the video player.
  4. If an audio description exists, enable it and verify it covers all significant visual information missed by the dialogue.
  5. If a text alternative is provided, verify it includes both the spoken dialogue and descriptions of all visual content.
  6. Pass: Every video has an audio description track or a complete text alternative that fills in visual information not conveyed by dialogue.
  7. Fail: Any video relies on visuals that are never described in audio or text form.

axe-core Rules

No automated axe-core rules. This criterion requires manual testing.

Sources

  1. W3C WCAG 2.2 — Understanding 1.2.3