# ember/template-no-invalid-role
💼 This rule is enabled in the 📋 `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations).
Disallows invalid ARIA roles in templates.
ARIA roles must be valid according to the ARIA specification. Using invalid roles can confuse assistive technologies and reduce accessibility.
## Rule Details
This rule checks that all `role` attributes contain valid ARIA role values. It also disallows `role="presentation"` and `role="none"` on semantic HTML elements, as doing so strips meaning from elements that inherently convey information.
## Examples
Examples of **incorrect** code for this rule:
```gjs
Content
```
```gjs
Should be "button"
```
```gjs
```
```gjs
```
Examples of **correct** code for this rule:
```gjs
Content
```
```gjs
Nav
```
```gjs
Decorative
```
```gjs
No role attribute
```
## Migration
- If violations are found, remediation should be planned to replace the semantic HTML with the `div` element. Additional CSS will likely be required.
## Options
| Name | Type | Default | Description |
| ----------------------- | --------- | ------- | ------------------------------------------------------------- |
| `catchNonexistentRoles` | `boolean` | `true` | When `true`, reports roles that don't exist in the ARIA spec. |
## References
- [eslint-plugin-ember template-no-invalid-role](https://github.com/ember-cli/eslint-plugin-ember/blob/master/docs/rules/template-no-invalid-role.md)
- [WAI-ARIA Roles](https://www.w3.org/TR/wai-aria-1.2/#role_definitions)