💼 This rule is enabled in the following configs: strict-gjs, strict-gts.
Requires certain ARIA roles to be used in appropriate context.
Some ARIA roles must be contained within specific parent roles to be meaningful and accessible. For example, a role="listitem" must be inside an element with role="list".
This rule checks that context-dependent ARIA roles are used within the appropriate parent roles.
Roles requiring context:
listitem→ must be inlistoption→ must be inlistboxtab→ must be intablistmenuitem,menuitemcheckbox,menuitemradio→ must be inmenuormenubartreeitem→ must be intreerow→ must be intable,grid,treegrid, orrowgroup- And more...
Examples of incorrect code for this rule:
<template>
<div role="listitem">Item</div>
</template><template>
<div role="tab">Tab 1</div>
</template><template>
<div role="menuitem">Item</div>
</template>Examples of correct code for this rule:
<template>
<ul role="list">
<li role="listitem">Item</li>
</ul>
</template><template>
<div role="tablist">
<div role="tab">Tab 1</div>
</div>
</template><template>
<div role="menu">
<div role="menuitem">Item</div>
</div>
</template>