WCAG-succescriteria · Level A

WCAG 1.4.2: Audiobediening

WCAG 1.4.2 vereist dat alle audio die automatisch langer dan drie seconden wordt afgespeeld, gebruikers een mechanisme moet bieden om deze te pauzeren, te stoppen of het volume ervan onafhankelijk van het systeemvolume te regelen. Dit voorkomt dat audio de uitvoer van schermlezers verstoort en beschermt gebruikers tegen onverwachte, desoriënterende geluiden.

Wat Deze Regel Betekent

WCAG 1.4.2 — Audiobediening is een succescriterium op Niveau A onder het principe Waarneembaar. Het stelt: Als er op een webpagina audio automatisch wordt afgespeeld gedurende meer dan 3 seconden, dan is óf een mechanisme beschikbaar om de audio te pauzeren of te stoppen, óf een mechanisme beschikbaar om het audiovolume te regelen, onafhankelijk van het algemene systeemvolumeniveau.

Het criterium wordt geactiveerd door alle audiocontent die begint te spelen zonder expliciete actie van de gebruiker en langer dan drie seconden doorgaat. Dit omvat achtergrondmuziek die in een pagina is ingesloten, automatisch afspelende video met hoorbare soundtrack, audio-advertenties, herhalende geluidseffecten en gesproken introducties die bij het laden van de pagina starten. De sleutelterm is automatisch — audio die een gebruiker bewust start (door op een afspeelknop te klikken, een link te activeren) valt niet onder deze regel.

Om aan dit criterium te voldoen, moet ten minste één van de volgende punten waar zijn:

  • De gebruiker krijgt een pauze- of stopknop waarmee de audio volledig wordt gestopt of onderbroken totdat de gebruiker deze hervat.
  • De gebruiker krijgt een volumeregeling die onafhankelijk is van het hoofdvolume van het besturingssysteem, zodat hij of zij de audio kan verminderen of dempen zonder andere applicaties of systeemgeluiden te beïnvloeden.

Een mechanisme dat alleen bovenaan de pagina verschijnt en via het toetsenbord toegankelijk is, is acceptabel, maar het moet bereikbaar en bedienbaar zijn voordat de audio storend wordt. Best practice geeft er sterk de voorkeur aan om de bediening als allereerste interactieve element in de focusvolgorde te plaatsen, zodat toetsenbord- en schermlezersgebruikers deze direct tegenkomen.

De enige officiële uitzondering die in WCAG is gedefinieerd, is audio die drie seconden of minder duurt. Korte meldingsgeluiden of korte beltonen die vanzelf stoppen, zijn uitgezonderd. Er is geen uitzondering voor audio met laag volume, herhalende audio of audio die is ingesloten in widgets van derden — al deze vallen onder de regel als ze automatisch worden afgespeeld en langer dan drie seconden duren.

Waarom Het Belangrijk Is

Ongecontroleerde automatisch afspelende audio creëert aanzienlijke barrières voor meerdere groepen mensen met een beperking, en veroorzaakt zelfs frictie voor niet-gehandicapte gebruikers in stille of gedeelde omgevingen.

Schermlezersgebruikers zijn de meest ernstig getroffen groep. Schermlezers zoals JAWS, NVDA en VoiceOver produceren synthetische spraakuitvoer om paginacontent over te brengen. Wanneer een webpagina tegelijkertijd achtergrondaudio of een videosoundtrack afspeelt, overlappen de twee audiostreams elkaar. De stem van de schermlezer wordt moeilijk of onmogelijk te verstaan, waardoor de gebruiker in feite wordt buitengesloten van de pagina totdat hij of zij een stopknop kan vinden en activeren — die ze niet gemakkelijk kunnen vinden omdat de schermlezer de pagina niet goed kan voorlezen door het lawaai. Volgens de Wereldgezondheidsorganisatie hebben wereldwijd ongeveer 2,2 miljard mensen een vorm van visuele beperking, en een aanzienlijk deel vertrouwt op schermlezers als hun primaire hulpmiddel om te browsen.

Gebruikers met cognitieve en aandachtsbeperkingen, waaronder mensen met ADHD, aandoeningen binnen het autismespectrum of angststoornissen, kunnen onverwachte audio als extreem desoriënterend of belastend ervaren. Het plotseling starten van muziek of spraak kan de concentratie doorbreken, sensorische overbelasting veroorzaken of verwarring oproepen over de vraag of het geluid deel uitmaakt van de paginacontent of een externe melding is.

