mcpField
W
web-severity-scoring

web-severity-scoring

github.com/community-access测试与质量429226 次安装今天更新
代码仓库

关于 web-severity-scoring

用于网页无障碍审计结果的评分方法,按严重程度、置信度和来源数量计算页面分数,并提供评分档位。它还定义严格度配置、规则族校准及跨次审计跟踪方式。

主要功能

  1. 01按严重程度和置信度扣分
  2. 02支持 balanced、strict、advisory 配置
  3. 03按规则族校准扣分
  4. 04提供 A 至 F 评分档位
  5. 05区分系统性、模板级和页面级问题
  6. 06跟踪修复状态与审计趋势

适用场景

  1. 01为单页或多页审计生成评分卡
  2. 02结合多个检测来源评估问题置信度
  3. 03比较不同审计轮次的分数变化
  4. 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-100A优秀——问题很少或没有问题,符合 WCAG AA
75-89B良好——存在一些问题,大体符合 WCAG AA
50-74C需要改进——存在多个问题,部分符合 WCAG AA
25-49D较差——存在严重的无障碍障碍
0-24F不合格——存在关键障碍,使用辅助技术(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