Benchmarks

axe-core vs @accesslint/core, tested against 5,000 sites from the Chrome UX Report.

Speed

Median audit time across 4,498 successful site audits.

Chart

Bar chart with 2 bars.

Bar chart comparing median audit time across tools.

The chart has 1 X axis displaying categories.

The chart has 1 Y axis displaying Milliseconds. Data ranges from 53 to 656.

Created with Highcharts 11.4.8

Milliseconds 0 255 750 1000 1250 1500 1750 2000 2250 2500 2750 3000 3250 3500 3750 4000 4250 4500 4750 5000 5250 5500 5750 6000 6250 6500 6750 7000 7250 7500
Label axe-core @accesslint/core

End of interactive chart.

Coverage

What @accesslint/core detects and how often axe-core agrees. 87% of detections are confirmed by axe-core. Click a criterion to see examples.

WCAG Criterion @accesslint/core detects axe confirms @accesslint/core unique
4.1.2 Name, Role, Value 2,922 2,584 338
1.4.3 Contrast (Minimum) 2,793 2,339 454
2.4.4 Link Purpose (In Context) 2,047 2,006 41
1.1.1 Non-text Content 1,532 1,363 169
1.3.1 Info and Relationships 928 578 350
1.4.4 Resize Text 912 907 5
3.1.1 Language of Page 832 829 3
2.1.1 Keyboard 340 121 219

Chart

Bar chart with 2 data series.

Stacked bar chart showing @accesslint/core detections and confirmation by axe-core per WCAG criterion.

The chart has 1 X axis displaying categories.

The chart has 1 Y axis displaying Sites. Data ranges from 3 to 2922.

Created with Highcharts 11.4.8

Sites 0 100 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000
Label 4.1.2 Name, Role, Value 1.4.3 Contrast (Minimum) 2.4.4 Link Purpose (In Context) 1.1.1 Non-text Content 1.3.1 Info and Relationships 1.4.4 Resize Text 3.1.1 Language of Page 2.1.1 Keyboard

End of interactive chart.

Key findings

  • @accesslint/core is 12× faster than axe-core at median
  • 87% of @accesslint/core detections are confirmed by axe-core
  • Near-perfect agreement with axe-core on link-name, resize-text, and language-of-page

Methodology

  • Sample: 5,000 origins from the Chrome UX Report, seeded random sample
  • Runner: Chromium via Playwright, headless, on GitHub Actions (ubuntu-latest)
  • axe-core: default configuration (no custom rules enabled). Only violations are compared
  • @accesslint/core: latest, default configuration
  • Per-site timeout: 15 s (navigation + audit), 5 concurrent pages per shard, 20 shards
  • Source: accesslint/accesslint-bench

Last updated February 16, 2026