WCAG 1.2.1 · Level A · EN 301 549 9.1.2.1

Audio-only and Video-only (Prerecorded)

Requires prerecorded audio-only content (such as a podcast) to have a text transcript, and prerecorded video-only content (such as a silent demo) to have a text description or an audio track that conveys the same information.

In brief

A person who cannot hear cannot follow a podcast, and a person who cannot see cannot follow a screen recording that has no sound. If the only version of the content is the audio or the video itself, these users are shut out.

This criterion applies to media that is prerecorded and contains only audio or only video. Prerecorded audio-only content needs an alternative that presents the same information, usually a transcript. Prerecorded video-only content needs either a text description or an audio track that presents the same information. Media that combines audio and video (a recorded talk with slides, for example) is covered by 1.2.2 to 1.2.5, not by this criterion.

What does it cover?

  • Prerecorded audio-only content: Podcasts, interviews, voice messages, recorded announcements and audio versions of lectures. A transcript, or another text alternative, must present the same information.
  • Prerecorded video-only content: Silent screen recordings, product demos without narration, animations that tell a story and silent clips of a process. The alternative is a text description, or an audio track that describes what happens.
  • What a good alternative contains: For audio, the spoken words, the speakers' names and meaningful sounds such as "[applause]" or "[phone rings]". For video, what is shown, what happens and any text that appears on screen.
  • Exception: If the audio or video is itself a media alternative for text on the same page and is clearly labelled as such (an "audio version of this article", for example), no further alternative is needed.
  • Live content: Live audio and live video are covered by other criteria. Live captions are covered by 1.2.4.
  • Out of scope: Media with both audio and video is covered by 1.2.2 (Captions), 1.2.3 (Audio Description or Media Alternative) and 1.2.5 (Audio Description). A short descriptive name for the media element is covered by 1.1.1 (Non-text Content).

Who does it affect?

Deaf and hard of hearing users read the transcript instead of listening. Blind and low-vision users get the content of a silent video from its description or its audio track. Deafblind users need text they can read on a braille display. A transcript also helps people who cannot play sound (in a quiet office, on a train, with a slow connection), people who read faster than they listen, people who are not native speakers of the language, and search engines, which cannot index the content of audio.

In the EAA and EN 301 549

The European Accessibility Act (Directive (EU) 2019/882) applies to in-scope products and services placed on the market after 28 June 2025. Recital 47 names four principles for websites and mobile applications: perceivable, operable, understandable and robust. An alternative for audio and video content is part of "perceivable".

The technical counterpart is the standard EN 301 549, which incorporates WCAG 1.2.1 by reference and turns it into separate clauses for each kind of ICT.

Where WCAG 1.2.1 appears in EN 301 549
ClauseType of ICTWhat it requires
9.1.2.1Web pagesWeb content must satisfy WCAG success criterion 1.2.1.
10.1.2.1Non-web documents (PDF, Office files)The same criterion applies to audio and video embedded in documents.
11.1.2.1Non-web software (native mobile apps)Software that supports screen readers must satisfy the criterion.

Clause numbers follow the "9. + WCAG number" pattern of EN 301 549. In V3.2.1 the software clause is divided into further subclauses for open and closed functionality, so check the exact numbers in the standard when you cite them.

Standard version: EN 301 549 V4.1.1 (September 2026) is based on WCAG 2.2 and is the first version prepared specifically for the EAA. It has not yet been cited in the Official Journal of the European Union, so for now it is best treated as a voluntary technical route to the EAA's requirements. Once cited, it will give a presumption of conformity. The text of criterion 1.2.1 is the same in WCAG 2.1 and 2.2.

A note on EAA scope: This criterion is where the Directive's exclusions matter most. Article 2(4) excludes pre-recorded time-based media published before 28 June 2025, and third-party content that the business neither funds, develops nor controls. Audio and video published after that date, and older media you republish or substantially change, are not covered by the exclusion. Even where an exclusion may apply, an alternative is good practice and often the cheapest way to reach more users.

Directive (EU) 2019/882, EUR-Lex, opens in a new tab

Code examples for the web

1. Audio-only content with a transcript

Give the audio player an accessible name and put a visible link to the transcript next to it.

Incorrect
<audio controls src="episode-12.mp3"></audio>
Correct
<h3>Episode 12: Keyboard navigation</h3>
<audio controls src="episode-12.mp3"
       aria-label="Episode 12: Keyboard navigation"></audio>
<p><a href="/transcripts/episode-12">Read the transcript
   of Episode 12</a></p>

2. A transcript on the same page

A transcript is more than the words. Name the speakers and include sounds that carry meaning.

Incorrect
<details>
  <summary>Transcript</summary>
  <p>welcome everyone today we talk about the keyboard
  and yes of course thanks</p>
</details>
Correct
<details>
  <summary>Transcript: Episode 12</summary>
  <p><strong>Host:</strong> Welcome, everyone. Today we
  talk about keyboard navigation.</p>
  <p><strong>Guest:</strong> Thanks for having me.
  [laughs] Let's start with the Tab key.</p>
