CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/axe-a11y

Authors and runs axe-core accessibility scans - the most-deployed open-source a11y engine - via the `axe.run()` JavaScript API or the @axe-core/playwright / @axe-core/cli wrappers, parses the `violations[]` results into per-rule severity (critical / serious / moderate / minor), configures rule disable / disable-by-tag patterns, and emits JUnit-shaped output for CI gating. Use when the project ships UI tests in JavaScript / TypeScript and wants automated a11y coverage on every PR.

75

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

results-and-config.mdreferences/

axe-core results structure and rule configuration

Results structure

axe.run() resolves to an object with four arrays (axe-core):

FieldMeaning
violationsDefinite issues - block this in CI.
incompleteItems needing human review (axe couldn't determine).
passesSuccessful checks.
inapplicableRules that don't apply to this page.

Each violation has:

FieldMeaning
idRule ID (e.g. color-contrast, label, aria-required-attr).
impactcritical / serious / moderate / minor.
tagsIncludes wcag2a, wcag22aa, etc. - for severity-by-SC tagging.
descriptionOne-line explanation.
helpLonger remediation guidance.
helpUrlDirect link to Deque's rule documentation.
nodesArray of failing elements with target (selector), html, failureSummary.

Triage with jq:

# Top violations by impact
jq -r '.violations[] | "\(.impact): \(.id) - \(.description)"' axe-results.json

# Just the failing selectors per rule
jq -r '.violations[] | "\(.id):", (.nodes[].target | tostring)' axe-results.json

Rule configuration

By tags

axe ships rules tagged with conformance levels:

new AxeBuilder({ page }).withTags(['wcag2a', 'wcag2aa', 'wcag22aa'])

Common tag sets:

Tag setCoverage
['wcag2a', 'wcag2aa']WCAG 2.0/2.1 A + AA. Default for most teams.
['wcag2a', 'wcag2aa', 'wcag22aa']Adds WCAG 2.2 AA criteria.
['wcag2aaa']AAA-only (rarely the gate).
['best-practice']Non-WCAG good practices.
['experimental']Beta rules.

Disable specific rules

new AxeBuilder({ page }).disableRules(['color-contrast'])

For per-page disabling (e.g. a known false positive on a specific component):

new AxeBuilder({ page })
  .exclude('.legacy-component')   // selector exclusion
  .analyze();

For per-rule severity in CI gating (e.g. block on critical / serious only): handle in a11y-violation-gate using the impact field.

SKILL.md

tile.json