video-poster-text-alternative-present

<video> poster must have a text alternative

automaticWCAG 1.1.1 (A)confidence: mediumseverity: seriousperceivable

Checks that <video> elements with a poster image provide a text alternative (accessible name).

Applies to. Applies to <video> elements that: 1) have a non-empty poster attribute, AND 2) are exposed to assistive technologies (per engine eligibility checks). Elements otherwise hidden from the accessibility tree remain applicable if they are tabbable or referenced by IDREF relationships (per eligibility checks). Videos with role="presentation" or role="none" are excluded only when they are not focusable.

Expectation. Each applicable <video> element provides a text alternative for the poster image, via:

  • an accessible name (aria-label / aria-labelledby / title).

Between-tag fallback content inside <video> is NOT accepted: it is only rendered by browsers that don't support <video>, so it is not reliably exposed to assistive technologies in practice. <video> is also not a labelable element, so native <label for="..."> associations are not accepted either. A <video> with no name that is the only content of a <figure> with a non-empty <figcaption> is asked about (cantTell) rather than failed: the caption names the figure, not the video (HTML-AAM; Chromium gives the video no name), but it may describe the poster, and only a person can tell.

What a finding reports.

  • reasonCode: VIDEO_POSTER_FIGCAPTION_REVIEW on the cantTell finding, with figcaption, the caption's text up to 100 characters; TEXT_ALTERNATIVE_MISSING on a failure.

These data.details fields help to read and reproduce a finding. Apart from reasonCode and the few fields Output schema names as stable, they are not a stable contract: a field may be renamed or dropped in a minor release, so don’t build on them.

Examples

pass
<video poster="poster.png" aria-label="Product demo"></video>

aria-label names the video element that carries the poster image.

fail
<video poster="poster.png"></video>

No accessible name and no fallback; a poster attribute alone isn't a text alternative.

How to check

When this rule can’t decide, it reports cantTell and leaves the question to a person. Each question it can ask is listed here under its reason code, with the steps to answer it. A finding carries the same steps as howToCheck, in the scan’s language. See Output schema.

VIDEO_POSTER_FIGCAPTION_REVIEW

  1. Find the video the report names and look at its poster image before it plays.
  2. Read the figure's caption shown with it.
  3. Decide whether the caption tells someone who cannot see the poster what the video is.

Pass. The caption identifies the video and what its poster shows.

Fail. The caption does not identify the video, so the poster has no text alternative, which fails WCAG 1.1.1.

View source