</details>

3. Video-only content with a text description

A silent screen recording needs a description of what happens, in the order it happens, including any text shown on screen.

Incorrect
<video src="menu-demo.mp4" muted autoplay loop></video>
Correct
<video src="menu-demo.mp4" controls muted
       aria-describedby="menu-demo-text"></video>
<div id="menu-demo-text">
  <p><strong>Description of the video:</strong> The Tab
  key moves a blue focus outline across the menu items,
  Home, Products and Contact. Pressing Enter on Products
  opens a submenu with three links. Pressing Escape closes
  the submenu and returns focus to Products.</p>
</div>

4. Audio that is a labelled alternative for text

If the audio is only another way to get text that is already on the page, label it clearly. Then it is itself the alternative and needs no transcript of its own.

Incorrect
<audio controls src="article.mp3"></audio>
Correct
<p>Audio version of this article. It is a recording of
the text on this page.</p>
<audio controls src="article.mp3"
       aria-label="Audio version of this article"></audio>

5. Do not rely on an unreviewed automatic transcript

Speech-recognition output is a good starting point, but it must be checked. Wrong words, missing speaker names and missing punctuation can change the meaning.

Incorrect
<!-- Raw machine output published as is -->
<p>the tab key move focus too the next element inn
the menu hit enter...</p>
Correct
<!-- Reviewed and corrected by a person -->
<p><strong>Host:</strong> The Tab key moves focus to the
next element in the menu. Press Enter to activate it.</p>

Code examples for mobile

The same rule applies in native mobile apps. Place the alternative next to the player, in the same screen, and make it reachable by screen reader and keyboard users.

iOS (SwiftUI)

import SwiftUI

struct EpisodeView: View {
    let transcript: String

    var body: some View {
        VStack(alignment: .leading, spacing: 12) {
            Text("Episode 12: Keyboard navigation")
                .font(.headline)

            AudioPlayerView() // Your audio player

            // Text alternative next to the player
            DisclosureGroup("Transcript") {
                Text(transcript)
            }
        }
    }
}

Android (Jetpack Compose)

import androidx.compose.foundation.layout.Column
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue

@Composable
fun EpisodeScreen(transcript: String) {
    var expanded by remember { mutableStateOf(false) }

    Column {
        Text(
            text = "Episode 12: Keyboard navigation",
            style = MaterialTheme.typography.titleMedium
        )

        AudioPlayer() // Your audio player

        // Text alternative next to the player
        TextButton(onClick = { expanded = !expanded }) {
            Text(if (expanded) "Hide transcript" else "Show transcript")
        }
        if (expanded) {
            Text(transcript)
        }
    }
}

How to test

  • List the media: Find every prerecorded audio-only and video-only item on the page or screen, including embedded players, voice messages and silent animations.
  • Check that an alternative exists: Is there a transcript, a text description or an audio track? Is it easy to find next to the media, and does it work with the keyboard and a screen reader?
  • Compare it with the media: Play the media and read the alternative. Does the text contain everything the media conveys: all speech, speaker names, meaningful sounds, and for video what is shown and what happens?
  • Test the video-only case without sight: Mute the screen or turn it off and use only the description. Can you follow what the video shows?
  • Test the audio-only case without sound: Turn the sound off and read only the transcript. Is the content complete and in the right order?
  • Check labelled alternatives: If the media is an alternative for text, is it clearly labelled as one, and does it really match the text?
  • Limits of automated tools: Automated tools can detect that a video or audio element exists, but cannot judge whether a transcript or description is complete. Only a person can decide that.

Common mistakes

  • Publishing audio or video with no alternative: A podcast or silent demo with nothing but the player.
  • Calling captions a transcript for audio-only content: Audio-only content has no video to caption. It needs a transcript.
  • Leaving out speaker names and meaningful sounds: "[applause]", "[phone rings]" or "[silence]" can matter to understanding.
  • Describing only the first seconds of a video: The description must cover the whole video, in the order it happens.
  • Not describing text shown on screen: Menu labels, error messages and button names in a screen recording are part of the content.
  • Publishing an unreviewed machine transcript: Errors and missing punctuation can change the meaning.
  • Hiding the transcript where nobody finds it: Put the link or the text next to the player, not on a separate page that is not linked.
  • Not updating the alternative when the media changes: When the recording is replaced, the transcript or description must be replaced with it.

Sources

Standard version: EN 301 549 V4.1.1 (2026-09), WCAG 2.2. This page is for informational purposes only and is not legal advice. For binding requirements, refer to the official texts of the European Accessibility Act (Directive (EU) 2019/882) and EN 301 549.

Corpowid is recognized by Gartner

Corpowid has been recognized by Gartner, a leading global research and advisory firm, for our innovation and performance in digital accessibility. These badges reflect our commitment to creating inclusive, AI-powered web experiences.

Have questions about Corpowid?

Let’s connect.

We will get back to you as soon as possible.