Inspiration
Over 1.6 billion people live with a disability. Yet 96% of websites fail WCAG accessibility standards. Most developers want to build accessible sites, but existing tools are expensive, complex, or require technical expertise. I wanted to build something that makes accessibility checking as simple as typing a URL.
What it does
AccessScan is a web accessibility scanner that checks any website against 20 WCAG 2.1 rules in seconds. Key features:
- Single Page Scan — Enter any URL, get an instant score with detailed issue breakdown
- Live Preview Highlighting — Click any issue to highlight the exact element on the page with a red box and dark overlay
- Batch Scan — Scan up to 20 pages at once with automatic sitemap discovery and multi-proxy fetching
- HTML Paste Mode — For JavaScript-rendered or bot-protected pages
- Scan History & Favorites — Persistent tracking with localStorage
- Activity Heatmap — GitHub-style contribution graph
- PDF Export — Printable accessibility reports with fix recommendations
How I built it
- React 18 + TypeScript (strict mode) for type-safe component architecture
- Tailwind CSS for consistent design with dark/light themes
- Vite 5 for fast builds
- Vercel Serverless Functions for API proxy
- localStorage for all data persistence — no backend database needed The accessibility engine is entirely custom-built. The 20 WCAG rules are independent functions that evaluate a parsed DOM document. The multi-proxy fetch strategy uses 7 fallback layers to reliably crawl sites with strict CORS policies. Zero external accessibility libraries were used.
Challenges I ran into
- CORS restrictions — Solved with a 7-layer proxy fallback strategy
- Sites without sitemaps — Built homepage link extraction as a last resort for batch scanning
- Iframe highlight positioning — Fixed overlay rendering inside transformed/scaled iframes
- Data persistence across clearing history — Separated activity logs and score history into independent localStorage keys
Accomplishments that I'm proud of
- 20 WCAG rules built entirely from scratch, zero dependencies
- The live preview highlight system — clicking an issue visually pinpoints the exact element
- Batch scanning that works even on sites without sitemaps
- Clean, professional UI that's accessible itself
What I learned
- WCAG 2.1 is far more detailed than most people realize — 20 rules barely scratches the surface
- CORS proxy reliability varies wildly; having multiple fallbacks is essential
- Building accessibility tools forces you to make your own tool accessible
What's next
- Expand to 50+ WCAG 2.2 rules
- Automated fix suggestions with one-click code corrections
- Browser extension for real-time scanning
- CI/CD integration for continuous monitoring
Built With
- css
- react
- tailwind
- typescript
- vercel
- vite
Log in or sign up for Devpost to join the conversation.