Skip to content

no-redundant-roles

Some HTML elements have native semantics that are implemented by the browser. This includes default/implicit ARIA roles. Setting an ARIA role that matches its default/implicit role is redundant since it is already set by the browser.

🔧 Options

The default options for this rule allow an implicit role of navigation to be applied to a nav element as is advised by W3. The options are provided as an object keyed by HTML element name; the value is an array of implicit ARIA roles that are allowed on the specified element.

json
{
  "vuejs-accessibility/no-redundant-roles": [
    "error",
    {
      "nav": ["navigation"]
    }
  ]
}

✔ Succeed

vue
<template>
  <div />
  <button role="presentation" />
</template>

❌ Fail

vue
<template>
  <button role="button" />
  <img role="img" src="foo.jpg" />
</template>

📚 Resources