Skip to content

axe-core

axe-core is the JavaScript rules engine you can add to a browser test. It reports detectable accessibility issues and items that need human review.

Visit axe-core

What does axe-core add to a test you already run?

Have a browser test open the intended page state, then run axe-core there. A dialog must be open if you want to check its contents. Keep a separate human check for whether the interaction makes sense and can be completed.

This is Deque’s open-source engine under the Mozilla Public License 2.0. It can power other tools. It is a library you integrate, while axe DevTools is an extension you open in a browser.

Which results need a person to look again?

A violation identifies a rule and affected elements. An incomplete result means the engine needs human review. Keep those findings separate so an uncertain item is not recorded as a pass.

Save the rule, affected element, page state and version with the result. The project documents limited support in simulated page environments. Use a real browser for a colour contrast check.

How can you tell that your test is checking the button you care about?

Plan two versions of a standalone mock panel with no real actions or connections. Use a browser test for your own sample only, or sketch both results if you do not have one.

  1. Choose a deliberate difference
    Draw an icon-only button with no name a screen reader can read. Next to it, draw a version with the same control named Close help.
  2. Check the specific rule
    Plan for the first version to produce a button-name violation. On the second version, expect that finding to clear. Inspect which control the result names before trusting the check.
  3. Check the remaining task
    With the corrected version, plan a separate keyboard pass that reaches the button and checks where focus goes when the panel closes.