WebAble is an open-source accessibility analysis tool designed to evaluate the accessibility of websites and web applications. It helps developers identify accessibility issues and improve compliance with WCAG standards, ensuring that digital content is usable by everyone — including people with disabilities.
The platform automatically scans websites and generates detailed accessibility reports, enabling developers to quickly detect and fix issues affecting usability.
Millions of websites still fail to meet accessibility standards, making them difficult or impossible to use for people with disabilities. Developers often lack tools that provide clear, actionable accessibility insights during development.
WebAble addresses this problem by providing:
- Automated accessibility testing
- Detailed issue reports
- Historical tracking of accessibility improvements
- Developer-friendly analysis tools
This helps teams build inclusive and accessible web applications.
WebAble performs automated accessibility testing using Lighthouse and axe-core to scan a given website and generate structured reports.
The system provides:
- Accessibility issue detection
- WCAG compliance insights
- Historical report tracking
- Dashboard visualization for accessibility improvements
Analyze any website using Lighthouse and axe-core to detect accessibility violations.
Generate comprehensive reports including:
- WCAG compliance
- Accessibility issue breakdown
- Severity levels
- Improvement suggestions
Store and review previous scan results to track accessibility improvements over time.
Users can manage or delete scan reports when required.
| Category | Technology |
|---|---|
| Frontend | React, TypeScript, Tailwind CSS |
| Backend | Flask (Python) |
| Database | MongoDB |
| Accessibility Tools | Lighthouse, axe-core |
-
Install dependencies:
npm install -
Start the development server:
npm run dev
-
Navigate to the backend directory:
cd backend -
Install Python requirements:
pip install -r requirements.txt -
Create a
.envfile
Inside the backend folder, create a .env file and add:
MONGO_URI=your_mongodb_connection_string
⚠️ Replace with your actual MongoDB Atlas connection string.
Make sure your MongoDB Atlas cluster is set up and your IP is whitelisted.
- Start the Flask server:
python app.py
- POST /api/scan - Initiate a website accessibility scan and saves result to MongoDB.
- GET /api/reports/:id - Fetches a scan report by either scan ID or URL.
- GET /api/reports - Get a list of all scan reports.
WebAble
│
├── backend/ # Flask backend and scanning services
│ ├── app.py
│ ├── server.js
│ ├── scan_service.js
│ └── requirements.txt
│
├── public/ # Static assets
│ └── Dashboard.png
│
├── src/ # Frontend source code
│ ├── components/
│ ├── hooks/
│ ├── pages/
│ ├── services/
│ ├── utils/
│ ├── App.tsx
│ └── main.tsx
│
├── index.html
├── package.json
└── README.md
We welcome contributions from the community!
git checkout -b feature-name
git commit -m "Add new feature"
git push origin feature-name
Contributors can help with:
-
Bug fixes
-
UI improvements
-
Accessibility rule enhancements
-
Performance optimizations
-
Documentation improvements
Harshika Rathod Project Maintainer and Developer of WebAble.
If you find this project useful, consider giving it a star ⭐ on GitHub to support the project and help others discover it.
