About this project
axe-core is an accessibility testing engine for websites and other HTML-based user interfaces. It is designed to be fast, lightweight and to integrate with existing test environments so accessibility checks can run alongside regular functional testing.
Rules and coverage
The engine implements rules for WCAG 2.0, 2.1 and 2.2 at levels A, AA and AAA, along with best-practice checks such as ensuring a page has an h1 heading and avoiding common ARIA pitfalls. The project states that axe-core can find on average 57% of WCAG issues automatically, and it returns elements as "incomplete" when it cannot be certain, indicating that manual review is needed. A full rule list grouped by WCAG level and best practice is provided in the repository documentation.
Getting started
Install the package with npm or pnpm as a development dependency, include axe.min.js in each iframe of the fixtures or test system, and call axe.run() at points where new UI becomes visible. The promise resolves with results; violations can be inspected and used to fail a test. The API package consists of axe.js and a minified axe.min.js.
Philosophy and integration
The project's stated philosophy is that automated accessibility testing saves time, requires no special expertise, and lets teams focus expert resources on issues that need them. Axe is intended to work with modern browsers, tools and testing environments, and to be configurable. It supports in-memory fixtures, static fixtures, integration tests and nested iframes, and automatically determines which rules to run based on the evaluation context. The project claims zero false positives aside from bugs.
Browser support
The API fully supports Microsoft Edge v40+, Google Chrome v42+, Mozilla Firefox v38+, Apple Safari v7+ and Internet Explorer v11 (deprecated). Only Chrome and Firefox are tested on every pull request. JSDOM support is limited; the color-contrast rule is known not to work there. Environments must natively support required features or polyfill them correctly; the deprecated v0 Shadow DOM implementation is not supported.
Localization
Axe can be built for a local language by adding a locale JSON file to the locales directory and building with a --lang flag, or with --all-lang for all locales. Translations can be generated with a translate script and applied at runtime through axe.configure() with a locale object. Community-contributed locales include Azerbaijani, Basque, Simplified and Traditional Chinese, Danish, Dutch, French, German, Greek, Hebrew, Italian, Japanese, Korean, Norwegian Bokmål, Polish, Brazilian Portuguese, Spanish and Swedish; completeness is not guaranteed.
Releases and security
New minor releases appear every three to five months, usually adding rules and features. Security updates are provided for minor version lines up to 18 months old. Documentation covers release and support policy and backward compatibility.
Licensing and community
Axe-core is distributed under the Mozilla Public License 2.0 and bundles third-party dependencies under their own terms. It is actively supported by Deque Systems, a major accessibility vendor. The repository includes guides for proposing rules, architecture and contributing, plus a list of projects using axe-core. Trademark usage is governed by Deque's trademark policy.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.