How to Build Your Own axe-core
Replace axe-core with a custom build. Accessibility engine for automated Web UI testing
Build Difficulty: 5/5
Build a working replacement in a weekend with AI tools
Estimated Timeline
Based on 14 features at Weekend Project difficulty, expect about One weekend with AI-assisted development.
Recommended Tech Stack
Full-stack React framework with API routes and server components
PostgreSQL database, auth, and real-time subscriptions
Utility-first styling for rapid UI development
Key Features to Replicate
Top features across 8 categories. See all 14 features
Automation(2 features)
Finds on average 57% of WCAG issues automatically
Automatically determines which rules to run based on the evaluation context
Compatibility(2 features)
Works with Microsoft Edge v40+, Google Chrome v42+, Mozilla Firefox v38+, Apple Safari v7+, and Internet Explorer v11
Limited support for JSDOM with most rules compatible, though some like color-contrast have known limitations
Localization(2 features)
Supports multiple languages including Basque, Chinese (Simplified/Traditional), Danish, Dutch, French, German, Greek, Hebrew, Italian, Japanese, Korean, Norwegian, Polish, Portuguese (Brazilian), and Spanish
Allows locale to be applied at runtime by passing a locale object to axe.configure()
Testing(2 features)
Returns elements as 'incomplete' where manual review is needed for uncertain findings
Supports iframes of infinite depth and in-memory fixtures, static fixtures
Accuracy(1 features)
Designed to return zero false positives in accessibility findings
Best Practices(1 features)
Identifies common accessibility practices and gotchas like ensuring every page has an h1 heading and avoiding ignored ARIA attributes
Compliance(1 features)
Supports accessibility rules for WCAG 2.0, 2.1, 2.2 at levels A, AA, and AAA
Customization(1 features)
Highly configurable with ability to enable/disable rules and set custom configurations
Cost Calculator
Pricing data not available for axe-core. Check their website for current pricing.