Gebruikers met auditieve verwerkingsstoornissen of hoortoestellen kunnen feedbacklussen of versterkte vervorming ervaren wanneer audio op onverwachte volumes via hoortoestellen wordt afgespeeld. Onafhankelijke volumeregeling stelt hen in staat hun luisteromgeving te beheren zonder systeemwijde instellingen aan te passen die andere applicaties beïnvloeden.

Motorisch beperkte gebruikers die met het toetsenbord of met schakelbediening navigeren, hebben de stop-/pauzeknop nodig die via het toetsenbord bereikbaar is en logisch vroeg in de paginastructuur is gepositioneerd. Als de bediening alleen met een muis klikbaar is of pas laat in de tabvolgorde voorkomt, biedt deze geen praktische verlichting tijdens de tijd die nodig is om ernaartoe te navigeren.

Denk aan een concreet scenario: een blinde werkzoekende bezoekt de vacaturepagina van een bedrijf waar automatisch een promotievideo met vrolijke muziek wordt afgespeeld. De gebruiker activeert zijn schermlezer, die direct begint met het voorlezen van de paginatitel en navigatie. De muziek overstemt de synthetische spraak volledig. De stopknop is een gestylede <div> zonder toetsenbordfocus, visueel gepositioneerd in de videospeler in het midden van de pagina. De gebruiker kan deze niet met het toetsenbord bereiken, kan de schermlezer niet goed genoeg horen om efficiënt te navigeren en verlaat uiteindelijk de pagina. Het bedrijf verliest een gekwalificeerde kandidaat en loopt mogelijk juridische risico’s.

Vanuit gebruiksvriendelijkheid en SEO-perspectief hebben pagina’s met automatisch afspelende audio vaak hogere bouncepercentages, omdat veel gebruikers — met of zonder beperking — tabbladen direct sluiten zodra onverwacht geluid begint. Zoekmachines interpreteren hoge bouncepercentages als een negatief kwaliteitsignaal, wat de vindbaarheid indirect schaadt.

Gerelateerde Axe-core Regels

WCAG 1.4.2 vereist handmatige tests. Geen enkele geautomatiseerde axe-core-regel komt direct overeen met dit criterium. De reden dat geautomatiseerde tools deze overtreding niet kunnen detecteren, is fundamenteel voor hoe browsers en JavaScript werken:

  • Dynamische audio-initiatie: Audio kan worden geactiveerd door JavaScript-timers, event listeners of scripts van derden die worden uitgevoerd na de initiële DOM-analyse. Een geautomatiseerde scanner die de statische DOM inspecteert, kan niet betrouwbaar bepalen of audio automatisch zal worden afgespeeld, hoe lang dit duurt of of een bediening functioneel is gekoppeld aan die specifieke audiobron.
  • Aanwezigheid en bedienbaarheid van bedieningselementen: Een volumeschuif of pauzeknop kan in de DOM aanwezig zijn maar niet functioneren, buiten het scherm verborgen zijn of ontoegankelijk zijn voor toetsenbordgebruikers. Geautomatiseerde tools kunnen de aanwezigheid van een element detecteren, maar kunnen niet verifiëren dat het activeren ervan de audio daadwerkelijk stopt zonder de interactie uit te voeren en naar een resultaat te luisteren — een taak die menselijk auditief oordeel vereist.
  • Tijdsdrempel: Bepalen of audio langer dan drie seconden wordt afgespeeld, vereist een tijdsgebonden evaluatie tijdens het laden van de pagina, wat buiten het bereik valt van tools die de DOM statisch of zelfs tijdens runtime analyseren.
  • Insluitingen van derden: Audio die via iframes, SDK’s van derden of advertentienetwerken is ingesloten, is mogelijk niet inspecteerbaar door de JavaScript-sandbox van de testtool, waardoor detectie programmatisch onmogelijk wordt.

Vanwege deze beperkingen moeten auditors pagina’s persoonlijk bezoeken, luisteren naar automatisch afspelende audio en handmatig verifiëren dat pauze-/stop-/volumebedieningen bestaan, via het toetsenbord bereikbaar zijn en correct functioneren.

