Skip to content

Latest commit

 

History

History
123 lines (98 loc) · 4.71 KB

File metadata and controls

123 lines (98 loc) · 4.71 KB

Accessibility Automation Framework - Python Selenium Project Roadmap

Project Overview

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.

Project Structure

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

Timeline (3 Days)

Day 1: Setup and Foundation

  • 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

Day 2: Core Implementation

  • 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

Day 3: Testing and Documentation

  • 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

Technologies

  • 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

Implementation Strategy

Core Files and Functionality

  1. accessibility_scanner.py (~100 lines)

    • Integration with axe-core for automated scanning
    • Methods to run various WCAG checks
    • Results processing and formatting
  2. base_page.py (~50 lines)

    • Page Object Model implementation
    • Common accessibility methods
    • Navigation helpers
  3. test_accessibility.py (~100 lines)

    • Test cases for different WCAG criteria
    • Parameterized tests for different sites
    • Result validation
  4. report_utils.py (~50 lines)

    • HTML report customization
    • Screenshot capture for violations
    • Results formatting

Key WCAG Checks to Implement

  1. 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)
  2. Secondary Checks (If Time Permits)

    • Heading structure (1.3.1)
    • ARIA attributes usage (4.1.2)
    • Link purpose (2.4.4)

GitHub Showcase Optimization

README Features

  • 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

Code Quality Focus

  • 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.