Skip to content

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.

When this spec applies

Primary triggers

All triggers

Specification body

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

SurfaceCaptionsTranscriptLibrasAudio-desc
Video (video.kmd)R1 (if speech)R2R3 (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:

  1. Speech media has a WebVTT caption track (institutional → human-verified).
  2. Video/audio links a full transcript.
  3. Institutional video carries a Libras track (else documented as infeasible).
  4. Visual-only-meaning video carries audio-description or an extended-description transcript.
  5. 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.

References