---
title: "Invalid ARIA role (a11y/aria-roles)"
description: "a11y/aria-roles: Browsers ignore misspelled or invented role values, so the element exposes its native semantics instead of the widget you intended."
canonical: https://void-design.vercel.app/rules/a11y/aria-roles
lastModified: 2026-09-16
---

# Invalid ARIA role

`a11y/aria-roles` · severity **error** · category Accessibility · detected by `void a11y` and `void audit`

## Why it matters

Browsers ignore misspelled or invented role values, so the element exposes its native semantics instead of the widget you intended.

## How to fix it

Use a valid WAI-ARIA role. Better still, use the native element (button, a, input) that already has the role.

## References

- https://dequeuniversity.com/rules/axe/4.13/aria-roles

## More accessibility rules

`void a11y` reports 48 rules in this category. WCAG 2.2 AA through axe-core, plus checks axe can't do alone: visible keyboard focus, 24/44px target size on mobile, 320px reflow and disabled zoom.

- `aria-allowed-attr` ARIA attribute is not allowed on this role — [a11y/aria-allowed-attr](https://void-design.vercel.app/rules/a11y/aria-allowed-attr)
- `aria-required-attr` Required ARIA attribute is missing — [a11y/aria-required-attr](https://void-design.vercel.app/rules/a11y/aria-required-attr)
- `aria-required-children` ARIA role is missing required children — [a11y/aria-required-children](https://void-design.vercel.app/rules/a11y/aria-required-children)
- `aria-required-parent` ARIA role is missing its required parent — [a11y/aria-required-parent](https://void-design.vercel.app/rules/a11y/aria-required-parent)
- `aria-valid-attr` Invalid ARIA attribute name — [a11y/aria-valid-attr](https://void-design.vercel.app/rules/a11y/aria-valid-attr)
- `aria-valid-attr-value` Invalid ARIA attribute value — [a11y/aria-valid-attr-value](https://void-design.vercel.app/rules/a11y/aria-valid-attr-value)
- `aria-hidden-focus` Focusable element inside aria-hidden — [a11y/aria-hidden-focus](https://void-design.vercel.app/rules/a11y/aria-hidden-focus)
- `aria-hidden-body` aria-hidden on <body> — [a11y/aria-hidden-body](https://void-design.vercel.app/rules/a11y/aria-hidden-body)

Detected by `void a11y` and `void audit`. Explain it in a terminal: `void rules a11y/aria-roles`
