# <video> or <audio> elements must not play automatically

> Canonical HTML version: https://rocketvalidator.com/accessibility-validation/axe/4.10/no-autoplay-audio
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

Ensures that `video` or `audio` elements don't have autoplay audio that lasts more than three seconds without a way to silence it.

When using screen reading software, people who are blind or have low vision may have trouble hearing the screen reader's spoken output if other audio is playing at the same time.

If automatically playing audio continues for more than three seconds, it must be possible to pause, stop, or adjust the level using a well placed, easily accessible mechanism.

Users of screen readers can hear the screen reader without any other sounds playing thanks to an audio control.

A screen reader user's ability to find the stop button may be hampered if audio starts playing immediately when they land on a page. This is because they navigate by listening, and automatically starting sounds may obstruct that navigation.

Therefore, we oppose the practice of automatically starting sounds (especially if they run longer than three seconds) and encourage users to start the sound themselves once they arrive at the page rather than expecting them to stop the sound themselves once they have reached the page.

<h3>What this Accessibility Rule Checks</h3>

The algorithm for this rule returns:

* **Undefined** when `<audio>` has no source (duration cannot be interpreted).
* **Undefined** when `<video>` has no source (duration cannot be interpreted).
* **False** when `<audio>` can autoplay and has no controls mechanism.
* **False** when `<video>` can autoplay and has no controls  mechanism
* **False** when `<audio>` plays less than three seconds but loops.
* **True** when `<video>` can autoplay and duration is less than three seconds (by passing options).
* **True** when `<video>` can autoplay and duration is below allowed duration (by setting playback range).
* **True** when `<audio>` can autoplay but has controls mechanism.
* **True** when `<video>` can autoplay and has controls mechanism.