Hoe te Testen

  1. Geautomatiseerde pre-scan: Voer axe DevTools of Google Lighthouse uit op de pagina. Hoewel geen van beide tools direct een 1.4.2-overtreding zal markeren, zullen ze gerelateerde problemen aan het licht brengen, zoals ontbrekende toetsenbordfocus op bedieningselementen, ontoegankelijke mediaplayer-elementen of ontbrekende ARIA-labels op aangepaste audiowidgets. Los deze op voordat je met handmatig testen begint, zodat je geen afzonderlijke problemen door elkaar haalt.
  2. Handmatige audiodetectie: Laad de pagina met je luidsprekers of koptelefoon actief. Let erop of er binnen de eerste paar seconden audio begint te spelen zonder enige gebruikersinteractie. Zo ja, gebruik een timer om te bevestigen dat deze langer dan drie seconden speelt. Controleer alle belangrijke paginatypen: homepage, landingspagina’s, productpagina’s en elke pagina waarvan bekend is dat deze media-insluitingen of advertentieruimtes bevat.
  3. Zoek de stop-/pauze-/volumeknop: Druk zonder muis direct na het laden van de pagina op Tab. Tel hoeveel tabstops er plaatsvinden voordat je de audiobediening bereikt. Controleer of de bediening een zichtbare focusindicator krijgt. Druk op Enter of Spatie om deze te activeren en bevestig dat de audio stopt of dat het volume onafhankelijk kan worden aangepast.
  4. Schermlezertest met NVDA en Firefox: Start NVDA, open Firefox en navigeer naar de pagina. Laat de audio beginnen. Probeer met de leescommando’s van NVDA (pijltjestoetsen, virtuele cursor) de audiobediening te vinden en te activeren. Bevestig dat NVDA de rol en het label van de bediening correct aankondigt (bijv. “Audio pauzeren, knop”) en dat het activeren ervan de concurrerende audio stilmaakt.
  5. Schermlezertest met VoiceOver en Safari (macOS/iOS): Schakel VoiceOver in met Command + F5. Navigeer naar de pagina en veeg of gebruik pijltjestoetsen om de audiobediening te vinden. Controleer of VoiceOver een betekenisvol label uitspreekt en of de bediening werkt zoals verwacht. Test op iOS ook het autoplay-gedrag, omdat mobiele browsers audiovergunningen anders afhandelen.
  6. Schermlezertest met JAWS en Chrome: Laad met JAWS actief de pagina in Chrome. Gebruik de tabtoets en de JAWS-lijst met formulierelementen (Insert + F5) om interactieve elementen te vinden. Bevestig dat de audiobediening in de lijst verschijnt en bedienbaar is.
  7. Controle van content van derden: Als de pagina ingesloten socialmediavideo’s, advertentie-units of iframe-content bevat, laad deze waar mogelijk afzonderlijk en controleer of ze ook voldoen, of dat de hostpagina een override-bediening biedt.
  8. Controle op onafhankelijk volume: Als de pagina een volumeregeling biedt in plaats van een pauze-/stopknop, controleer dan dat het aanpassen van de volumeregeling van de pagina het hoofdvolume van het besturingssysteem niet wijzigt. Open een andere applicatie (bijv. een lokale mediaplayer) en bevestig dat het volume daarvan onveranderd blijft nadat je de bediening op de pagina hebt gebruikt.

Hoe te Herstellen

Automatisch afspelende achtergrondaudio zonder bediening — Onjuist

<!-- Audio starts automatically with no visible or keyboard-accessible control -->
<audio src='background-music.mp3' autoplay loop></audio>

Automatisch afspelende achtergrondaudio met toegankelijke pauzeknop — Juist

<!-- Control is the first focusable element, announced properly by screen readers -->
<button id='audio-toggle' aria-label='Pause background music' aria-pressed='true' onclick='toggleAudio()'>
  Pause Music
</button>

<audio id='bg-audio' src='background-music.mp3' autoplay loop></audio>

<script>
  function toggleAudio() {
    var audio = document.getElementById('bg-audio');
    var btn = document.getElementById('audio-toggle');
    if (audio.paused) {
      audio.play();
      btn.setAttribute('aria-pressed', 'true');
      btn.setAttribute('aria-label', 'Pause background music');
      btn.textContent = 'Pause Music';
    } else {
      audio.pause();
      btn.setAttribute('aria-pressed', 'false');
      btn.setAttribute('aria-label', 'Play background music');
      btn.textContent = 'Play Music';
    }
  }
</script>

<!-- The native <button> element is keyboard-accessible by default.
     aria-pressed communicates toggle state to screen readers.
     aria-label updates dynamically to reflect current action. -->

Automatisch afspelende video met soundtrack en geen via toetsenbord toegankelijke stopknop — Onjuist

