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

Share this project:

Updates