This project creates an automated accessibility testing framework using Python and Selenium that validates websites against WCAG 2.0 standards. The framework identifies common accessibility issues and generates comprehensive reports, demonstrating expertise in both automation and accessibility testing while maintaining a lean codebase.
accessibility-test-framework/
├── src/ # Source code
│ ├── core/ # Core functionality
│ │ ├── accessibility_scanner.py # Main scanner with axe integration
│ │ └── webdriver_manager.py # Browser driver handling
│ ├── pages/ # Page objects
│ │ ├── base_page.py # Base page object
│ │ └── accessibility_test_page.py # Extended page with manual checks
│ └── utils/ # Utilities
│ ├── report_utils.py # Reporting functionality
│ └── dashboard.py # Dashboard generator
├── tests/ # Test files
│ ├── config.py # Test configuration
│ ├── test_accessibility.py # Test cases
│ └── sites/ # Test site definitions
│ └── test_sites.py # Sample HTML with accessibility issues
├── reports/ # Generated reports and screenshots
├── .github/workflows/ # GitHub Actions configuration
├── requirements.txt # Dependencies
├── run_tests.py # Script to run tests
└── accessibility_cli.py # Command-line interface
- Set up project structure and Git repository
- Configure virtual environment
- Install dependencies and create requirements.txt
- Implement WebDriverManager for browser setup
- Create basic accessibility scanner with axe integration
Deliverable: Working project skeleton that can launch browsers
- Complete AccessibilityScanner implementation
- Create BasePage class with accessibility methods
- Implement test configuration
- Set up test sites for validation
- Create basic test cases for key WCAG criteria
Deliverable: Working scanner that evaluates accessibility on test pages
- Implement enhanced HTML reporting
- Complete test suite with all priority checks
- Add screenshots of violations to reports
- Finalize documentation with usage examples
- Create demo report for GitHub showcase
Deliverable: Complete framework ready for showcase
- Python 3.9+
- Selenium WebDriver 4.x
- pytest - Testing framework
- axe-selenium-python - Accessibility testing integration
- pytest-html - For reporting
- webdriver-manager - For driver management
-
accessibility_scanner.py (~100 lines)
- Integration with axe-core for automated scanning
- Methods to run various WCAG checks
- Results processing and formatting
-
base_page.py (~50 lines)
- Page Object Model implementation
- Common accessibility methods
- Navigation helpers
-
test_accessibility.py (~100 lines)
- Test cases for different WCAG criteria
- Parameterized tests for different sites
- Result validation
-
report_utils.py (~50 lines)
- HTML report customization
- Screenshot capture for violations
- Results formatting
-
Priority Checks (Implement First)
- Images with missing alt text (1.1.1)
- Color contrast issues (1.4.3)
- Form inputs without labels (3.3.2)
- Keyboard accessibility (2.1.1)
-
Secondary Checks (If Time Permits)
- Heading structure (1.3.1)
- ARIA attributes usage (4.1.2)
- Link purpose (2.4.4)
- Clear project description highlighting WCAG and Selenium
- Screenshot of an example report
- Simple setup instructions with commands
- Brief explanation of WCAG rules implemented
- Usage examples
- Clean, well-commented code (with docstrings)
- Proper error handling
- Type hints for better readability
- Implementation of design patterns (Page Object Model)
Success Criteria: A professional, folder-structured Python Selenium framework that effectively showcases your accessibility testing skills while maintaining a minimal, efficient codebase. The project should be completable in 3 days while still looking substantial enough to impress recruiters.