1.2.8 Media Alternative (Prerecorded)

WCAG 2.2 · 1.2.8 AAA Perceivable

What it requires

For all prerecorded synchronised media (video with audio) and all prerecorded video-only content, provide a full text alternative for the time-based media. This document must convey everything the media presents: all spoken dialogue and meaningful sound effects, plus a description of all important visual action — essentially a screenplay-style transcript that lets someone fully understand the media from text alone.

Because it is Level AAA, 1.2.8 goes beyond captions (1.2.2) and audio description (1.2.3 / 1.2.5): it serves people who need a complete equivalent in reading form, independent of playback.

  • Deaf-blind users who cannot use audio or video and rely on a braille display reading the text alternative.
  • Deaf and hard-of-hearing users who want the visual information in text rather than only synchronised captions.
  • Blind and low-vision users who get visual action as readable text instead of timed audio description.
  • People with cognitive or processing differences who prefer reading at their own pace, and anyone in a low-bandwidth or sound-off context.

How to detect it

Concrete checks for a full media text alternative
Check What to look for
Manual review A text document (or page region) accompanies the media and includes all dialogue, speaker identity, sound effects, and descriptions of on-screen visual action — not just a caption track.
Findability The alternative is clearly linked or adjacent to the player, with a programmatic association (e.g. a labelled link near the video).
Keyboard & screen reader The link/region reaches by keyboard and is announced; the text reads in a logical order via a screen reader.
Zoom / reflow The transcript text reflows and stays readable at 200%+ zoom.
Automated tools Cannot verify this. Tools like axe detect a missing track or empty alt, but judging completeness of a text alternative is manual only.

How to fix it

  1. Author a full transcript that captures every spoken line with speaker labels and all meaningful non-speech audio.
  2. Interleave clear descriptions of the important visual action so the narrative is complete from text alone.
  3. Publish it as accessible HTML near the player (or a clearly linked page), not a download-only file.
  4. Associate it with the media using a visible, descriptive link.
  5. Keep the alternative in sync whenever the media is re-edited.
<figure>
  <video controls src="onboarding.mp4">
    <track kind="captions" srclang="en" src="onboarding.vtt" label="English">
  </video>
  <figcaption>
    <a href="onboarding-transcript.html">
      Full text alternative: dialogue and visual action
    </a>
  </figcaption>
</figure>

Copy-paste tests

Automated coverage

There is no fully automated axe-core rule that can confirm this criterion. A media alternative is a meaning judgement, so it needs manual review using the console check and steps below.

Run this in the browser console

find-media-1-2-8.js
// READ-ONLY: list prerecorded media that may need a full text alternative
const media = [...document.querySelectorAll('video, audio')];
console.table(media.map(el => ({
  tag: el.tagName,
  src: el.currentSrc || el.getAttribute('src') || '(source child)',
  hasTrack: !!el.querySelector('track'),
  describedBy: el.getAttribute('aria-describedby') || '(none)'
})));
media.forEach(el => { el.style.outline = '3px solid magenta'; });
console.log('Suspect media elements:', media);

What to check manually: for each prerecorded clip, confirm a text alternative exists that conveys both the dialogue and all important visual action, and that it is reachable from the media (a visible link or adjacent text), not just present somewhere on the site.