That icon button has no label. That form has no error messages. AccessLint catches WCAG violations, missing ARIA, and keyboard traps before your users hit a wall.
Unlabeled buttons, missing form associations, keyboard traps, and broken ARIA litter production UIs. Every violation is a barrier for someone who depends on assistive technology. AccessLint finds them all before deploy.
Catches missing aria-labels, invalid ARIA roles, misused aria-hidden, and orphaned aria-describedby references across every component.
Detects divs masquerading as buttons, missing heading hierarchy, non-semantic landmarks, and improper use of interactive elements.
Finds keyboard traps, missing focus indicators, onClick handlers without keyboard equivalents, and non-focusable interactive elements.
Validates label associations, error message announcements, required field indicators, and fieldset/legend grouping for complex forms.
Checks color contrast ratios against WCAG AA/AAA, flags color-only information indicators, and validates focus-visible outlines.
Audits live regions, toast notifications, modal focus management, route change announcements, and dynamically injected content.
| Feature | axe-core | pa11y | WAVE | Lighthouse | eslint-plugin-jsx-a11y | AccessLint |
|---|---|---|---|---|---|---|
| Static analysis (no browser) | ✗ | ✗ | ✗ | ✗ | ✓ | ✓ |
| ARIA validation | ✓ | ✓ (partial) | ✓ | ✓ (partial) | ✓ (partial) | ✓ Full |
| Keyboard trap detection | ✓ (partial) | ✗ | ✗ | ✗ | ✗ | ✓ Full |
| Form accessibility | ✓ | ✓ | ✓ | ✓ (basic) | ✓ (partial) | ✓ Full |
| Pre-commit hooks | ✗ | ✗ | ✗ | ✗ | ✓ (via ESLint) | ✓ Native |
| WCAG 2.1 AA/AAA | ✓ AA | ✓ AA | ✓ AA | ✓ AA | ✗ | ✓ AA + AAA |
| SARIF output | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| Offline / local | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ |
Start scanning for free. Upgrade when your product demands compliance.
No spam. One email per week max. Unsubscribe anytime.
Install AccessLint in 30 seconds. Find every WCAG violation, missing label, and keyboard trap in your codebase.