Skip to content

Commit c7d56a9

Browse files
author
Ethan Cohen
committed
Handle list of roles for valid-aria-role.
1 parent bd894e4 commit c7d56a9

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/rules/valid-aria-role.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,11 @@ module.exports = context => ({
4747
}
4848

4949
// If value is a literal.
50-
const normalizedValue = attribute.value.value.toUpperCase();
51-
const isValid = validRoleTypes.indexOf(normalizedValue) > -1;
50+
const normalizedValues = attribute.value.value.toUpperCase().split(" ");
51+
const isValid = normalizedValues.every(value => validRoleTypes.indexOf(value) > -1);
5252

5353
if (isValid === false) {
54-
context.report({
55-
node: attribute,
56-
message: errorMessage
57-
});
54+
report(context, attribute);
5855
}
5956
}
6057
});

tests/src/rules/valid-aria-role.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,16 @@ ruleTester.run('valid-aria-role', rule, {
4646
{ code: '<div role={role} />', parserOptions },
4747
{ code: '<div role={role || "button"} />', parserOptions },
4848
{ code: '<div role={role || "foobar"} />', parserOptions },
49+
{ code: '<div role="tabpanel row" />', parserOptions },
4950
{ code: '<Bar baz />', parserOptions }
5051
].concat(basicValidityTests),
5152
invalid: [
5253
{ code: '<div role="foobar" />', errors: [ errorMessage ], parserOptions },
5354
{ code: '<div role="datepicker"></div>', errors: [ errorMessage ], parserOptions },
5455
{ code: '<div role="range"></div>', errors: [ errorMessage ], parserOptions },
5556
{ code: '<div role=""></div>', errors: [ errorMessage ], parserOptions },
57+
{ code: '<div role="tabpanel row foobar"></div>', errors: [ errorMessage ], parserOptions },
58+
{ code: '<div role="tabpanel row range"></div>', errors: [ errorMessage ], parserOptions },
5659
{ code: '<div role={undefined}></div>', errors: [ errorMessage ], parserOptions },
5760
{ code: '<div role />', errors: [ errorMessage ], parserOptions },
5861
{ code: '<div role={null}></div>', errors: [ errorMessage ], parserOptions }

0 commit comments

Comments
 (0)