--- name: kb-severity-mapping description: Reference data, not a reviewer. Canonical severity level definitions and cross-domain mapping for web, document, and markdown audits. Score impact ranges, WCAG conformance alignment, and cross-format normalization. license: MIT disable-model-invocation: true user-invocable: false metadata: tier: reference domain: cross-cutting output: none effort: low title: Severity Mapping --- ## Severity Mapping Canonical severity definitions shared across web, document, and markdown audit domains. > **What reports actually use.** The score and grade in every rendered report > come from `skills/a11y-core/scripts/merge-findings.mjs`: severity weights > critical 10, serious 5, moderate 2, minor 1; confidence factors high 1.0, > medium 0.7, low 0.4; the penalty is scaled by the number of checks run; grades > are A 90+, B 80+, C 70+, D 60+, F below 60. Where this file differs, the > script decides. A score is not a conformance claim: only a finding-free > review against every criterion at the target level supports "conforms". Severity is what a person experiences; WCAG level is what conformance requires. The two are independent, so the conformance column below is typical, not a rule. ## Canonical Severity Levels Each level, with its definition, WCAG conformance and score weight. | Level | Definition | Typical WCAG Conformance | Score Weight | |---|---|---|---| | **Critical** | Blocks access entirely for one or more user groups. No workaround exists. | Fails Level A | 10 | | **Serious** | Severely impairs access; a workaround may exist but is unreasonable. | Fails Level A or AA | 5 | | **Moderate** | Causes friction or confusion; most users can still complete the task. | Fails Level A or AA | 2 | | **Minor** | Polish issue; no meaningful barrier for most users. | Technique deviation | 1 | ## Cross-Domain Equivalents Each canonical level, with its web (axe-core or playwright), document (office or PDF) and markdown. | Canonical Level | Web (axe-core / Playwright) | Document (Office/PDF) | Markdown | |---|---|---|---| | Critical | `critical` (axe-core) | Missing document title; untagged PDF; missing heading structure | Broken anchor link leading to dead navigation | | Serious | `serious` (axe-core) | Missing alt text on informational image; table has no headers | Ambiguous link text (e.g., "click here"); missing alt text on image | | Moderate | `moderate` (axe-core) | Merged table cells; color-only data encoding | Skipped heading level; missing table caption | | Minor | `minor` (axe-core) | Decorative image with non-empty alt; redundant bookmark | Emoji in heading; em-dash used as list separator | ## Score Weight Rules The weights are the renderer's (`skills/a11y-core/scripts/merge-findings.mjs`; formula in `kb-web-severity-scoring`). Each finding counts once. Findings merge when the same rule fires at the same location, or when findings at the same location describe the same defect under different rules; the same rule on another element or page is a separate finding. ## Conversion Rules (Normalizing Cross-Domain Reports) When generating a unified report that combines web, document, and markdown findings: 1. Map each finding to the canonical severity level using the table above. 2. Apply the weight of the canonical level, not the domain-specific tool's internal scoring. 3. A rendered report scores all merged findings together. A per-page or per-file score, where a report shows one, is the same formula over that page's findings. 4. Do not double-count a finding that appears in both an axe-core scan and a Playwright behavioral scan -- deduplicate by rule ID and element location. ## Confidence Modifier Confidence scales a finding's weight in every domain. Each level, with its factor and signals: | Confidence | Factor | Source signals | |---|---|---| | high | 1.0 | Two sources agree (for example axe-core and code review), or the check is structural and certain. A third confirming source keeps it high. | | medium | 0.7 | Single source, likely issue | | low | 0.4 | Single source, heuristic; needs human review | A finding with no confidence counts as high.