Skip to content
PluginStats

eslint-plugin-jsx-a11y weekly downloads statistics

By jsx-eslint (2 listings) · npm · ESLint plugins

Static AST checker for accessibility rules on JSX elements.

View on npm Stale · Oct 18, 2026

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.

Weekly downloads
31,062,204
Official API · Oct 18, 2026
7-day growth
-38.7%
-19.6M weekly downloads
30-day growth
-26.4%
-11.1M weekly downloads
90-day growth
-23.8%
-9.7M weekly downloads
Rank
#20
Among tracked npm listings

About eslint-plugin-jsx-a11y

<p align="center"> <a href="https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/actions"> <img src="https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/jsx-eslint/eslint-plugin-jsx-a11y" alt="CI status" /> </a> <a href="https://npmjs.org/package/eslint-plugin-jsx-a11y"> <img src="https://img.shields.io/npm/v/eslint-plugin-jsx-a11y.svg" alt="npm version"> </a> <a href="https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/HEAD/LICENSE.md"> <img src="https://img.shields.io/npm/l/eslint-plugin-jsx-a11y.svg" alt="license"> </a> <a href='https://coveralls.io/github/jsx-eslint/eslint-plugin-jsx-a11y?branch=master'> <img src='https://coveralls.io/repos/github/jsx-eslint/eslint-plugin-jsx-a11y/badge.svg?branch=master' alt='Coverage Status' /> </a> <a href='https://npmjs.org/package/eslint-plugin-jsx-a11y'> <img src='https://img.shields.io/npm/dt/eslint-plugin-jsx-a11y.svg' alt='Total npm downloads' /> </a> </p>

<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.

Mexican Spanish🇲🇽

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 .eslintrc configuration 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.recommended
  • flatConfigs.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

eslint-plugin-jsx-a11y weekly downloads on npm, last 90 days: 31,062,204 weekly downloads as of Oct 18, 2026, -23.8% over 90 days.eslint-plugin-jsx-a11yWeekly downloads on npm · Last 90 days31,062,204downloads / week-23.8% over 90 days20M25M30M35M40M45M50M55M60MJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 23, 2026 – Oct 18, 2026 · 88 observations · Updated Oc…pluginstats.com
eslint-plugin-jsx-a11y weekly downloads on npm, last 90 days: 31,062,204 weekly downloads as of Oct 18, 2026, -23.8% over 90 days.

7/30/90-day growth

eslint-plugin-jsx-a11y weekly downloads growth on npm: -38.7% over 7 days, -26.4% over 30 days, -23.8% over 90 days.eslint-plugin-jsx-a11yWeekly downloads growth on npm31,062,204downloads / week now7-day growth-19,618,427 weekly downl…-38.7%30-day growth-11,116,192 weekly downl…-26.4%90-day growth-9,678,780 weekly downlo…-23.8%Growth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
eslint-plugin-jsx-a11y weekly downloads growth on npm: -38.7% over 7 days, -26.4% over 30 days, -23.8% over 90 days.

Ranking history

eslint-plugin-jsx-a11y npm ranking history: currently #20 (by weekly downloads).eslint-plugin-jsx-a11ynpm ranking · by weekly downloads · Last 90 days#20current rank#5#10#15#20#25#30Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 17, 2026 – Oct 21, 2026 · 5 observations · Updated Oct 18, 2026pluginstats.com
eslint-plugin-jsx-a11y npm ranking history: currently #20 (by weekly downloads).

Listing placement

All npm2,389 listings · 120 pages · 1,196 shown · page 1, #20 (overall #20)
All npm: every listing in weekly downloads order

Listing placement

ESLint plugins258 listings · 13 pages · page 1, #8 (overall #8)
ESLint plugins: every listing in weekly downloads order

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)
Recent weekly downloads observations for eslint-plugin-jsx-a11y
Date (UTC)Weekly downloadsChange vs. previous
31,062,204+6.9M
24,164,401-5.6M
29,735,168+250.6K
29,484,570-10.3M
39,788,501-10.4M
50,165,4570
50,165,457-515.2K
50,680,631+72.3K
50,608,307+129.8K
50,478,509+358.5K
50,120,049+143.8K
49,976,283+428.4K
49,547,868-9.8M
59,317,554—

Similar npm ESLint plugins plugins

All 20 eslint-plugin-jsx-a11y alternatives

Data 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.