Skip to content

US1929/AccessCheck

Repository files navigation

AccessCheck

License: MIT Python 3.10+ React

AccessCheck is an AI-powered Web Accessibility Scanner designed to automate the detection of WCAG violations and provide intelligent, AI-driven remediation suggestions. It combines deterministic detection (Playwright + axe-core) with local LLM capabilities via LM Studio to ensure both accuracy and privacy.

✨ Features

  • Deterministic Scanning: Uses Playwright to navigate pages (handling SPAs and dynamic content) and axe-core for reliable WCAG 2.0/2.1/2.2 AA detection.
  • AI-Powered Remediation: Integrates with local LLMs (via LM Studio) to explain violations in plain language and provide copy-pasteable HTML/CSS fixes.
  • Visual Dashboard: A sleek, dark-mode React dashboard built with Vite, Tailwind CSS, Recharts, and Framer Motion.
  • Interactive Screenshots: Automatically captures full-page screenshots and draws clickable bounding boxes around elements that violate accessibility rules.
  • Local & Private: Your code and data never leave your machine when using local LLMs.
  • Role-based Filtering: Filter issues specifically for Developers, Designers, or Legal/Compliance teams.

📁 Repository Structure

  • backend/: FastAPI backend, Playwright scanning engine, LM Studio integration, and SQLite storage.
  • frontend/: React SaaS-style dashboard.

🚀 Quick Setup

1. Backend

cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Install Playwright browser dependencies
playwright install chromium

# Start the API server
uvicorn app.main:app --reload --port 8000

2. Frontend

cd frontend
npm install

# Start the dev server
npm run dev
  • Frontend: http://localhost:5173
  • Backend API: http://localhost:8000

⚙️ Environment Configuration

  1. Copy the example .env files:
    • cp backend/.env.example backend/.env
    • cp frontend/.env.example frontend/.env (if you need to change the API URL)
  2. Open backend/.env to configure your LM Studio URL and Model.

🤖 Recommended LM Studio Models (MacBook Pro M3, 16GB RAM)

For the best balance of speed and reasoning quality:

  1. Llama-3.1-8B-Instruct (4-bit / Q4_K_M): Great overall compromise.
  2. Mistral-7B-Instruct-v0.3 (4-bit / Q4_K_M): Fast and stable for HTML/JSX fixes.
  3. Qwen2.5-7B-Instruct (4-bit / Q4_K_M): Good reasoning for technical explanations.

Tip: Start with Llama-3.1-8B-Instruct Q4_K_M for this project.

🏗️ Architectural Notes (PoC)

This repository is currently a Proof of Concept (PoC):

  • Task Processing: Async jobs run in-process using FastAPI's asyncio.create_task.
  • Storage: Local SQLite database.
  • Guardrails: The LLM is used exclusively for remediation (/api/remediate). Detection is strictly handled by axe-core to prevent AI hallucinations in compliance reporting.

For enterprise production use, it is recommended to migrate to Celery + Redis + PostgreSQL.

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check out our CONTRIBUTING.md if you'd like to help improve AccessCheck.

📝 License

This project is MIT licensed.

About

AI-powered Web Accessibility Scanner with deterministic detection (axe-core) and local LLM remediation.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors