securityos/node_modules/eslint-plugin-jsx-a11y/docs/rules/no-redundant-roles.md

1.3 KiB

jsx-a11y/no-redundant-roles

💼 This rule is enabled in the following configs: ☑️ recommended, 🔒 strict.

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.

Rule 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.

{
  'jsx-a11y/no-redundant-roles': [
    'error',
    {
      nav: ['navigation'],
    },
  ],
}

Succeed

<div />
<button role="presentation" />
<MyComponent role="main" />

Fail

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

Accessibility guidelines

General best practice (reference resources)

Resources