mcpField
W
web-severity-scoring

web-severity-scoring

github.com/community-accessテスト・品質429226 回インストール今日更新
リポジトリ

web-severity-scoring について

重大度、確信度、検出元の数を使ってページスコアを算出する、Web アクセシビリティ監査向けの評価方法です。評価プロファイル、ルール群ごとの補正、監査間の追跡も定義しています。

主な機能

  1. 01重大度と確信度に応じた減点
  2. 02balanced、strict、advisory のプロファイル
  3. 03ルール群ごとの減点補正
  4. 04A〜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 Severity Scoring

重大度スコアリングの計算式

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 (default)標準的なプロダクトのリリース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)

上記の参照表の値は基本減点(乗数適用前)です。 「Confirmed」の指摘事項(axe-core + エージェントによるレビュー + Playwright の3つすべてのソースで検証済み)には、追加で1.2倍の乗数を適用します。

例: Confirmed の信頼度で Critical の指摘事項が1件ある場合、18(基本)× 1.2 = 21.6点の減点となり、ページスコアは78になります。

キャリブレーションレイヤー(v2)

誤検知によるスコアの過剰な低下を抑え、傾向を安定させるには、ルールファミリーごとにキャリブレーション係数を適用します。

calibrated_deduction = deduction × calibration_coefficient(rule_family)

推奨される初期係数:

ルールファミリー係数理由
キーボード/フォーカス1.1実行時の機能への影響が大きい
フォーム/ラベル/エラー1.05主要タスクの完了に関するリスクが高い
セマンティクス/構造1.0基準となるスコアリング
リンクテキスト/コンテキスト0.9コンテキストによる差異が大きい
コンテンツ品質(代替テキスト/リンクの明確さ)0.85人によるレビューが必要になることが多い

検証済みの結果をもとに、係数を四半期ごとに更新します。1回の更新で係数を+/-0.1より大きく変更しないでください。

スコアグレード

スコアグレード意味
90-100A優秀 - 問題が軽微、または問題なし。WCAG AA を満たしています
75-89B良好 - いくつか問題はあるものの、ほぼ WCAG AA を満たしています
50-74C要改善 - 複数の問題があり、WCAG AA への準拠は部分的です
25-49D不良 - アクセシビリティ上の重大な障壁があります
0-24F不合格 - 致命的な障壁があり、支援技術(AT)では利用できない可能性が高いです

信頼度レベル

レベル重み使用する状況
Confirmed120%axe-core + エージェントによるレビュー + Playwright による動作テストの3つすべてのソースで検証済み
High100%axe-core + エージェントで確認済み、または構造上明白(代替テキストがない、ラベルがない、lang がない)
Medium70%1つのソースで検出され、問題の可能性が高い場合(見出しの境界的なケース、疑わしい ARIA、キーボードトラップの可能性)
Low30%問題の可能性はあるものの、人によるレビューが必要な場合(代替テキストの品質、読み上げ順序、コンテキストに依存するリンクテキスト)
ソース間の相関

axe-core とエージェントによるレビューの両方で検出された問題は、個々の信頼度評価にかかわらず、自動的にHigh の信頼度に引き上げられます。

3つすべてのソース(axe-core + エージェントによるレビュー + Playwright による動作テスト)で検出された問題は、1.2倍の重みが適用されるConfirmed の信頼度に引き上げられます。これは、次の場合に適用されます。

  • axe-core が違反を報告する
  • エージェントによるコードレビューで同じ問題が特定される
  • Playwright による動作スキャンで、実行時に問題が確認される(例:実際に Tab キーで移動してキーボードトラップを確認する、描画後の CSS 計算でコントラストの失敗を確認する)

Playwright を利用できない場合、到達可能な最高の信頼度は**High(100%)**のままです。Confirmed のレベルは加算されるものであり、指摘事項の信頼度を下げることはありません。

信頼度のずれに対するガード

予測された信頼度とトリアージ後の結果を追跡し、ずれを計算します。

drift = abs(predicted_confidence_score - observed_confirmation_rate)

運用ガイドライン:

  • drift <= 0.10:安定
  • drift 0.11-0.20:係数とソースのマッピングを調整
  • drift > 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** |

ページ横断のパターン分類

パターンタイプ定義修正の投資対効果
システム全体監査対象のすべてのページで同じ問題がある最高 - 通常はレイアウト/ナビゲーションの問題で、一度の修正で解決します
テンプレート同じコンポーネントを共有するページに同じ問題がある高 - 共有コンポーネントを修正します
ページ固有1つのページにのみ存在する通常 - 個別に修正します

修正の追跡

変更の分類
ステータス定義
修正済み前回のレポートにあった問題が、今回は解消されています
新規前回のレポートにはなかった問題が、今回は発生しています
継続中前回のレポートから問題が残っています
再発以前に修正された問題が再び発生しています
進捗指標
  • 問題の減少率: (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 が複数ある)
  • ID フィールドに autocomplete がない
  • 新しいタブで開くリンクに警告がない
  • テーブルのキャプションがない
軽微
  • title 属性が冗長である
  • ボタンのテキストが最適でない
  • セマンティック要素があるのにランドマークのロールがない
  • 装飾画像に空でない代替テキストがある

コメント