eslint-plugin-jsx-a11y
github.com
What it is
eslint-plugin-jsx-a11y is a free MIT-licensed package that uses ESLint to statically inspect JSX for accessibility issues in React applications. Its rules cover alternative text, ARIA properties, values, roles and requirements, labels, keyboard access, and captions for audio and video. It can flag clickable non-interactive elements without keyboard listeners and interactive handlers on elements that are not focusable. Recommended and strict configurations are documented for legacy .eslintrc files and flat eslint.config.js files. Configuration can map custom component names to DOM element types and DOM attributes to JSX properties, allowing those abstractions to be checked. An optional polymorphicPropName setting is supported, although the project warns that polymorphic components can be harder to maintain. Installation instructions cover npm and Yarn and require ESLint. The plugin analyzes static code rather than rendered DOM. Its maintainers recommend pairing it with @axe-core/react and assistive-technology testing. It has no manual review tools, mobile testing, browser extension, or remediation guidance. The repository links to Tidelift for professional support.
Spec sheet
- What it does
- The plugin statically evaluates JSX to spot accessibility issues in React apps.Read 9 Oct 2026 · github.com
- Purpose
- eslint-plugin-jsx-a11y statically checks JSX elements for accessibility issues in React apps.Read 10 Oct 2026 · github.com
- Free plan
- YesRead 23 Sep 2026 · github.com
- Integrations
- The README includes instructions for installation through eslint-config-airbnb and recommends using @axe-core/react to test rendered DOM accessibility.Read 10 Oct 2026 · github.com
- Support
- The repository links to Tidelift for professional support for eslint-plugin-jsx-a11y.Read 10 Oct 2026 · github.com
- License
- The repository states that eslint-plugin-jsx-a11y is licensed under the MIT License.Read 10 Oct 2026 · github.com
- Accessibility rules
- Its documented rules cover topics including alternative text, ARIA properties and roles, keyboard access, labels, and captions for audio and video.Read 10 Oct 2026 · github.com
- ARIA checks
- Its rules check ARIA properties, values, roles, and role requirements.Read 9 Oct 2026 · github.com
- Automated scans
- YesRead 23 Sep 2026 · github.com
- Browser extension
- NoRead 23 Sep 2026 · github.com
- Configuration
- Users can map custom components to DOM element types and map DOM attributes to JSX properties for checking.Read 9 Oct 2026 · github.com
- Configurations
- The plugin provides recommended and strict shareable configurations, including flat-config variants.Read 10 Oct 2026 · github.com
- Custom components
- Configuration can map custom component names to DOM element types so the plugin can check those components.Read 10 Oct 2026 · github.com
- ESLint dependency
- The installation instructions say to install ESLint before installing the plugin.Read 10 Oct 2026 · github.com
- ESLint integration
- The README documents legacy .eslintrc and flat eslint.config.js setup.Read 9 Oct 2026 · github.com
- Keyboard access checks
- Rules flag clickable non-interactive elements without keyboard event listeners and interactive handlers on elements that are not focusable.Read 9 Oct 2026 · github.com
- Manual review tools
- NoRead 23 Sep 2026 · github.com
- Media accessibility
- A rule enforces captions by requiring a track for audio and video elements.Read 9 Oct 2026 · github.com
- Mobile testing
- NoRead 23 Sep 2026 · github.com
- Package installation
- The README provides npm and Yarn commands to install the plugin as a development dependency.Read 10 Oct 2026 · github.com
- Package managers
- Installation instructions are provided for npm and Yarn, and ESLint must also be installed.Read 9 Oct 2026 · github.com
- Polymorphic components
- The plugin can use a configured prop, such as `as`, to determine the element type for rules requiring semantic context; the README cautions that polymorphic components can make code harder to maintain.Read 10 Oct 2026 · github.com
- Professional support
- The repository links to Tidelift for professional support for the package.Read 9 Oct 2026 · github.com
- Remediation guidance
- NoRead 23 Sep 2026 · github.com
- Rule configurations
- It provides recommended and strict rule configurations.Read 9 Oct 2026 · github.com
- Scope limit
- It catches issues in static code and recommends pairing it with @axe-core/react to test the rendered DOM and with assistive technology testing.Read 9 Oct 2026 · github.com
- Static analysis limit
- The plugin catches issues in static code, and its maintainers recommend also testing the rendered DOM and using assistive technology.Read 10 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Free MIT-licensed package
- Recommended and strict ESLint configurations
- Checks ARIA, keyboard, labels, captions, and alternative text
- Maps custom components and DOM attributes
- Supports npm and Yarn installation
Limits
- Checks static JSX, not rendered DOM
- No manual review or mobile testing tools
- No browser extension or remediation guidance
- ESLint must be installed separately
Who it suits
It suits React developers who want ESLint-based accessibility checks during JSX development. Teams needing rendered-DOM or assistive-technology coverage must add other testing.
Verdict
eslint-plugin-jsx-a11y provides focused static accessibility rules inside ESLint, with configurable component mappings and two configuration styles. Treat it as code-level checking and supplement it with rendered-DOM and assistive-technology testing.
Where Specifiction places it
- Port Scanner Software#3 of 268.4
- Website Accessibility Tools#70 of 1337.8
- Accessibility Testing Software#94 of 1697.8