Requires a way to pause, stop or control the volume of any audio that plays automatically for more than three seconds, independent of the system volume.
A page that starts playing music or speech on its own is a problem for everyone who uses a screen reader. The sound competes with the voice of the screen reader, and the user cannot hear the page they are trying to use.
This criterion requires that if any audio on a page plays automatically for more than three seconds, there is a way to pause or stop it, or a way to control its volume independently of the overall system volume. Because such audio can make the whole page unusable, the requirement applies to every item on the page, not only to the part that plays the sound.
Screen reader users, who cannot hear their screen reader over the sound. People with attention, hearing or cognitive differences, who find sound that they did not choose distracting. Anyone who opens a page in a quiet place, in a meeting or at night.
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. Control over automatic sound is part of "perceivable" and "operable".
The technical counterpart is the standard EN 301 549, which incorporates WCAG 1.4.2 by reference and turns it into separate clauses for each kind of ICT.
| Clause | Type of ICT | What it requires |
|---|---|---|
| 9.1.4.2 | Web pages | Web content must satisfy WCAG success criterion 1.4.2. |
| 11.1.4.2 | Non-web software (native mobile apps) | Software that plays audio automatically must offer a way to pause, stop or control its volume. |
Whether and how the criterion applies to non-web documents is stated in clause 10 of the standard. 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. 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.4.2 is the same in WCAG 2.1 and 2.2.
A note on EAA scope: Article 2(4) of the Directive excludes certain content from the requirements, for example office file formats published before 28 June 2025 and archives that are not updated after that date. Content you publish or change after that date is not covered by these exclusions.
Directive (EU) 2019/882, EUR-Lex, opens in a new tab
Do not start a video with sound on page load. If the video must start, start it muted and let the user turn the sound on.
<video src="intro.mp4" autoplay loop></video><video src="intro.mp4" autoplay muted loop controls
aria-label="Product intro"></video>Let the user start the audio. If it must play on its own, offer a pause button at the top of the page.
<audio src="ambient.mp3" autoplay loop></audio><audio id="ambient" src="ambient.mp3" loop></audio>
<button type="button" id="play" aria-pressed="false">
Play background music
</button>
<script>
const audio = document.getElementById("ambient");
const btn = document.getElementById("play");
btn.addEventListener("click", () => {
const on = audio.paused;
on ? audio.play() : audio.pause();
btn.setAttribute("aria-pressed", String(on));
});
</script>If sound starts automatically, put the pause control first in the page, before other content, so a keyboard or screen reader user can reach it at once.
<body>
<nav>…</nav>
<main>…</main>
<button id="pause">Pause audio</button>
</body><body>
<button id="pause">Pause audio</button>
<nav>…</nav>
<main>…</main>
</body>Embedded players can autoplay too. Leave autoplay off, or mute and show the controls.
<iframe src="https://www.youtube.com/embed/VIDEO_ID?autoplay=1"
title="Product tour"></iframe><iframe src="https://www.youtube.com/embed/VIDEO_ID"
title="Product tour"></iframe>A script that plays a sound on load, for example a welcome chime, must stop within three seconds or have a control.
window.addEventListener("load", () => {
new Audio("welcome-long.mp3").play(); // 20 seconds
});// Play only after a user action
button.addEventListener("click", () => {
new Audio("click.mp3").play();
});The same rule applies in native mobile apps. Do not start audio on its own. If a video starts automatically, mute it and give the user a visible pause control.
import SwiftUI
import AVKit
struct HeroVideo: View {
@State private var player = AVPlayer(
url: URL(string: "https://example.com/hero.mp4")!
)
@State private var playing = true
var body: some View {
VStack(spacing: 8) {
VideoPlayer(player: player)
.frame(height: 200)
.onAppear {
player.isMuted = true // No sound on its own
player.play()
}
Button(playing ? "Pause video" : "Play video") {
playing.toggle()
playing ? player.play() : player.pause()
}
}
}
}import androidx.compose.foundation.layout.Column
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.*
import androidx.compose.ui.viewinterop.AndroidView
import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.ui.PlayerView
@Composable
fun HeroVideo(player: ExoPlayer) {
var playing by remember { mutableStateOf(true) }
LaunchedEffect(Unit) {
player.volume = 0f // No sound on its own
player.playWhenReady = true
}
Column {
AndroidView(factory = { context ->
PlayerView(context).apply { this.player = player }
})
TextButton(onClick = {
playing = !playing
player.playWhenReady = playing
}) {
Text(if (playing) "Pause video" else "Play video")
}
}
}autoplay on audio, video and embedded players, and for scripts that call play() on load.autoplay attribute, but they cannot tell whether sound plays or whether the control is easy to find.autoplay=1 parameter counts as well.