Skip to content
Permalink
main
Switch branches/tags
Go to file
8 contributors

Users who have contributed to this file

@evcohen @merlinpatt @yepninja @olitreadwell @JoshuaKGoldberg @walokra @backwardok @arjansingh

aria-role

Elements with ARIA roles must use a valid, non-abstract ARIA role. A reference to role definitions can be found at WAI-ARIA site.

Rule details

This rule takes one optional object argument of type object:

{
    "rules": {
        "jsx-a11y/aria-role": [ 2, {
            "allowedInvalidRoles": ["text"],
            "ignoreNonDOM": true
        }],
    }
}

allowedInvalidRules is an optional string array of custom roles that should be allowed in addition to the ARIA spec, such as for cases when you need to use a non-standard role.

For the ignoreNonDOM option, this determines if developer created components are checked.

Succeed

<div role="button"></div>     <!-- Good: "button" is a valid ARIA role -->
<div role={role}></div>       <!-- Good: role is a variable & cannot be determined until runtime. -->
<div></div>                   <!-- Good: No ARIA role -->
<Foo role={role}></Foo>       <!-- Good: ignoreNonDOM is set to true -->

Fail

<div role="datepicker"></div> <!-- Bad: "datepicker" is not an ARIA role -->
<div role="range"></div>      <!-- Bad: "range" is an _abstract_ ARIA role -->
<div role=""></div>           <!-- Bad: An empty ARIA role is not allowed -->
<Foo role={role}></Foo>       <!-- Bad: ignoreNonDOM is set to false or not set -->

Accessibility guidelines

Resources