# Bad value “presentation” for attribute “role” on element “video”.

> Canonical HTML version: https://rocketvalidator.com/html-validation/bad-value-presentation-for-attribute-role-on-element-video
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `role="presentation"` attribute is not allowed on the `video` element because it is an interactive media element that conveys meaningful content to users.

The `role="presentation"` (or its synonym `role="none"`) is used to tell assistive technologies that an element is purely decorative and has no semantic meaning. However, the HTML specification restricts which elements can use this role. Interactive elements like `video`, `button`, `input`, and `a` (with `href`) cannot have their semantics removed because doing so would hide important functionality from users who rely on assistive technologies.

A `video` element provides media controls and content that users need to interact with. Stripping its semantics would make it invisible or confusing to screen reader users. If the video is truly decorative (like a background video), there are better approaches than using `role="presentation"`.

If the video is decorative or used as a background, you can hide it from assistive technologies entirely using `aria-hidden="true"`. If the video has meaningful content, keep its native semantics and provide a proper accessible label instead.

## Bad Example

```html
<video role="presentation" autoplay muted loop>
  <source src="background.mp4" type="video/mp4">
</video>
```

## Fixed Example — Decorative/Background Video

```html
<video aria-hidden="true" autoplay muted loop>
  <source src="background.mp4" type="video/mp4">
</video>
```

## Fixed Example — Meaningful Video

```html
<video controls aria-label="Product demo walkthrough">
  <source src="demo.mp4" type="video/mp4">
</video>
```
