Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. ESLint
  3. JSX a11y

JSX a11y

MITJavaScriptv6.10.2

An ESLint plugin that statically analyzes JSX to enforce accessibility (a11y) rules in React applications.

GitHubGitHub
3.6k stars644 forks0 contributors

What is JSX a11y?

eslint-plugin-jsx-a11y is an ESLint plugin that statically analyzes JSX code to enforce accessibility rules. It helps developers identify and fix common accessibility issues in React applications during development, such as missing alt text, improper ARIA usage, and keyboard navigation problems. The plugin integrates directly into the ESLint workflow, providing immediate feedback as code is written.

Target Audience

Frontend developers and teams building React applications who need to ensure their UIs are accessible to users with disabilities. It's particularly valuable for projects with strict accessibility requirements or those following compliance standards like WCAG.

Value Proposition

Developers choose eslint-plugin-jsx-a11y because it provides a comprehensive, configurable set of accessibility rules specifically for JSX, integrates seamlessly with ESLint, and catches issues early in the development cycle. Its static analysis approach is fast and doesn't require running the application, making it ideal for CI/CD pipelines and pre-commit hooks.

Overview

Static AST checker for a11y rules on JSX elements.

Use Cases

Best For

  • Enforcing accessibility standards in React codebases during development
  • Catching missing alt text, ARIA attributes, and semantic HTML violations in JSX
  • Integrating a11y checks into CI/CD pipelines and pre-commit hooks
  • Educating developers on common accessibility pitfalls in React
  • Maintaining consistent accessibility practices across large React teams
  • Preventing runtime accessibility errors through static analysis

Not Ideal For

  • Projects primarily using non-JSX frameworks like Vue or Svelte with their own accessibility linting
  • Applications where dynamic, runtime accessibility issues are the main concern, as it only performs static analysis
  • Teams with highly abstracted component libraries unwilling to configure custom mappings for accurate linting
  • Environments where ESLint integration is prohibited or not feasible due to legacy toolchains

Pros & Cons

Pros

Comprehensive Rule Coverage

Offers over 40 rules targeting ARIA attributes, semantic HTML, and keyboard navigation, as detailed in the README's rule table, ensuring wide accessibility checks.

Early Static Detection

Uses AST analysis to flag issues during development without running code, promoting faster fixes and reducing runtime errors.

Flexible Configuration

Supports both 'recommended' and 'strict' presets for easy adoption, plus custom component and polymorphic prop mapping for tailored setups.

Modern Tool Compatibility

Works with legacy .eslintrc and modern flat config (eslint.config.js) formats, ensuring integration with current ESLint ecosystems.

Cons

Static Analysis Blind Spots

Cannot detect runtime accessibility problems like dynamic content changes or focus management, necessitating additional tools like @axe-core/react as noted in the README.

Polymorphic Component Complexity

Configuration for polymorphic components (e.g., 'as' prop) adds overhead and can make code harder to maintain, with the README cautioning about this trade-off.

Ecosystem Dependency

Relies entirely on ESLint and JSX; projects without these or using alternative linters may find integration cumbersome or irrelevant.

Frequently Asked Questions

Quick Stats

Stars3,583
Forks644
Contributors0
Open Issues110
Last commit5 months ago
CreatedSince 2016

Tags

#hacktoberfest#aria#a11y#accessibility#frontend#eslint-plugin#web-development#eslint#react#linting#static-analysis#jsx

Built With

J
JavaScript
E
ESLint

Included in

ESLint4.7k
Auto-fetched 1 day ago

Related Projects

React HooksReact Hooks

The library for web and native user interfaces.

Stars245,673
Forks51,145
Last commit2 days ago
MeteorMeteor

Meteor, the JavaScript App Platform

Stars44,779
Forks5,251
Last commit3 days ago
ReactReact

React-specific linting rules for ESLint

Stars9,287
Forks2,735
Last commit26 days ago
VueJSVueJS

Official ESLint plugin for Vue.js

Stars4,595
Forks712
Last commit5 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub