Skip to content
SPECIFICTION
Get listed

eslint-plugin-jsx-a11y

github.com

Free plan
Visit github.com
Spec score 8.4 #3 of 26 in Port Scanner Software

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

MIT-licensed open-source package Free Static JSX code analysis Read 9 Oct 2026 · github.com

Every eslint-plugin-jsx-a11y plan and price →

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

Alternatives to eslint-plugin-jsx-a11yAll alternatives →