An automated tool for crawling websites and generating accessibility reports using axe-core and Selenium.
- Automated accessibility testing using axe-core
- Web crawling capabilities to navigate through sites
- Suppression of common/known accessibility issues
- Support for sites requiring authentication
- Special handling for Elevance client sites
- Resumable testing sessions
- Report generation for accessibility violations
- Python 3.6+
- Chrome or Firefox browser
- Download GitBash or Git for Windows from git-scm.com if you don't have it installed.
- For Linux/Mac users, ensure you have
gitinstalled via your package manager.
- For Linux/Mac users, ensure you have
- Clone this repository to your local machine github.docs:
git clone https://github.com/ahabegger/AccessibilityCrawler.git - Navigate to the cloned directory:
cd AccessibilityCrawler - Create a virtual environment:
python -m venv .venv .venv\Scripts\activate # Windows source .venv/bin/activate # Linux/Mac - Install dependencies:
pip install -r requirements.txt
Run the accessibility checker while in the cloned directory:
python AccessibilityChecker.py
This will:
- Open a GUI to enter credentials
- Log in to the target website
- Crawl through available pages
- Generate accessibility reports in an output directory
- Continue Session: Resume from a previous crawl session
- Elevance Client: Enable special handling for Elevance sites
- Suppress Known Issues: Filter out common accessibility issues
Reports are saved in timestamped directories with the format:
YYYY_MM_DD__HH_MM_SS_username_output/
selenium: For web automationaxe-selenium-python: For accessibility testingtkinter: For GUI elementsrequests: For HTTP requestsbeautifulsoup4: For HTML parsingwebdriver-manager: For managing WebDriver binaries
This project is secure for public distribution for several reasons:
- No hardcoded credentials: The application uses a GUI for credential input rather than storing any passwords or API keys in the codebase.
- Limited to authorized access: The crawler only accesses content that an authenticated user would normally be able to view.
- MHC data protection: All Mobile Health Consumer data remains protected behind authentication. The tool simply automates actions a manual tester would perform.
- Local report storage: All reports and screenshots are stored locally on the user's device, not uploaded to any external servers.
- Trusted dependencies: All dependencies are widely-used, trusted open-source libraries with regular security updates.
- No sensitive data extraction: The tool focuses solely on accessibility testing and doesn't extract or store user/patient information.
- Sanitized outputs: Report generation includes data sanitization to prevent security issues in output files.
Using this tool requires valid credentials for any protected system, ensuring that only authorized users can perform accessibility testing on secured environments.