Scoring System
AllyProof assigns each site an accessibility score from 0 to 100. The score provides a quick health indicator based on automated scan results, weighted by violation severity.
The Formula
The accessibility score starts at 100 and subtracts weighted deductions for each open violation:
score = 100 - sum(deductions per severity)
Where each severity has:
deduction = count × weight_per_violation
capped at max_deduction for that severityThe final score is clamped to a minimum of 0.
Severity Weights
| Severity | Weight per violation | Max deduction (cap) | Example triggers |
|---|---|---|---|
| Critical | 5 points | 50 points | Missing alt text on images, no form labels, empty links |
| Serious | 3 points | 30 points | Insufficient color contrast, missing document language, duplicate IDs |
| Moderate | 2 points | 15 points | Missing skip navigation, incorrect heading order, missing table headers |
| Minor | 1 point | 5 points | Redundant ARIA roles, tabindex values greater than 0 |
Worked Example
A site with the following violations:
- 3 critical violations (images missing alt text)
- 5 serious violations (color contrast failures)
- 2 moderate violations (heading order issues)
- 4 minor violations (redundant ARIA)
Critical: 3 × 5 = 15 (cap 50, so 15)
Serious: 5 × 3 = 15 (cap 30, so 15)
Moderate: 2 × 2 = 4 (cap 15, so 4)
Minor: 4 × 1 = 4 (cap 5, so 4)
Total deduction = 15 + 15 + 4 + 4 = 38
Score = 100 - 38 = 62Why Caps Exist
Without caps, a single category could push the score to zero. For example, a site with 100 minor violations (e.g. tabindex issues on a large form) would lose 100 points uncapped, giving a score of 0 despite having no critical accessibility barriers.
Caps ensure the score reflects the overall accessibility posture:
- A site with only minor issues scores at least 95
- A site with moderate issues but no critical ones scores at least 55
- Only a combination of critical + serious issues can push the score below 20
Score Ranges
| Range | Label | Interpretation |
|---|---|---|
| 90-100 | Excellent | Few or no automated violations detected |
| 70-89 | Good | Some issues present, generally accessible |
| 50-69 | Needs Work | Notable accessibility barriers exist |
| 0-49 | Poor | Significant barriers, remediation urgently needed |
Score Tracking Over Time
AllyProof stores the score from every scan, allowing you to track accessibility trends on the site detail dashboard. The score history chart shows progress over time, making it easy to demonstrate improvement to stakeholders or identify regressions after deployments.
Limitations
The accessibility score is a useful indicator but has important limitations:
- Automated coverage: 57-70% — Automated scanning tools can only test a subset of WCAG 2.2 AA criteria. A score of 100 means zero automated violations, not full WCAG conformance. Manual testing is required for criteria like meaningful reading order, cognitive load, error suggestions, and captions for live audio.
- Count-based, not impact-based — A single missing alt attribute on a hero image and a missing alt attribute on a decorative divider both count as one critical violation, even though user impact differs significantly.
- Page sampling — The score reflects only the pages that were scanned. If your site has 10,000 pages and you scanned 50, the score represents those 50 pages.
- Point-in-time snapshot — Dynamic content, A/B tests, and user-generated content may change between scans. The score reflects the site state at scan time.
For a complete accessibility assessment, combine the AllyProof score with manual testing and user testing with assistive technology users. The score is best used for tracking trends and catching regressions, not as a compliance certification.