UNPKG

@jsxtools/eslint-plugin-jsx-a11y

Version:

Static AST checker for accessibility rules on JSX elements for flat ESLint Config.

34 lines (31 loc) 1.14 kB
import { getPropValue, getProp } from '../util/module/jsx-ast-utils.js'; import getElementType from '../util/getElementType.js'; import isFocusable from '../util/isFocusable.js'; import { generateObjSchema } from '../util/schemas.js'; const schema = generateObjSchema(); const ruleOfNoAriaHiddenOnFocusable = { meta: { docs: { url: "https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/tree/HEAD/docs/rules/no-aria-hidden-on-focusable.md", description: 'Disallow `aria-hidden="true"` from being set on focusable elements.' }, schema: [schema] }, create(context) { const elementType = getElementType(context); return { JSXOpeningElement(node) { const { attributes } = node; const type = elementType(node); const isAriaHidden = getPropValue(getProp(attributes, "aria-hidden")) === true; if (isAriaHidden && isFocusable(type, attributes)) { context.report({ node, message: 'aria-hidden="true" must not be set on focusable elements.' }); } } }; } }; export { ruleOfNoAriaHiddenOnFocusable as default };