# The “list” role is unnecessary for element “ol”.

> Canonical HTML version: https://rocketvalidator.com/html-validation/the-list-role-is-unnecessary-for-element-ol
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

The `role="list"` attribute is redundant on an `<ol>` element because it already has an implicit ARIA role of `list`.

HTML elements come with built-in (implicit) ARIA roles that convey their purpose to assistive technologies. The `<ol>` and `<ul>` elements both have an implicit role of `list`, so explicitly adding `role="list"` is unnecessary and creates noise in your markup.

That said, there's a well-known reason some developers add this role intentionally. Safari removes list semantics when `list-style: none` is applied via CSS. Adding `role="list"` is a common workaround to restore those semantics for VoiceOver users. If this is your situation, the W3C warning is technically correct but you may choose to keep the role for accessibility reasons.

If you don't need the Safari workaround, simply remove the `role` attribute.

## Before

```html
<ol role="list">
  <li>First item</li>
  <li>Second item</li>
  <li>Third item</li>
</ol>
```

## After

```html
<ol>
  <li>First item</li>
  <li>Second item</li>
  <li>Third item</li>
</ol>
```
