Free Accessibility Checkers and Testing Tools
Free Browser Extensions for Accessibility Scanning
axe DevTools (Free) is the most widely used accessibility browser extension. It adds an "axe DevTools" panel to Chrome, Firefox, and Edge developer tools. Click "Scan ALL of my page" to run axe-core's full automated rule set against the rendered page. Results are grouped by severity (critical, serious, moderate, minor), and each violation includes the WCAG criterion, the affected HTML element, and a link to remediation documentation. The free version runs every automated check axe-core supports with no limitations on scans per day or violations displayed. The paid version adds guided manual testing workflows, but the free version's automated scanning is identical to the paid tier.
WAVE (Free) by WebAIM overlays accessibility information directly onto the page rather than listing violations in a separate panel. Install the WAVE extension for Chrome, Firefox, or Edge, navigate to a page, and click the WAVE icon. Error icons, alert icons, and feature icons appear next to the elements they describe, providing immediate spatial context for each finding. WAVE also visualizes page structure by outlining headings, landmarks, and ARIA regions, making semantic structure visible. The browser extension is completely free with no feature restrictions. The standalone WAVE web tool at wave.webaim.org is also free for individual page evaluations.
Lighthouse is built into Chrome DevTools, so there is nothing to install. Open DevTools, navigate to the Lighthouse tab, check the "Accessibility" category, and run the audit. Lighthouse produces a 0-100 accessibility score and lists specific violations with impact ratings. The accessibility audit is powered by a subset of axe-core rules, so it catches fewer issues than running axe DevTools directly, but it provides a convenient quick check alongside performance, SEO, and best practices scores. Lighthouse is also available as a Node.js CLI (npm install -g lighthouse) for scripted testing.
IBM Equal Access Accessibility Checker is a free browser extension for Chrome and Firefox, developed by IBM. It uses IBM's own accessibility rule engine (which differs from axe-core's rules) and tests against WCAG 2.1, WCAG 2.2, and IBM's internal accessibility guidelines. Running IBM's checker alongside axe DevTools catches issues that each tool's unique rule set detects, providing broader coverage than either tool alone. The extension also includes a keyboard checker mode that visualizes tab order and focus management.
HeadingsMap is a simple, focused free extension for Chrome and Firefox that displays the heading structure of the current page in a sidebar panel. It shows every heading element (h1 through h6), its level, its text content, and whether the hierarchy has errors like skipped levels or multiple h1 elements. This narrow focus makes HeadingsMap faster and clearer than general-purpose tools when you specifically need to verify heading structure, which is one of the most common accessibility failures on the web.
Free Command-Line and CI/CD Tools
Pa11y is an open-source command-line accessibility testing tool that runs HTML_CodeSniffer or axe-core against web pages. Install it globally with npm install -g pa11y, then run pa11y followed by a URL to scan that page and see violations in the terminal. Pa11y outputs results in multiple formats: CLI (human-readable terminal output), JSON (for programmatic processing), CSV (for spreadsheet analysis), and HTML (for shareable reports). It supports configuring the WCAG level (--standard WCAG2AA), the runner engine (--runner axe or --runner htmlcs), and pre-scan actions like clicking, typing, and waiting.
pa11y-ci extends Pa11y for continuous integration by scanning multiple URLs from a configuration file. Create a .pa11yci JSON file listing your site's URLs with per-URL thresholds and global settings, then run pa11y-ci as a build step. It scans all listed URLs concurrently, reports violations, and exits with a non-zero status code if any page exceeds its threshold. This makes pa11y-ci a direct replacement for custom accessibility check scripts in Jenkins, GitHub Actions, GitLab CI, or any CI platform that runs npm scripts.
Lighthouse CI is Google's open-source solution for running Lighthouse audits in CI/CD pipelines. Install @lhci/cli, configure it with a lighthouserc.js file, and add lhci autorun to your CI script. Lighthouse CI runs accessibility (and performance, SEO, best practices) audits, compares results against configured assertions, and fails the build if scores drop below thresholds. The LHCI Server stores historical results and displays trend graphs, showing whether your accessibility score is improving or degrading over time.
axe-core itself is a free npm package (npm install axe-core) that you can use directly in any Node.js script. Import it, inject it into a browser page via Puppeteer, Playwright, or Selenium, run axe.run(), and process the results. This gives you maximum control over how and when accessibility checks execute, at the cost of writing more integration code than Pa11y or the framework-specific packages provide.
Free Testing Framework Integrations
@axe-core/playwright is the official axe-core integration for Playwright, installable via npm install --save-dev @axe-core/playwright. It provides the AxeBuilder class that takes a Playwright Page object, injects axe-core, runs the analysis, and returns structured results. Add a few lines to any Playwright test to scan the page for accessibility violations and fail the test if any are found. Completely free, open source, and actively maintained by Deque Systems.
cypress-axe provides the same functionality for Cypress test suites. Install it with npm install --save-dev cypress-axe axe-core, import it in your support file, call cy.injectAxe() after cy.visit(), and cy.checkA11y() to scan. It supports the same configuration options as axe-core (rule inclusion/exclusion, element scoping, WCAG tag filtering) through the options parameter of cy.checkA11y(). Free and open source.
axe-webdriverjs integrates axe-core with Selenium WebDriver for Node.js. Install @axe-core/webdriverjs, create an AxeBuilder instance with your WebDriver driver object, call analyze(), and assert on violations. Java, Python, Ruby, and C# bindings are available through separate packages (axe-selenium-java, axe-selenium-python, etc.), all free and open source.
@axe-core/react runs axe-core during React development and logs violations to the browser console in real time as you work. It runs only in development mode, adding zero overhead to production builds. Import it in your application's entry point and call it after ReactDOM.createRoot(). Every time a component renders, axe-core evaluates it and logs any accessibility issues with the element reference, WCAG criterion, and fix suggestion. Free and open source.
Free Contrast Checkers
WebAIM Contrast Checker (webaim.org/resources/contrastchecker/) is the most referenced contrast checking tool on the web. Enter foreground and background hex color values, and it instantly calculates the contrast ratio, showing whether it passes WCAG AA (4.5:1 for normal text, 3:1 for large text) and AAA (7:1 for normal text, 4.5:1 for large text) thresholds. It provides a color slider to adjust colors until they meet the target ratio, making it easy to find accessible alternatives to failing color combinations.
Chrome DevTools includes a built-in contrast checker. Inspect any text element, and the color picker in the Styles panel displays the contrast ratio against its background. A green checkmark indicates WCAG AA compliance, an orange indicator shows AA Large compliance only, and red indicates failure. The picker also suggests alternative colors that meet the ratio threshold. This is the fastest way to check contrast during development because it requires no additional tools or browser tabs.
Colour Contrast Analyser (CCA) by TPGi is a free desktop application for Windows and macOS that includes an eyedropper tool for picking colors directly from any application on your screen, not just the browser. This makes CCA useful for checking contrast in design tools, desktop applications, and images where browser-based tools cannot reach. It evaluates against WCAG 2.1 contrast requirements and provides pass/fail results for both AA and AAA levels.
Free Screen Readers
NVDA (NonVisual Desktop Access) is the leading free screen reader for Windows. It is open source, actively maintained by NV Access, and used by a significant portion of screen reader users globally. NVDA pairs best with Firefox but also works well with Chrome and Edge. For accessibility testing, NVDA is the recommended free option because it is the screen reader most likely to be used by your actual visitors alongside JAWS (which is commercial). Download NVDA from nvaccess.org, install it, and use the NVDA key (Insert by default) combined with navigation shortcuts to browse web pages.
VoiceOver comes built into every Mac and every iPhone and iPad at no additional cost. On macOS, activate VoiceOver with Command+F5. On iOS, enable it in Settings under Accessibility. VoiceOver with Safari is the dominant screen reader combination for Apple users, and testing with it ensures your site works for the substantial portion of your audience using Apple devices. VoiceOver's keyboard shortcuts differ from NVDA's, so you will need to learn its specific navigation model (using VO keys, the rotor, and web rotor navigation).
ChromeVox is a free screen reader built into Chrome as an extension. It is primarily designed for ChromeOS but works in Chrome on any platform. ChromeVox is simpler than NVDA or VoiceOver and useful for quick screen reader checks during development, though it should not be your only screen reader for testing because its behavior differs from the screen readers your users actually use.
Orca is the free screen reader for Linux (GNOME desktop), pairing with Firefox. If your development environment is Linux-based, Orca provides screen reader testing without switching operating systems.
Free Color Blindness Simulators
Chrome DevTools includes a rendering emulation feature that simulates various types of color vision deficiency. Open DevTools, press Ctrl+Shift+P (Cmd+Shift+P on Mac), type "rendering," select "Show Rendering," and scroll to the "Emulate vision deficiencies" dropdown. Options include protanopia (no red), deuteranopia (no green), tritanopia (no blue), and achromatopsia (no color). This lets you see your page as color-blind users see it, revealing cases where color is the sole indicator of meaning.
Stark is a browser extension (free tier available) for Chrome and Firefox that simulates eight types of color blindness directly on the page. It also includes contrast checking and generates side-by-side comparisons showing how the page appears under different color vision conditions. The free tier covers the core simulation features, with paid tiers adding design tool integrations and team collaboration features.
Building a Free Testing Workflow
Start with axe DevTools extension for manual page scanning during development. Run it on every page you build or modify, fix violations before committing code. Add @axe-core/playwright or cypress-axe to your test suite for automated regression prevention on every pull request. Add pa11y-ci to your CI pipeline as an additional gate that catches issues across key URLs. Use NVDA (Windows) or VoiceOver (Mac) to test keyboard navigation and screen reader experience on new features and after significant changes. Check color contrast with the WebAIM Contrast Checker or Chrome DevTools during design reviews.
This workflow costs nothing, catches the majority of common accessibility issues automatically, and provides manual coverage for the issues automation cannot detect. It will not replace a professional WCAG audit for compliance documentation purposes, but it will prevent most accessibility violations from reaching your users and dramatically reduce the number of findings when you do invest in a formal audit.
A complete accessibility testing workflow can be built entirely from free tools: axe DevTools for browser scanning, Pa11y for CI/CD, axe-core integrations for test frameworks, NVDA or VoiceOver for screen reader testing, and WebAIM or Chrome DevTools for contrast checking.