Accessibility — Media
accessibility specs/accessibility/media.kmd
The accessibility contract for time-based + rich media — captions (WebVTT), a text transcript, a Libras (Brazilian Sign Language) interpreter track, and audio-description — and which of them each media surface (video / audio / model-viewer / voice mode) must carry. Binds the `libras`/`emag-3.1` DS a11y profiles and conformance-br to the media surfaces, verified against persona P7 (Deaf / LIBRAS L1). Delegates the player/engine mechanics to the media specs; it fixes the REQUIREMENT, not the widget.
Quando esta spec se aplica
Triggers primários
- Provide accessibility alternatives for media
Todos os triggers
- Ship a video/audio/3D/voice surface accessibly
- Decide whether a media surface needs captions / transcript / Libras / audio-description
- Meet eMAG/LBI media accessibility for a gov.br surface
Corpo da especificação
Accessibility — Media
Persona P7 (Murilo, Deaf, LIBRAS L1 — personas.kmd) stalls wherever a surface
carries meaning in sound with no visual/text equivalent. This spec is his contract:
every media surface provides the alternatives below so nothing is audio-only (P7) and no
visual-only meaning is unnarrated. It is the media half of the libras / emag-3.1 DS
a11y profiles (a11y-profiles.kmd) and of conformance-br.kmd R3.
R1 — Captions (WebVTT)
Any media with speech or meaningful audio carries synchronized captions in
WebVTT, rendered by the player's caption track (video.kmd KoderVideoPlayer;
switching the track never disturbs playback state, video.kmd V3). Captions MAY be
seeded by the on-device STT engine (transcription.kmd) but institutional/public
content requires a human-verified track (auto-caption alone is not conformant).
Captions carry speaker turns + significant non-speech sound ([applause], [music]).
R2 — Transcript
A full text transcript is available as a text alternative — for video and audio — reachable from the surface (a linked/expandable transcript, not only inline captions), so a screen-reader or Deaf user can read the whole content at their own pace and it is machine-indexable. The transcript includes what the captions carry plus any audio-described visual information (R4).
R3 — Libras interpreter track
Public institutional content (eMAG/LBI, conformance-br.kmd R3) carries a Libras
interpreter window — a sign-language interpreter video — as a picture-in-picture
track over the media or a linked companion video, toggleable. For non-institutional
content it is provided where feasible (P7's "LIBRAS overlay where applicable").
Libras is additive to captions + transcript (R1/R2), never a replacement — LIBRAS
is P7's first language, but not every Deaf user reads Portuguese fluently, and not every
Portuguese reader knows Libras.
R4 — Audio-description
Video whose meaning is carried visually and not conveyed by the main audio (on-screen text, actions, charts) provides audio-description — a described audio track, or, at minimum, the visual information folded into the R2 transcript (extended description). A talking-head with no essential visual-only content needs none.
R5 — Per-surface contract
| Surface | Captions | Transcript | Libras | Audio-desc |
|---|---|---|---|---|
Video (video.kmd) | R1 (if speech) | R2 | R3 (institutional / feasible) | R4 (if visual-only meaning) |
Audio (media/audio.kmd) | R1 (if speech) | R2 | — (n/a, no video) | — |
Model-viewer (model-viewer.kmd) | — | a text alternative describing the 3D content (the R2 analogue for a non-time-based visual medium) | — | the description IS the alt |
Voice mode (ai-ui/voice-mode.kmd) | — | a visible transcript of the spoken interaction (P7 cannot hear TTS — the voice turn MUST also be shown as text) | — | — |
No surface gives audio-only feedback (P7): a sound cue always has a visual/text
counterpart (personas.kmd P7/P8).
R6 — Verification (auditable checklist)
The requirements are a checklist the UQS score (design/ui-quality-score.kmd) and
k-test-gen-a11y consume; a media surface is not a11y-conformant until each applicable
row passes:
- Speech media has a WebVTT caption track (institutional → human-verified).
- Video/audio links a full transcript.
- Institutional video carries a Libras track (else documented as infeasible).
- Visual-only-meaning video carries audio-description or an extended-description transcript.
- Voice mode shows a visible transcript; no audio-only feedback anywhere.
Não-escopo
- The player/engine mechanics —
video.kmd(playback/controls),media/audio.kmd,transcription.kmd(the STT engine that MAY seed captions),model-viewer.kmd. - The WCAG/eMAG/LBI mapping and the declaration artifact —
conformance-br.kmd. - pt-BR plain-language copy of captions/transcripts —
content/plain-language-ptbr.kmd.
Referências
meta/docs/stack/specs/accessibility/conformance-br.kmdmeta/docs/stack/specs/accessibility/personas.kmdmeta/docs/stack/specs/design-system/a11y-profiles.kmdmeta/docs/stack/specs/media/video.kmdmeta/docs/stack/specs/media/transcription.kmdmeta/docs/stack/specs/components/model-viewer.kmdtools/design-gen/docs/govbr-ds-gap-analysis.md