@jsxtools/eslint-plugin-jsx-a11y
Version:
Static AST checker for accessibility rules on JSX elements for flat ESLint Config.
24 lines (21 loc) • 895 B
JavaScript
import { roles as roles$1 } from 'aria-query';
import { getLiteralPropValue, getProp } from './module/jsx-ast-utils.js';
const roles = [...roles$1.keys()];
const interactiveRoles = roles.filter((name) => !roles$1.get(name).abstract && roles$1.get(name).superClass.some((klasses) => klasses.includes("widget")));
interactiveRoles.push("toolbar");
const isInteractiveRole = (tagName, attributes) => {
const value = getLiteralPropValue(getProp(attributes, "role"));
if (value === void 0 || value === null) {
return false;
}
let isInteractive = false;
const normalizedValues = String(value).toLowerCase().split(" ");
const validRoles = normalizedValues.flatMap(
(name) => roles.includes(name) ? [name] : []
);
if (validRoles.length > 0) {
isInteractive = interactiveRoles.includes(validRoles[0]);
}
return isInteractive;
};
export { isInteractiveRole as default };