Audio Only Task
Status: ready
Symptom
An instruction, a warning or a confirmation exists only as sound.
Video says: "Steep for 3 minutes at 80 °C."
App shows: a video player.
App plays: a success sound after payment.
App shows: nothing new.
Where it shows up
Onboarding and how-to videos, voice messages from support, verification calls, workout and recipe apps, safety instructions, success and error sounds.
Why it blocks the task
Deaf and hard of hearing users miss it. So does everyone with sound off, on a train or in a meeting. The instruction can't be searched, copied, translated or read on a Braille display. The user replays the video three times and still can't get "80 °C" without hearing it.
Live Captions in iOS can help, but it's the user's fallback, not the app's answer. If the app owns the task, the app provides the text.
Root cause
The media was treated as content, not as part of the task.
- No caption track.
- No transcript, or a transcript buried in support.
- A sound has no visual equivalent.
- QA tested playback, not the task with sound off.
Before
VideoPlayer(player: brewingVideo)
Fix
Verdict: a caption track in the media, a transcript next to the player, and any instruction the task needs written in the UI. A sound is always paired with visible state.
Why: captions follow the system caption settings. The transcript can be read at the user's speed, searched and read by VoiceOver. An instruction in the UI doesn't need the video at all.
VideoPlayer(player: brewingVideo) // asset with a closed-caption track
Button("Read transcript") { showTranscript = true }
Text("Steep for 3 minutes at 80 °C.")
If the app has its own caption control, it's a Toggle, so the name stays and the state is a value:
Toggle("Captions", isOn: $captionsOn)
A sound with a visible result:
playSuccessSound()
paymentStatus = "Payment complete. Order 1042." // shown on screen
AccessibilityNotification.Announcement(paymentStatus).post()
Caption track and caption settings: Chapter 8, Decision 1.
What we don't do
- We don't draw captions as a
Textoverlay. System caption settings (size, color, background) don't apply to it. - We don't put the only copy of an instruction inside a video.
Check
Profile: sound off
Task: learn how to brew from the video
Expected: temperature and time are available as text
the transcript is next to the player
Profile: Settings → Accessibility → Subtitles & Captioning, Closed Captions + SDH on
Task: play the video
Expected: captions appear without any in-app setting
Profile: VoiceOver
Task: find the transcript
Expected: "Read transcript" follows the player
the captions control reads "Captions, switch button, on/off"
WCAG mapping
1.2.2 Captions (Prerecorded): video with audio has captions.1.2.1 Audio-only and Video-only: audio-only content has a text alternative.1.4.2 Audio Control: the user can stop audio.