Last updated:

Created by:

Description

Non-streaming video elements must have all visual information also contained in the audio

Test Procedure

Applicability

The rule applies to every non-streaming video element that is visible where the video contains audio.

Expectation

The visual information of each test target is available through its audio, or through an audio description track.

Assumptions

This rule assumes that a mechanism is available to start the video and that the video element is not simply used to display the poster.

Accessibility support

There are only a few implementations of video players (without third party technologies) that support audio description tracks at the time of writing.

Background

Test Cases

Passed

Passed example 1

A video element with a voiceover that describes the visual information.

Code Snippet:
 <video controls>
  <source src="../test-assets/rabbit-video/video-with-voiceover.mp4" type="video/mp4" />
  <source src="../test-assets/rabbit-video/video-with-voiceover.webm" type="video/webm" />
</video>
 
Example Output: Open in a new tab/ window

Passed example 2

A video element with an audio description.

Code Snippet:
 <link rel="stylesheet" href="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-core/ozplayer.min.css">
<link rel="stylesheet" href="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-skin/highlights-blue.css">
<link rel="stylesheet" href="https://ozplayer.global.ssl.fastly.net/3.3/transcript.css">

<figure id="ozplayer-1-container" class="ozplayer-container">
  <div data-controls="stack" class="ozplayer" id="ozplayer-1">
    <video controls="controls" preload="none">
      <source src="../test-assets/rabbit-video.mp4" type="video/mp4"></source>
    </video>
    <audio data-default="default" preload="none">
      <source src="../test-assets/rabbit-video/audio-description.mp3" type="audio/mp3"  />
    </audio>
  </div>
</figure>

<script src="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-core/mediaelement.min.js"></script>
<script src="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-core/ozplayer.free.js"></script>
<script src="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-lang/en.js"></script>
<script src="https://ozplayer.global.ssl.fastly.net/3.3/config.js"></script>
 
Example Output: Open in a new tab/ window

Note: The ozplayer implementation is only an example and is not meant as an endorsment of the ozplayer.

Failed

Failed example 1

A video element without an audio description.

Code Snippet:
 <video controls>
  <source src="../test-assets/rabbit-video/video.mp4" type="video/mp4" />
  <source src="../test-assets/rabbit-video/video.webm" type="video/webm" />
</video>
 
Example Output: Open in a new tab/ window

Failed example 2

A video element with an incorrect audio description.

Code Snippet:
 <video controls>
  <source src="../test-assets/rabbit-video/video-with-incorrect-voiceover.mp4" type="video/mp4" />
  <source src="../test-assets/rabbit-video/video-with-incorrect-voiceover.webm" type="video/webm" />
</video>
 
Example Output: Open in a new tab/ window

Failed example 3

A video element with an incorrect audio description.

Code Snippet:
 <link rel="stylesheet" href="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-core/ozplayer.min.css">
<link rel="stylesheet" href="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-skin/highlights-blue.css">
<link rel="stylesheet" href="https://ozplayer.global.ssl.fastly.net/3.3/transcript.css">

<figure id="ozplayer-1-container" class="ozplayer-container">
  <div data-controls="stack" class="ozplayer" id="ozplayer-1">
    <video controls="controls" preload="none">
      <source src="../test-assets/rabbit-video/video.mp4" type="video/mp4"></source>
    </video>
    <audio data-default="default" preload="none">
      <source src="../test-assets/rabbit-video/incorrect-audio-description.mp3" type="audio/mp3"  />
    </audio>
  </div>
</figure>

<script src="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-core/mediaelement.min.js"></script>
<script src="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-core/ozplayer.free.js"></script>
<script src="https://ozplayer.global.ssl.fastly.net/3.3/ozplayer-lang/en.js"></script>
<script src="https://ozplayer.global.ssl.fastly.net/3.3/config.js"></script>
 
Example Output: Open in a new tab/ window

Note: The ozplayer implementation is only an example and is not meant as an endorsment of the ozplayer.

Inapplicable

Inapplicable example 1

A video element without audio.

Code Snippet:
 <video controls>
  <source src="../test-assets/rabbit-video/silent.mp4" type="video/mp4" />
  <source src="../test-assets/rabbit-video/silent.webm" type="video/webm" />
</video>
 
Example Output: Open in a new tab/ window

Inapplicable example 2

A video element that is not visible on the page.

Code Snippet:
 <video controls style="display: none;">
  <source src="../test-assets/rabbit-video/video.mp4" type="video/mp4" />
  <source src="../test-assets/rabbit-video/video.webm" type="video/webm" />
</video>
 
Example Output: Open in a new tab/ window

Glossary

Visible

Content perceivable through sight.

Content is considered visible if making it fully transparent would result in a difference in the pixels rendered for any part of the document that is currently within the viewport or can be brought into the viewport via scrolling.

Content is defined in WCAG.

Test Aspects

Test aspects are defined as part of the ACT Rules format 1.0.
  • DOM Tree

  • CSS Styling

  • Audio output

  • Visual output

Contribute






GitHub

Contributing is open to anyone. We welcome any new issues or pull requests for changes. Auto WCAG Rules has conference calls every 4 weeks. If you are interested in becoming an active contributor or reviewer, we ask that you join the Auto WCAG Rules community group through the W3C Website. This requires setting up a W3C account, may require approval by the organization you work for if they are a W3C member.

Learn more about contributing to Auto WCAG Rules Join the Auto WCAG Rules community group now!