UNPKG

@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
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 };