Skip to content

Commit

Permalink
Merge pull request #483 from github/kh-bug-in-get-role
Browse files Browse the repository at this point in the history
Bug: Don't fallback to checking implicit role if `role` is set
  • Loading branch information
khiga8 authored Sep 26, 2023
2 parents 8ae414c + 3ecb9f1 commit d5591b7
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 2 deletions.
3 changes: 3 additions & 0 deletions lib/utils/get-role.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ function getRole(context, node) {
const explicitRole = getLiteralPropValue(getProp(node.attributes, 'role'))
if (explicitRole) {
return explicitRole
} else if (getProp(node.attributes, 'role')) {
// If role is set to anything other than a literal prop
return undefined
}

// Assemble a key for looking-up the element’s role in the `elementRolesMap`
Expand Down
12 changes: 12 additions & 0 deletions tests/a11y-role-supports-aria-props.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,18 @@ function getErrorMessage(attribute, role) {

ruleTester.run('a11y-role-supports-aria-props', rule, {
valid: [
{
code: `
<div
id={id}
role={
sectionHasHeader && rowIndex.row === 0 ? 'presentation' : 'option'
}
aria-label={this.props.ariaLabel}
>
{children}
</div>`,
},
{code: '<Foo bar />'},
{code: '<div />'},
{code: '<div id="main" />'},
Expand Down
4 changes: 2 additions & 2 deletions tests/utils/get-role.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ describe('getRole', function () {
})

it('returns undefined when role is set to non-literal expression', function () {
// <Box role={isNavigationOpen ? 'generic' : 'navigation'} />
const node = mockJSXOpeningElement('Box', [
// <div role={isNavigationOpen ? 'generic' : 'navigation'} />
const node = mockJSXOpeningElement('div', [
mockJSXConditionalAttribute('role', 'isNavigationOpen', 'generic', 'navigation'),
])
expect(getRole({}, node)).to.equal(undefined)
Expand Down

0 comments on commit d5591b7

Please sign in to comment.