- Home
- Port Scanner Software
- eslint-plugin-jsx-a11y
eslint-plugin-jsx-a11y
What it is
eslint-plugin-jsx-a11y is a free, MIT-licensed package that statically checks JSX in React apps for accessibility issues. It integrates with ESLint and offers recommended and strict configurations, including setup for legacy .eslintrc and flat eslint.config.js files. Its rules cover alternative text, ARIA properties and roles, labels, keyboard access, and captions for audio and video. For example, rules can flag clickable non-interactive elements without keyboard event listeners, as well as interactive handlers on elements that are not focusable. Users can map custom component names to DOM element types and map DOM attributes to JSX properties for checking. The plugin also supports an optional polymorphicPropName setting, though its documentation warns that polymorphic components can make code harder to maintain. Installation instructions cover npm and Yarn, and ESLint must also be installed. Static analysis does not assess the rendered DOM; the maintainers recommend pairing the plugin with @axe-core/react and testing with assistive technology. The repository links to Tidelift for professional support.
For and against
For
- Offers recommended and strict ESLint configurations.
- Checks ARIA, labels, keyboard access, and media captions.
- Can map custom components for rule checking.
- Supports npm and Yarn installation.
Against
- Checks static code, not the rendered DOM.
- ESLint must also be installed.
- No manual review tools or mobile testing.
The verdict
eslint-plugin-jsx-a11y can flag a range of accessibility concerns while developers work in JSX. Its static checks are only one part of review; the maintainers recommend rendered-DOM and assistive technology testing as well.
Who it suits
This plugin suits React developers who use ESLint and want static accessibility checks in JSX. It can be part of a broader review that also covers rendered DOM behavior and assistive technology.
Plans and prices
MIT-licensed open-source package
Static JSX code analysis
Read 9 Oct 2026 · github.com
On the record
- Accessibility rules
- Its documented rules cover topics including alternative text, ARIA properties and roles, keyboard access, labels, and captions for audio and video.github.com · read 10 Oct 2026
- ARIA checks
- Its rules check ARIA properties, values, roles, and role requirements.github.com · read 9 Oct 2026
- Automated scans
- Yesgithub.com · read 23 Sep 2026
- Browser extension
- Nogithub.com · read 23 Sep 2026
- Configuration
- Users can map custom components to DOM element types and map DOM attributes to JSX properties for checking.github.com · read 9 Oct 2026
- Configurations
- The plugin provides recommended and strict shareable configurations, including flat-config variants.github.com · read 10 Oct 2026
- Custom components
- Configuration can map custom component names to DOM element types so the plugin can check those components.github.com · read 10 Oct 2026
- ESLint dependency
- The installation instructions say to install ESLint before installing the plugin.github.com · read 10 Oct 2026
- ESLint integration
- The README documents legacy .eslintrc and flat eslint.config.js setup.github.com · read 9 Oct 2026
- Integrations
- The README includes instructions for installation through eslint-config-airbnb and recommends using @axe-core/react to test rendered DOM accessibility.github.com · read 10 Oct 2026
- Keyboard access checks
- Rules flag clickable non-interactive elements without keyboard event listeners and interactive handlers on elements that are not focusable.github.com · read 9 Oct 2026
- License
- The repository states that eslint-plugin-jsx-a11y is licensed under the MIT License.github.com · read 10 Oct 2026
- Manual review tools
- Nogithub.com · read 23 Sep 2026
- Media accessibility
- A rule enforces captions by requiring a track for audio and video elements.github.com · read 9 Oct 2026
- Mobile testing
- Nogithub.com · read 23 Sep 2026
- Package installation
- The README provides npm and Yarn commands to install the plugin as a development dependency.github.com · read 10 Oct 2026
- Package managers
- Installation instructions are provided for npm and Yarn, and ESLint must also be installed.github.com · read 9 Oct 2026
- 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.github.com · read 10 Oct 2026