eslint-plugin-jsx-a11y weekly downloads statistics
By jsx-eslint (2 listings) · npm · ESLint plugins
Static AST checker for accessibility rules on JSX elements.
eslint-plugin-jsx-a11y has 31,062,204 recorded weekly downloads on npm, a decrease of 26.4% over the past 30 days, ranking #20 of 2,391 tracked listings.
About eslint-plugin-jsx-a11y
<a href='https://tidelift.com/subscription/pkg/npm-eslint-plugin-jsx-a11y?utm_source=npm-eslint-plugin-jsx-a11y&utm_medium=referral&utm_campaign=readme'>Get professional support for eslint-plugin-jsx-a11y on Tidelift</a>
eslint-plugin-jsx-a11y
Static AST checker for accessibility rules on JSX elements.
Read this in other languages.
Why?
This plugin does a static evaluation of the JSX to spot accessibility issues in React apps. Because it only catches errors in static code, use it in combination with @axe-core/react to test the accessibility of the rendered DOM. Consider these tools just as one step of a larger a11y testing process and always test your apps with assistive technology.
Installation
If you are installing this plugin via eslint-config-airbnb, please follow these instructions.
You'll first need to install ESLint:
# npm
npm install eslint --save-dev
# yarn
yarn add eslint --dev
Next, install eslint-plugin-jsx-a11y:
# npm
npm install eslint-plugin-jsx-a11y --save-dev
# yarn
yarn add eslint-plugin-jsx-a11y --dev
Note: If you installed ESLint globally (using the -g flag in npm, or the global prefix in yarn) then you must also install eslint-plugin-jsx-a11y globally.
<a id="usage"></a>
Usage - Legacy Config (.eslintrc)
Add jsx-a11y to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:
{
"plugins": ["jsx-a11y"]
}
Then configure the rules you want to use under the rules section.
{
"rules": {
"jsx-a11y/rule-name": 2
}
}
You can also enable all the recommended or strict rules at once.
Add plugin:jsx-a11y/recommended or plugin:jsx-a11y/strict in extends:
{
"extends": ["plugin:jsx-a11y/recommended"]
}
Configurations
As you are extending our configuration, you can omit
"plugins": ["jsx-a11y"]from your.eslintrcconfiguration file.
{
"settings": {
"jsx-a11y": {
"polymorphicPropName": "as",
"components": {
"CityInput": "input",
"CustomButton": "button",
"MyButton": "button",
"RoundButton": "button"
},
"attributes": {
"for": ["htmlFor", "for"]
}
}
}
}
Usage - Flat Config (eslint.config.js)
The default export of eslint-plugin-jsx-a11y is a plugin object.
const jsxA11y = require('eslint-plugin-jsx-a11y');
module.exports = [
…
{
files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'],
plugins: {
'jsx-a11y': jsxA11y,
},
languageOptions: {
parserOptions: {
ecmaFeatures: {
jsx: true,
},
},
},
rules: {
// ... any rules you want
'jsx-a11y/alt-text': 'error',
},
// ... others are omitted for brevity
},
…
];
Shareable Configs
There are two shareable configs, provided by the plugin.
flatConfigs.recommendedflatConfigs.strict
CJS
const jsxA11y = require('eslint-plugin-jsx-a11y');
export default [
jsxA11y.flatConfigs.recommended,
{
// Your additional configs and overrides
},
];
ESM
import jsxA11y from 'eslint-plugin-jsx-a11y';
export default [
jsxA11y.flatConfigs.recommended,
{
// Your additional configs and overrides
},
];
Note: Our shareable configs do NOT configure files or languageOptions.globals.
For most of the cases, you probably want to configure some of these properties yourself.
const jsxA11y = require('eslint-plugin-jsx-a11y');
const globals = require('globals');
module.exports = [
…
{
files: ['**/*.{js,mjs,cjs,jsx,mjsx,ts,tsx,mtsx}'],
...jsxA11y.flatConfigs.recommended,
languageOptions: {
...jsxA11y.flatConfigs.recommended.languageOptions,
globals: {
...globals.serviceworker,
...globals.browser,
},
},
},
…
];
Component Mapping
To enable your custom components to be checked as DOM elements, you can set global settings in your configuration file by mapping each custom component name to a DOM element type.
Attribute Mapping…
Description from the npm listing.
- eslint
- eslintplugin
- eslint-plugin
- a11y
- accessibility
- jsx
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (544)Similar npm ESLint plugins plugins
All 20 eslint-plugin-jsx-a11y alternativesData source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/eslint-plugin-jsx-a11y. First seen Oct 16, 2026; last successful collection Oct 21, 2026. See the methodology.