Accessibility testing remains one of the most overlooked aspects of web development. The axe DevTools Chrome extension provides a practical solution for developers who want to catch accessibility issues directly in their browser. This guide covers everything you need to integrate automated accessibility testing into your workflow using this powerful tool.
What is axe DevTools?
The axe DevTools Chrome extension is an open-source accessibility testing tool developed by Deque Systems. It integrates directly into Chrome DevTools and scans your web pages against WCAG (Web Content Accessibility Guidelines) rules. Unlike manual accessibility audits, axe runs automated tests that identify common issues such as missing alt text, improper heading structure, color contrast problems, and keyboard navigation failures.
The extension uses the axe-core library, which is widely adopted across the accessibility testing ecosystem. You can find it in the Chrome Web Store or install it directly from the official GitHub repository.
Installing and Setting Up axe DevTools
Installing the extension takes less than a minute. Open Chrome and navigate to the axe DevTools page in the Chrome Web Store. Click “Add to Chrome” and confirm the permissions. Once installed, you will see an axe icon in your browser toolbar.
To access axe DevTools, open Chrome DevTools (F12 or right-click → Inspect) and look for the “Accessibility” tab. The axe panel displays scan results, allowing you to filter issues by severity, WCAG level (A, AA, AAA), and impact category.
Running Your First Accessibility Scan
Navigate to any webpage you want to test and open the Accessibility tab in DevTools. Click the “Analyze” button to start the scan. Within seconds, axe displays a list of issues found on the page.
Each issue includes several key pieces of information:
- Rule: The specific accessibility rule that was violated
- Impact: How severely the issue affects users (critical, serious, moderate, minor)
- Description: What the rule requires for compliance
- HTML: The specific element causing the issue
- Fix: Suggested remediation steps
For example, a common issue you will encounter is missing alt text on images. The axe report shows the exact <img> tag lacking the alt attribute and provides guidance on how to add descriptive alternative text.
Understanding Scan Results
The axe extension categorizes issues by their impact on users with disabilities. Critical and serious issues typically fail WCAG Level A and AA compliance and should be addressed immediately. Moderate and minor issues affect the user experience but may not block compliance.
Here is a practical example of what your scan results might reveal:
<!-- Issue: Image missing alt text -->
<img src="hero-image.jpg" />
<!-- Fix: Add descriptive alt text -->
<img src="hero-image.jpg" alt="Developer working on code in modern office" />
The extension also highlights passing tests, showing you what is already working correctly on your page. This positive feedback helps maintain accessibility momentum across your project.
Integrating axe Into Your Development Workflow
For teams committed to accessibility, integrating axe into continuous integration pipelines provides the greatest value. You can run axe-core programmatically as part of your test suite:
const { AxePuppeteer } = require('@axe-core/puppeteer');
const puppeteer = require('puppeteer');
async function runAccessibilityTest() {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const results = await new AxePuppeteer(page).analyze();
console.log(`Found ${results.violations.length} accessibility violations`);
results.violations.forEach(violation => {
console.log(`- ${violation.id}: ${violation.description}`);
});
await browser.close();
}
runAccessibilityTest();
This script launches a headless browser, loads your page, runs the axe analysis, and outputs all violations. You can extend this pattern to fail builds when critical accessibility issues are detected.
Common Accessibility Issues Detected
The axe library checks for over 100 different accessibility rules. Understanding the most frequent issues helps you prioritize fixes effectively.
Color Contrast: Text must maintain a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text. Axe flags any text elements that fail this requirement.
/* Failing contrast */
.secondary-text {
color: #999999;
background-color: #ffffff;
}
/* Passing contrast */
.secondary-text {
color: #595959;
background-color: #ffffff;
}
Heading Structure: Pages must use proper heading levels (h1 → h2 → h3) without skipping levels. Axe verifies that your heading hierarchy makes sense.
Keyboard Accessibility: All interactive elements must be reachable and operable via keyboard. Axe checks for proper focus management and tab order.
ARIA Labels: Interactive elements with visual labels must have corresponding ARIA attributes for screen reader users.
Using axe With Framework Applications
Modern JavaScript frameworks present unique accessibility testing challenges. Single-page applications often render content dynamically, meaning you need to test after the page fully loads.
For React applications, you can use axe-core directly in your component tests:
import { render, screen } from '@testing-library/react';
import { axe, toHaveNoViolations } from 'jest-axe';
import MyComponent from './MyComponent';
expect.extend(toHaveViolations);
test('should have no accessibility violations', async () => {
const { container } = render(<MyComponent />);
const results = await axe(container);
expect(results).toHaveNoViolations();
});
This test runs axe automatically whenever your component renders, catching issues during development rather than after deployment.
Best Practices for Accessibility Testing
-
Test early and often: Run axe scans during development, not just before release. Catching issues early reduces remediation cost significantly.
-
Prioritize by impact: Focus on critical and serious violations first. These directly prevent users with disabilities from accessing your content.
-
Verify fixes manually: Automated tests catch approximately 30-40% of accessibility issues. Always supplement axe results with manual testing using screen readers and keyboard-only navigation.
-
Set up CI automation: Integrate accessibility testing into your pull request checks. Several axe packages support popular CI platforms.
-
Track progress over time: Record axe scan results to identify trends. Accessibility debt accumulates quickly if left unchecked.
Advanced Configuration
You can customize axe to match your project’s specific requirements. The extension allows you to configure which rules to run, which elements to exclude, and which WCAG levels to target.
For example, to run only color contrast checks:
const results = await new AxePuppeteer(page)
.withRules(['color-contrast'])
.analyze();
To exclude certain elements from scanning:
const results = await new AxePuppeteer(page)
.exclude('#advertisement')
.analyze();
This flexibility makes axe suitable for projects with varying accessibility requirements.
Conclusion
The axe DevTools Chrome extension transforms accessibility testing from a manual, time-consuming process into an automated workflow element. By catching issues during development, you build more inclusive applications without slowing down your team.
Start by installing the extension and running scans on your current projects. Address the critical and serious violations first, then gradually expand your testing coverage. Over time, accessibility becomes a natural part of your development process rather than an afterthought.
Related Reading
- Claude Code for Beginners: Complete Getting Started Guide
- Best Claude Skills for Developers in 2026
- Claude Skills Guides Hub
Built by theluckystrike — More at zovo.one