Empathy Audit
See your site through the eyes of users with disabilities. Find barriers before they become complaints.
Disability Personas
- Reduced click accuracy
- Needs larger targets
- Slower interactions
- Needs high contrast
- Larger text required
- Clear visual hierarchy
- Easily distracted
- Needs clear focus
- Simple navigation
- Color-independent cues
- Pattern alternatives
- Text labels needed
Mobile WCAG Testing
Touch targets and responsive barriers are different on mobile devices. Pass device="mobile" to test with real mobile viewport constraints and touch target requirements.
Touch Targets
Mobile shows undersized tap areas that pass on desktop (44x44px WCAG 2.5.8)
Responsive Layouts
Stacked layouts and hamburger menus create different barrier patterns
Viewport Scoping
Use scope="viewport" for first-impression or scope="full_page" for full WCAG compliance
empathy_audit( url: "https://example.com", goal: "complete checkout", disabilities: ["motor-impairment-tremor"], device: "mobile", scope: "full_page", wcagLevel: "AA" )
Sample Audit Results
| Category | Grade | Issues | Description |
|---|---|---|---|
| Touch Targets | A | None | All interactive elements meet 44x44px minimum |
| Color Contrast | B | 3 found | Some text fails 4.5:1 ratio requirement |
| Focus Indicators | A | None | All focusable elements have visible indicators |
| Error Recovery | C | 5 found | Form errors not clearly communicated |
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
url | string | Required | URL to audit |
goal | string | Required | Task to attempt (e.g., "complete checkout") |
disabilities | string[] | Optional | Persona to test: motor-impairment-tremor, low-vision-magnified, cognitive-adhd, dyslexic-user, deaf-user, elderly-low-vision, color-blind-deuteranopia, or any custom persona |
scope | string | Optional | viewport (above-fold only, default) | full_page (scroll entire page, WCAG compliance) |
device | string | Optional | mobile | tablet | desktop | iPhone 15 | Pixel 7 β essential for mobile WCAG audits |
wcagLevel | string | Optional | A | AA (default) | AAA β WCAG conformance level |
Example Output
{
"persona": "motor-tremor",
"url": "https://example.com/checkout",
"overall_grade": "B",
"barriers": [
{
"severity": "high",
"element": "button.checkout-submit",
"issue": "Touch target 32x28px below 44x44px minimum",
"impact": "Users with motor impairments may miss clicks",
"fix": "Increase button padding to min-height: 44px"
},
{
"severity": "medium",
"element": "input.quantity",
"issue": "Number input requires precise clicking",
"impact": "Difficult to adjust with tremor",
"fix": "Add larger +/- buttons for quantity adjustment"
}
],
"passed": [
"Skip links present and functional",
"Focus visible on all interactive elements",
"Form labels properly associated"
],
"recommendations": [
"Increase all button touch targets to 44x44px minimum",
"Add click tolerance zones around small controls"
]
}Perceptual Transport Analysis
The first accessibility tool that measures how much visual information each persona actually loses on your page. Uses Wasserstein optimal transport theory.
1. Screenshot β Captures the page during audit
2. Visual Filter β Applies persona-specific filters: blur for low vision, color shift for color blindness, contrast loss for elderly
3. Wasserstein Distance β Measures how far the original view differs from the filtered view
4. Metrics β Reports information loss, Motor Accessibility cost, Cognitive Load, Saliency gaps
Each persona weighs barriers differently. The same page gets different scores:
Same page, different experiences. Motor users hit hardest by touch targets (3x penalty). ADHD users struggle with cognitive load. Color blind users least affected.
| Metric | What It Measures | Motor | ADHD | Color Blind |
|---|---|---|---|---|
| Information Loss | Visual content persona can't perceive | 0% | 0% | 1.1% |
| Motor Cost | Difficulty reaching interactive elements | 100% | 0% | 0% |
| Cognitive Load | Visual complexity overwhelm | 30% | 70% | 20% |
| Transport Distance | Wasserstein distance (original vs filtered) | 0 | 0 | 0.0038 |
Build inclusive experiences
Test with disability personas. Find accessibility barriers before your users do.