<!-- The video autoplays with sound; the only stop control is a mouse-only overlay -->
<div class='hero-video-wrapper'>
  <video src='promo.mp4' autoplay loop></video>
  <div class='stop-btn' onclick='stopVideo()'>Stop</div>
</div>
<!-- Problem: <div> is not keyboard-focusable and has no role or label -->

Automatisch afspelende video met toegankelijke stopknop — Juist

<div class='hero-video-wrapper'>
  <!-- Stop control appears first in DOM and focus order -->
  <button
    id='video-stop-btn'
    aria-label='Stop promotional video'
    onclick='stopVideo()'
  >
    Stop Video
  </button>

  <video id='promo-video' src='promo.mp4' autoplay loop muted='false'></video>
</div>

<script>
  function stopVideo() {
    var video = document.getElementById('promo-video');
    var btn = document.getElementById('video-stop-btn');
    video.pause();
    video.currentTime = 0;
    btn.disabled = true;
    btn.textContent = 'Video Stopped';
  }
</script>

<!-- Using a native <button> ensures keyboard access without additional ARIA.
     Placing the button before the video in DOM order puts it early in tab sequence. -->

Ingesloten audio-widget van derden met onafhankelijke volumeregeling — Juist

<!-- When a third-party widget auto-plays, provide a host-level mute control -->
<button
  id='mute-widget-audio'
  aria-label='Mute podcast player'
  aria-pressed='false'
  onclick='muteWidget()'
>
  Mute Podcast
</button>

<iframe
  id='podcast-frame'
  src='https://embed.example.com/podcast/ep42?autoplay=1'
  title='Episode 42: Web Accessibility Deep Dive'
  allow='autoplay'
></iframe>

<script>
  function muteWidget() {
    <!-- postMessage API used to communicate with cross-origin iframe player -->
    var frame = document.getElementById('podcast-frame');
    var btn = document.getElementById('mute-widget-audio');
    var isMuted = btn.getAttribute('aria-pressed') === 'true';
    frame.contentWindow.postMessage({ action: isMuted ? 'unmute' : 'mute' }, 'https://embed.example.com');
    btn.setAttribute('aria-pressed', String(!isMuted));
    btn.setAttribute('aria-label', isMuted ? 'Mute podcast player' : 'Unmute podcast player');
  }
</script>

<!-- Note: host-level volume/mute control satisfies 1.4.2 when
     the iframe player's own controls may be inaccessible. -->

Veelvoorkomende Fouten

  • Een <div> of <span> gebruiken als audiostopknop zonder tabindex='0', een role='button' en toetsenbord-eventhandlers toe te voegen. Dergelijke elementen zijn onzichtbaar voor toetsenbordnavigatie en schermlezers, waardoor de bediening nutteloos is voor de gebruikers die deze het hardst nodig hebben.
  • De audiobediening na de hoofdcontent in de DOM plaatsen, waardoor toetsenbordgebruikers door tientallen links en formuliervelden moeten tabben voordat ze deze bereiken — tegen die tijd speelt de audio al een minuut of langer. De bediening moet het eerste of tweede focusbare element op de pagina zijn.
  • De audio standaard dempen met het HTML-attribuut muted en dat als naleving beschouwen. Een gedempt automatisch afspelend audio-element is geen door de gebruiker bedienbare controle; de gebruiker heeft geen manier om te weten dat er audio bestaat of om zijn of haar eigen volumepreferentie te kiezen.
  • Een volumeschuif aanbieden die window.AudioContext.destination.gain aanroept en systeemvolumeniveaus wijzigt, in plaats van alleen de .volume-eigenschap van het specifieke media-element aan te passen. Dit voldoet niet aan de eis van onafhankelijkheid.
  • Aannemen dat mobiele browsers autoplay blokkeren en dat er daarom geen bediening nodig is. Veel mobiele browsers staan autoplay toe wanneer de audio is ingesloten in een video-element of wanneer de gebruiker eerder met het domein heeft geïnterageerd. Implementeer altijd bedieningselementen, ongeacht het veronderstelde browsergedrag.
  • Het toegankelijke label van de knop niet bijwerken wanneer de status verandert. Een knop met het label “Pause” die nu audio hervat, moet zijn aria-label bijwerken naar “Play” — anders horen schermlezersgebruikers een onjuiste aankondiging en kunnen ze de verkeerde actie activeren.
  • Uitsluitend vertrouwen op de native mediabediening van de browser (attribuut controls) zonder te verifiëren dat deze verschijnen voordat automatisch afgespeelde audio opdringerig wordt. Native bedieningselementen worden onder het media-element weergegeven, wat onder de vouw kan zijn, waardoor ze via het toetsenbord onbereikbaar zijn voordat er aanzienlijke verstoring optreedt.
  • Niet testen met audio-afspelende advertenties die via advertentienetwerken worden geserveerd. Advertentieruimtes die dynamisch na het laden van de pagina worden geïnjecteerd, maken deel uit van de pagina-ervaring en vallen onder 1.4.2. Als het advertentienetwerk geen naleving kan garanderen, bied dan een globale muteknop voor de pagina.
  • De vrijstelling van drie seconden als maas in de wet behandelen door een doorlopend audiotrack op te splitsen in segmenten van minder dan drie seconden. De intentie van WCAG is duidelijk: audio die continu wordt afgespeeld of herhaald, valt onder het criterium, ongeacht hoe deze technisch is opgedeeld.
  • Geen zichtbare focusindicator op de audiobediening bieden. Zelfs als de bediening via het toetsenbord bereikbaar is, kunnen ziende toetsenbordgebruikers deze niet vinden als er geen focusring is, wat zowel in strijd is met de gebruiksintentie van dit criterium als met WCAG 2.4.7 (Focus zichtbaar).

