Boback
Back to Projects
⭐ Featured Case Study
Python
FastAPI
Playwright

Clear11y

Automated web accessibility scanner using Axe, Playwright, and keyboard navigation testing for WCAG compliance reports.

~12,000 LOC
Active
High

Executive Summary

Challenge: Automate comprehensive accessibility testing beyond static analysis, including dynamic keyboard navigation checks that Axe alone cannot detect. Approach: Designed Clean Architecture pipeline coordinating specialized services—ZipService for archive processing, PlaywrightAxeService for WCAG rule injection, and custom KeyboardAccessibilityService that simulates tab navigation to detect focus traps and missing indicators. Architecture enforces strict layer separation (domain configs, application orchestration, infrastructure adapters). Key Innovation: Custom keyboard testing logic captures dynamic violations (tab sequences, focus visibility) missed by static analyzers. Report consolidation engine merges Axe + keyboard results into schema-validated HTML with Jinja templates. FastAPI server provides async job queuing via SQLAlchemy JobStore. Comprehensive pytest suite (unit/integration/E2E with golden tests) validates pipeline reliability. Used in CI/CD via GitHub Action integration.

The Challenge

Automates detection of web accessibility violations (Axe rules + keyboard navigation) in static sites or live URLs to ensure WCAG compliance.

The Solution

Pipeline coordinates services (ZipService, PlaywrightAxeService, KeyboardAccessibilityService); BrowserManager for concurrency. Monitoring middleware, stubs for tests.

System Architecture

Key Features

1

ZIP File Scanning

2

Axe Accessibility Scanning

3

Keyboard Navigation Testing

4

Report Generation

5

CLI Interface

6

Web API Server

7

Docker Integration

8

Result Validation

Technical Skills Matrix

Python
Playwright Automation
Axe Accessibility Testing
axe-playwright-python
FastAPI
SQLAlchemy
Pydantic
Async Python
pytest
Test-Driven Development
Golden Tests
Fixtures
Mocking
Docker
GitHub Actions
CI/CD
Containerization
Jinja2 Templating
HTML Report Generation
Schema Validation
Clean Architecture
Pipeline Orchestration
Service Layer Pattern
Browser Automation
Keyboard Navigation Testing
Focus Management
WCAG Compliance
Accessibility Standards
Web Accessibility
Input Sanitization
Security Best Practices
Auth Endpoints
Browser Pooling
Performance Optimization
Caching Strategies
Error Recovery
Logging (JsonFormatter)
Monitoring Middleware
TOML Configuration
Runtime Configuration
Dependency Inversion