diff --git a/src/rules/__tests__/role-has-required-aria-props.test.js b/src/rules/__tests__/role-has-required-aria-props.test.js
index a1937a50..578536d8 100644
--- a/src/rules/__tests__/role-has-required-aria-props.test.js
+++ b/src/rules/__tests__/role-has-required-aria-props.test.js
@@ -3,7 +3,9 @@ const makeRuleTester = require("./makeRuleTester");
makeRuleTester("role-has-required-aria-props", rule, {
valid: [
- ""
+ "",
+ "",
+ ""
],
invalid: [
{
diff --git a/src/rules/role-has-required-aria-props.js b/src/rules/role-has-required-aria-props.js
index 72ae0003..03914470 100644
--- a/src/rules/role-has-required-aria-props.js
+++ b/src/rules/role-has-required-aria-props.js
@@ -32,29 +32,37 @@ module.exports = {
return;
}
- roleValue
- .toLowerCase()
- .split(" ")
- .forEach((role) => {
- if (!roles.has(role)) {
- return;
- }
-
- const requiredAttributes = Object.keys(
- roles.get(role).requiredProps
- );
-
- if (!hasAttributes(node, requiredAttributes)) {
- context.report({
- node,
- messageId: "default",
- data: {
- role: role.toLowerCase(),
- attributes: requiredAttributes.join(", ").toLowerCase()
- }
- });
- }
- });
+ const isValid = (value) =>
+ value
+ .toLowerCase()
+ .split(" ")
+ .forEach((role) => {
+ if (!roles.has(role)) {
+ return;
+ }
+
+ const requiredAttributes = Object.keys(
+ roles.get(role).requiredProps
+ );
+
+ if (!hasAttributes(node, requiredAttributes)) {
+ context.report({
+ node,
+ messageId: "default",
+ data: {
+ role: role.toLowerCase(),
+ attributes: requiredAttributes.join(", ").toLowerCase()
+ }
+ });
+ }
+ });
+
+ if (typeof roleValue !== "string") {
+ // when it's a dynamic value ignore
+ return;
+ }
+
+ isValid(roleValue);
}
});
}