Succescriterium 1.2.5 – Geluidsbeschrijving

Zorg dat er geluidsbeschrijving beschikbaar is wanneer er belangrijke informatie te zien is die je niet kunt horen. Dit doe je door een extra geluidsspoor aan te bieden waar de visuele informatie wordt beschreven. Mensen die blind zijn of moeite hebben met het verwerken van visuele informatie kunnen de inhoud hierdoor ook begrijpen.

Impact

  • Mensen die blind zijn kunnen visuele informatie uit video’s niet waarnemen.
  • Voor mensen met een cognitieve beperking kan het lastig zijn om te begrijpen wat er te zien is.

Controleren

Zijn details die je ziet in video’s beschreven?”

Dit kan visueel getest worden, er zijn geen hulpmiddelen nodig.

Oplossing

Vanaf Android 4.1 heeft de MediaPlayer ondersteuning voor meerdere audiosporen. Gebruik de selectTrack methode om het juist audiospoor te selecteren. De basis implementatie met MediaPlayer ziet er zo uit:

val player = MediaPlayer.create(this, R.raw.video)
try {
    player.trackInfo.forEachIndexed { index, trackInfo ->
        if (trackInfo.trackType == TrackInfo.MEDIA_TRACK_TYPE_AUDIO) {
            player.selectTrack(index)
            return@forEachIndexed
        }
    }
    player.start()
} catch (e: Exception) {
    e.printStackTrace()
}

Op iOS heeft AVPlayer ondersteuning om audiodescriptie toe te voegen. Gebruikers kunnen via de systeemvoorkeuren audiodescriptie automatisch laten inschakelen. Dit werkt als je de public.accessibility.describes-video eigenschap toevoegt aan het audiospoor met audiodescriptie. Zo voeg je een audiodescriptie audiospoor toe aan een video:

let videoComposition = AVMutableComposition()

// Add video track
guard let videoTrack = videoComposition.addMutableTrack(
    withMediaType: .video, 
    preferredTrackID: kCMPersistentTrackID_Invalid
) else { 
    return 
}
guard let videoUrl = Bundle.main.url(
    forResource: "Video", 
    withExtension: "mp4"
) else { 
    return 
}
let videoAsset = AVURLAsset.init(url: videoUrl)
try? videoTrack.insertTimeRange(
    CMTimeRangeMake(start: .zero, duration: videoAsset.duration),
    of: videoAsset.tracks(withMediaType: .video)[0],
    at: .zero
)

// Find & add audio description track
for track in videoAsset.tracks {
    if track.hasMediaCharacteristic(.describesVideoForAccessibility) {
        guard let audioTrack = videoComposition.addMutableTrack(
            withMediaType: track.mediaType, 
            preferredTrackID: kCMPersistentTrackID_Invalid
        ) else { 
            return 
        }
        try? audioTrack.insertTimeRange(
            CMTimeRange(start: .zero, duration: videoAsset.duration), 
            of: track, 
            at: .zero
        )
        break
    }
}

Voorbeeld

Luister naar een fragment van Gordon & Paddy waarbij visuele informatie beschreven is.

Referenties

Meer succescriteria

Of ga naar Richtlijn 1.3 – Aanpasbaar