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 severity

The final score is clamped to a minimum of 0.

Severity Weights

SeverityWeight per violationMax deduction (cap)Example triggers
Critical5 points50 pointsMissing alt text on images, no form labels, empty links
Serious3 points30 pointsInsufficient color contrast, missing document language, duplicate IDs
Moderate2 points15 pointsMissing skip navigation, incorrect heading order, missing table headers
Minor1 point5 pointsRedundant 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 = 62

Why 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

RangeLabelInterpretation
90-100ExcellentFew or no automated violations detected
70-89GoodSome issues present, generally accessible
50-69Needs WorkNotable accessibility barriers exist
0-49PoorSignificant 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.