Relatie met de Toegankelijkheidsregelgeving van Turkije

De Turkse Presidential Circular 2025/10, gepubliceerd in het Staatsblad nr. 32933 op 21 juni 2025, stelt verplichte webtoegankelijkheidseisen vast die zijn afgestemd op WCAG 2.2 voor een breed scala aan publieke en private entiteiten die in Turkije actief zijn. WCAG 1.4.2 — Audiobediening is een criterium op Niveau A en valt daarmee in de meest fundamentele categorie van vereisten. Niet-naleving van criteria op Niveau A vormt een basisfout onder de Circulaire.

De Circulaire schrijft de volgende termijnen voor naleving voor: publieke instellingen moeten binnen één jaar na de publicatiedatum van de Circulaire volledige naleving op Niveau A bereiken, terwijl private entiteiten die onder de regeling vallen twee jaar hebben om te voldoen.

De volgende typen entiteiten vallen expliciet onder de Presidential Circular en zijn daarom verplicht te voldoen aan WCAG 1.4.2:

  • Publieke instellingen en overheidsorganen op alle niveaus, waaronder ministeries, gemeenten en aan de staat gelieerde agentschappen waarvan digitale diensten door het publiek worden gebruikt.
  • E-commerceplatforms die in Turkije actief zijn, waaronder marktplaatsen en direct-to-consumer online retailers.
  • Banken en financiële instellingen die onder de Turkse bankwetgeving vallen, inclusief hun onlinebankportalen, mobiele webinterfaces en digitale productpagina’s.
  • Ziekenhuizen en zorgaanbieders, waaronder private ziekenhuisgroepen en publieke gezondheidsportalen waar patiënten afspraken maken, dossiers inzien of gezondheidsinformatie ontvangen.
  • Telecommunicatiebedrijven met 200.000 of meer abonnees, waarvan klantgerichte websites, selfserviceportalen en promotiepagina’s moeten voldoen.
  • Reisbureaus en online reisplatforms die consumenten in Turkije bedienen, inclusief boekingsengines en bestemmingspagina’s met content.
  • Private vervoersbedrijven die online ticketing- en passagiersinformatiediensten aanbieden.
  • Particuliere scholen die zijn gemachtigd door het Ministry of National Education (MoNE), inclusief hun inschrijfportalen, leeromgevingen (LMS) en informatieve websites.

Voor al deze entiteiten geldt dat een pagina die audio automatisch afspeelt — of het nu gaat om een promotievideo op de homepage van een bank, een achtergrondgeluid op een productpagina van een e-commercewebsite of een ingesloten nieuwsfragment op een overheidsportaal — zonder een toegankelijke, via het toetsenbord bereikbare pauze- of volumeknop te bieden, een directe schending vormt van zowel WCAG 1.4.2 als de verplichtingen die zijn opgelegd door Presidential Circular 2025/10. Entiteiten die onder de regeling vallen, wordt sterk aangeraden om alle paginatemplates te controleren op automatisch afspelende media en tijdig conforme bedieningselementen te implementeren om regulatoire bevindingen te voorkomen en alle gebruikers gelijkwaardig te bedienen.