name: web-severity-scoring
description: Severity scoring, scorecard computation, confidence levels, and remediation tracking for web accessibility audits. Use when computing page accessibility scores (0-100 with A-F grades), tracking remediation progress across audits, or generating cross-page comparison scorecards.
Web Severity Scoring
Severity Scoring Formula
Page Score = 100 - (sum of weighted findings)
Weights:
Critical (high confidence, both sources): -15 points
Critical (high confidence, single source): -10 points
Critical (medium confidence): -7 points
Critical (low confidence): -3 points
Serious (high confidence): -7 points
Serious (medium confidence): -5 points
Serious (low confidence): -2 points
Moderate (high confidence): -3 points
Moderate (medium confidence): -2 points
Moderate (low confidence): -1 point
Minor: -1 point
Floor: 0 (minimum score)
Score Grades
| Score |
Grade |
Meaning |
| 90-100 |
A |
Excellent - minor or no issues, meets WCAG AA |
| 75-89 |
B |
Good - some issues, mostly meets WCAG AA |
| 50-74 |
C |
Needs Work - multiple issues, partial WCAG AA compliance |
| 25-49 |
D |
Poor - significant accessibility barriers |
| 0-24 |
F |
Failing - critical barriers, likely unusable with AT |
Confidence Levels
| Level |
Weight |
When to Use |
| High |
100% |
Confirmed by axe-core + agent, or definitively structural (missing alt, no labels, no lang) |
| Medium |
70% |
Found by one source, likely issue (heading edge cases, questionable ARIA, possible keyboard traps) |
| Low |
30% |
Possible issue, needs human review (alt text quality, reading order, context-dependent link text) |
Source Correlation
Issues found by both axe-core AND agent review are automatically upgraded to high confidence regardless of individual confidence ratings.
Scorecard Format
Single Page
## Accessibility Score
| Metric | Value |
|--------|-------|
| Page | [URL] |
| Score | [0-100] |
| Grade | [A-F] |
| Critical | [count] |
| Serious | [count] |
| Moderate | [count] |
| Minor | [count] |
Multi-Page
## Accessibility Scorecard
| Page | Score | Grade | Critical | Serious | Moderate | Minor |
|------|-------|-------|----------|---------|----------|-------|
| / | 82 | B | 0 | 2 | 3 | 1 |
| /login | 91 | A | 0 | 0 | 2 | 1 |
| /dashboard | 45 | D | 2 | 4 | 3 | 2 |
| **Average** | **72.7** | **C** | **2** | **6** | **8** | **4** |
Cross-Page Pattern Classification
| Pattern Type |
Definition |
Remediation ROI |
| Systemic |
Same issue on every audited page |
Highest - usually layout/nav, fix once |
| Template |
Same issue on pages sharing a component |
High - fix the shared component |
| Page-specific |
Unique to one page |
Normal - fix individually |
Remediation Tracking
Change Classification
| Status |
Definition |
| Fixed |
Issue was in previous report but no longer present |
| New |
Issue not in previous report, appears now |
| Persistent |
Issue remains from previous report |
| Regressed |
Issue was previously fixed but has returned |
Progress Metrics
- Issue reduction:
(fixed / previous_total) * 100
- Score change:
current_score - previous_score
- Pages improved: count of pages with higher scores than previous audit
- Trend: improving (score up 5+), stable (within 5), declining (score down 5+)
Issue Severity Categories
Critical
- No keyboard access to essential functionality
- Missing form labels on required fields
- Images conveying critical information have no alt text
- Color is the sole means of conveying information
- Keyboard traps with no escape
Serious
- Missing skip navigation
- Poor heading hierarchy (skipped levels)
- Focus not visible on interactive elements
- Form errors not programmatically associated
- Missing ARIA on custom widgets
Moderate
- Redundant ARIA on semantic elements
- Suboptimal heading structure (multiple H1s)
- Missing autocomplete on identity fields
- Links to new tabs without warning
- Missing table captions
Minor
- Redundant title attributes
- Suboptimal button text
- Missing landmark roles where semantic elements exist
- Decorative images with non-empty alt text
1---2name: web-severity-scoring-23description: ---4---5---6name: web-severity-scoring7description: Severity scoring, scorecard computation, confidence levels, and remediation tracking for web accessibility audits. Use when computing page accessibility scores (0-100 with A-F grades), tracking remediation progress across audits, or generating cross-page comparison scorecards.8---9<!-- CANONICAL SOURCE: .github/skills/web-severity-scoring/SKILL.md -- Edit the canonical source; sync to Gemini via scripts/check-gemini-sync.ps1 -->1011# Web Severity Scoring1213## Severity Scoring Formula1415```text16Page Score = 100 - (sum of weighted findings)1718Weights:19 Critical (high confidence, both sources): -15 points20 Critical (high confidence, single source): -10 points21 Critical (medium confidence): -7 points22 Critical (low confidence): -3 points23 Serious (high confidence): -7 points24 Serious (medium confidence): -5 points25 Serious (low confidence): -2 points26 Moderate (high confidence): -3 points27 Moderate (medium confidence): -2 points28 Moderate (low confidence): -1 point29 Minor: -1 point3031Floor: 0 (minimum score)32```3334## Score Grades3536| Score | Grade | Meaning |37|-------|-------|---------|38| 90-100 | A | Excellent - minor or no issues, meets WCAG AA |39| 75-89 | B | Good - some issues, mostly meets WCAG AA |40| 50-74 | C | Needs Work - multiple issues, partial WCAG AA compliance |41| 25-49 | D | Poor - significant accessibility barriers |42| 0-24 | F | Failing - critical barriers, likely unusable with AT |4344## Confidence Levels4546| Level | Weight | When to Use |47|-------|--------|-------------|48| High | 100% | Confirmed by axe-core + agent, or definitively structural (missing alt, no labels, no lang) |49| Medium | 70% | Found by one source, likely issue (heading edge cases, questionable ARIA, possible keyboard traps) |50| Low | 30% | Possible issue, needs human review (alt text quality, reading order, context-dependent link text) |5152### Source Correlation5354Issues found by both axe-core AND agent review are automatically upgraded to **high confidence** regardless of individual confidence ratings.5556## Scorecard Format5758### Single Page5960```markdown61## Accessibility Score6263| Metric | Value |64|--------|-------|65| Page | [URL] |66| Score | [0-100] |67| Grade | [A-F] |68| Critical | [count] |69| Serious | [count] |70| Moderate | [count] |71| Minor | [count] |72```7374### Multi-Page7576```markdown77## Accessibility Scorecard7879| Page | Score | Grade | Critical | Serious | Moderate | Minor |80|------|-------|-------|----------|---------|----------|-------|81| / | 82 | B | 0 | 2 | 3 | 1 |82| /login | 91 | A | 0 | 0 | 2 | 1 |83| /dashboard | 45 | D | 2 | 4 | 3 | 2 |84| **Average** | **72.7** | **C** | **2** | **6** | **8** | **4** |85```8687## Cross-Page Pattern Classification8889| Pattern Type | Definition | Remediation ROI |90|-------------|-----------|-----------------|91| Systemic | Same issue on every audited page | Highest - usually layout/nav, fix once |92| Template | Same issue on pages sharing a component | High - fix the shared component |93| Page-specific | Unique to one page | Normal - fix individually |9495## Remediation Tracking9697### Change Classification9899| Status | Definition |100|--------|-----------|101| Fixed | Issue was in previous report but no longer present |102| New | Issue not in previous report, appears now |103| Persistent | Issue remains from previous report |104| Regressed | Issue was previously fixed but has returned |105106### Progress Metrics107108- **Issue reduction:** `(fixed / previous_total) * 100`109- **Score change:** `current_score - previous_score`110- **Pages improved:** count of pages with higher scores than previous audit111- **Trend:** improving (score up 5+), stable (within 5), declining (score down 5+)112113## Issue Severity Categories114115### Critical116- No keyboard access to essential functionality117- Missing form labels on required fields118- Images conveying critical information have no alt text119- Color is the sole means of conveying information120- Keyboard traps with no escape121122### Serious123- Missing skip navigation124- Poor heading hierarchy (skipped levels)125- Focus not visible on interactive elements126- Form errors not programmatically associated127- Missing ARIA on custom widgets128129### Moderate130- Redundant ARIA on semantic elements131- Suboptimal heading structure (multiple H1s)132- Missing autocomplete on identity fields133- Links to new tabs without warning134- Missing table captions135136### Minor137- Redundant title attributes138- Suboptimal button text139- Missing landmark roles where semantic elements exist140- Decorative images with non-empty alt text