关于 web-severity-scoring
用于网页无障碍审计结果的评分方法,按严重程度、置信度和来源数量计算页面分数,并提供评分档位。它还定义严格度配置、规则族校准及跨次审计跟踪方式。
主要功能
- 01按严重程度和置信度扣分
- 02支持 balanced、strict、advisory 配置
- 03按规则族校准扣分
- 04提供 A 至 F 评分档位
- 05区分系统性、模板级和页面级问题
- 06跟踪修复状态与审计趋势
适用场景
- 01为单页或多页审计生成评分卡
- 02结合多个检测来源评估问题置信度
- 03比较不同审计轮次的分数变化
- 04按项目情境调整评分严格度
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ community-access/ accessibility-agents --skill web-severity-scoring安装后在 Claude Code 中输入/web-severity-scoring确认已加载。
详细介绍
Web 严重性评分
严重性评分公式
Page Score = 100 - (sum of weighted findings)
Weights:
Critical (confirmed, all three sources): -18 points
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)
评分配置
使用配置文件根据上下文调整严格程度,同时保持等级区间可比:
| 配置 | 用途 | 乘数 |
|---|---|---|
| balanced(默认) | 标准产品交付 | 1.0 |
| strict | 受监管领域/公共部门发布 | 1.15 |
| advisory | 早期设计和原型开发 | 0.8 |
完成置信度处理后,将配置乘数应用于每项最终扣分。
公式
page_score = 100
for each finding:
base = lookup(severity, confidence_level, source_count) // from table above
multiplier = 1.2 if confidence_level == "confirmed" else 1.0
deduction = base × multiplier
page_score = max(0, page_score - deduction)
上方查找表中的数值为基础扣分(应用乘数前)。 “已确认”问题(由所有三个来源验证:axe-core + Agent 审查 + Playwright)会额外应用 1.2× 乘数。
示例: 一个置信度为已确认的严重问题 = 18(基础分)× 1.2 = 扣除 21.6 分 → 页面得分 78。
校准层(v2)
为减少误报导致的分数虚高并稳定趋势,按规则类别应用校准系数:
calibrated_deduction = deduction × calibration_coefficient(rule_family)
建议的初始系数:
| 规则类别 | 系数 | 理由 |
|---|---|---|
| 键盘/焦点 | 1.1 | 对运行时功能影响重大 |
| 表单/标签/错误 | 1.05 | 核心任务的完成风险较高 |
| 语义/结构 | 1.0 | 基准评分 |
| 链接文本/上下文 | 0.9 | 上下文差异较大 |
| 内容质量(替代文本/链接清晰度) | 0.85 | 更常需要人工审核 |
根据已确认的结果按季度更新系数。每个周期的系数调整幅度应不超过 +/-0.1。
分数等级
| 分数 | 等级 | 含义 |
|---|---|---|
| 90-100 | A | 优秀——问题很少或没有问题,符合 WCAG AA |
| 75-89 | B | 良好——存在一些问题,大体符合 WCAG AA |
| 50-74 | C | 需要改进——存在多个问题,部分符合 WCAG AA |
| 25-49 | D | 较差——存在严重的无障碍障碍 |
| 0-24 | F | 不合格——存在关键障碍,使用辅助技术(AT)时可能无法使用 |
置信度等级
| 等级 | 权重 | 适用情况 |
|---|---|---|
| 已确认 | 120% | 由所有三个来源验证:axe-core + Agent 审查 + Playwright 行为测试 |
| 高 | 100% | 经 axe-core + Agent 确认,或问题在结构上明确(缺少替代文本、无标签、无 lang) |
| 中 | 70% | 由单一来源发现,可能存在问题(标题边缘情况、存疑的 ARIA、可能的键盘陷阱) |
| 低 | 30% | 可能存在问题,需要人工审核(替代文本质量、阅读顺序、依赖上下文的链接文本) |
来源关联
由 axe-core 和 Agent 审查同时发现的问题,无论各自的置信度评级如何,都会自动提升为高置信度。
由所有三个来源(axe-core + Agent 审查 + Playwright 行为测试)发现的问题,会提升为已确认置信度,并应用 1.2x 权重乘数。适用于以下情况:
- axe-core 报告违规
- Agent 代码审查发现相同问题
- Playwright 行为扫描在运行时确认问题(例如,通过实际 Tab 遍历确认键盘陷阱,通过渲染后的 CSS 计算确认对比度不达标)
如果无法使用 Playwright,可达到的最高置信度仍为高(100%)。已确认等级是附加的,不会降低问题的评级。
置信度漂移防护
跟踪预测置信度与分诊后的结果,并计算漂移:
drift = abs(predicted_confidence_score - observed_confirmation_rate)
操作指南:
- 漂移 <= 0.10:稳定
- 漂移 0.11-0.20:调整系数和来源映射
- 漂移 > 0.20:冻结配置变更,并进行规则级审查
评分卡格式
单页
## Accessibility Score
| Metric | Value |
|--------|-------|
| Page | [URL] |
| Score | [0-100] |
| Grade | [A-F] |
| Critical | [count] |
| Serious | [count] |
| Moderate | [count] |
| Minor | [count] |
多页
## 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** |
跨页面模式分类
| 模式类型 | 定义 | 修复投资回报率 |
|---|---|---|
| 系统性 | 每个审计页面都存在相同问题 | 最高——通常涉及布局/导航,一次修复即可 |
| 模板级 | 使用相同组件的页面存在相同问题 | 高——修复共享组件 |
| 页面特定 | 仅存在于一个页面 | 一般——逐页修复 |
修复跟踪
变更分类
| 状态 | 定义 |
|---|---|
| 已修复 | 问题出现在上一份报告中,但现在已不存在 |
| 新增 | 问题未出现在上一份报告中,现在出现 |
| 持续存在 | 问题仍存在于上一份报告中 |
| 回归 | 之前已修复的问题再次出现 |
进度指标
- 问题减少率:
(fixed / previous_total) * 100 - 分数变化:
current_score - previous_score - 改进页面: 分数高于上次审核的页面数量
- 趋势: 改善(分数上升 5+)、稳定(变化在 5 以内)、下降(分数下降 5+)
标准化趋势指标(跨次审核)
当审核范围在不同运行之间发生变化时,请使用标准化变化:
normalized_score = raw_score - (scope_variance_penalty)
scope_variance_penalty = min(10, abs(previous_pages - current_pages) * 0.8)
趋势图使用标准化分数,发布门槛使用原始分数。
输出元数据(推荐)
为确保可复现性,请在生成的评分产物中包含以下字段:
scoring:
model: web-severity-scoring-v2
profile: balanced
calibrationVersion: 2026-q2
confidenceSources:
- axe-core
- agent-review
- playwright
failThresholds:
critical: 1
score: 75
这些元数据可用于确定性地重新运行,以及比较不同审核结果。
问题严重程度分类
严重
- 无法通过键盘访问基本功能
- 必填字段缺少表单标签
- 传达关键信息的图像没有替代文本
- 仅通过颜色传达信息
- 键盘陷阱且无法退出
较严重
- 缺少跳过导航
- 标题层级不佳(跳过级别)
- 交互元素的焦点不可见
- 表单错误未以编程方式关联
- 自定义控件缺少 ARIA
中等
- 语义元素上存在冗余 ARIA
- 标题结构不理想(多个 H1)
- 身份字段缺少自动填充
- 链接在新标签页中打开但未发出警告
- 表格缺少标题
轻微
- 冗余的 title 属性
- 按钮文本不理想
- 存在语义元素但缺少地标角色
- 装饰性图像的替代文本非空
评论
支持 Markdown