accessibility-audit について
WCAG-EMに沿ってウェブサイトのアクセシビリティを評価する、WCAG 2.2監査スキルです。自動スキャンと手動検査を組み合わせ、サンプルと根拠に基づく適合性レポートを作成します。
主な機能
- 01WCAG-EM監査ワークフロー
- 02構造化されたページサンプリング
- 03自動・手動の評価段階
- 04重大度と根拠の分類
- 05達成基準ごとの適合性報告
活用シーン
- 01WCAG 2.2 AAに沿ったサイト監査
- 02主要フローや複雑な画面状態の確認
- 03支援技術を用いた人手レビュー向けの所見整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ accesslint/ skills --skill accessibility-auditインストール後、Claude Code で/accessibility-auditを入力して読み込まれたか確認します。
詳細
これは、WCAG-EMを用いたWCAG 2.2の完全なアクセシビリティ監査です。対象範囲を定義し、代表的なページとフローをサンプリングし、両方の評価段階を実施して、適合性レポートを1つ作成します。
- 自動評価段階:
accesslint:accessibility-scan(ルールエンジン)。 - 半自動の手動評価段階:
accesslint:accessibility-inspect(キーボード、フォーカス、状態、リフローなど、エンジンでは判断できない項目)。
評価を行います。修正(accesslint:accessibility-fix)や差分確認(accesslint:accessibility-diff)は行いません。サンプリングを行わない単一ページの評価は、監査ではなくaccessibility-scanです。このスキルでは、サンプリングした各ページをそれぞれ専用のサブエージェントに委任するため(ステップ4)、サンプル数が多くても軽量に実行できます。
詳細な指針――WCAG-EMの詳細、例を含む重大度基準、代理評価の禁止範囲、根拠の明確化――は、../shared/methodology.mdに記載されています。このスキルの実行に必要なルールを以下に示します。
評価
各指摘には、重大度と証拠の根拠を付与します。両者は分けて扱います。
- 証拠の根拠:● 検証済み(引用した証拠に基づく確定的な結果) · ◐ 要確認(証拠を記録し、人が判断) · ○ 人による確認が必要(支援技術または実体験が必要。模擬せず、引き継ぎます)。
- 重大度:critical(主要なタスクを妨げる) · serious(大きな障壁) · moderate(不便はあるが、完了可能) · minor(仕上げの問題)。
WCAG-EM の手順
順番に実行し、それぞれで行ったことを記載してください。
-
対象範囲。対象とその境界、目標(デフォルトは WCAG 2.2 AA。
--level AAAを指定すると AAA も対象)、使用している技術、そして人による引き継ぎで扱うべき支援技術のベースラインを明記します。そのベースラインを定めますが、テストはしません。 -
調査。Glob/Grep を使って、ルート、テンプレート、共有コンポーネントを探します。主要なフロー、コンテンツの種類、状態を持つ UI(モーダル、ウィザード、空状態、エラー状態)を記録します。
accesslint.config.jsonの対象は出発点です。 -
サンプリング。構造化されたセット(入口ページ、各主要フローの最初から最後まで、新しいテンプレートや複雑なウィジェットを含むすべてのページ、重要な状態)と、小規模なランダムセットを選びます。それぞれに何が含まれるか、選んだ理由を述べます。
-
評価。サンプルに含めた各ページまたは状態をそれぞれ独自のコンテキストで実行し、調査結果を返すよう、個別の
Taskに委任します。独立したページは並行して実行できます。各Taskは次を行います。- まず
accesslint:accessibility-scan(--format json)を実行し、続いて同じレンダリング状態(同一の URL、--selector、--wait-for)に対してaccesslint:accessibility-inspectを実行します。scan の結果(または少なくともエンジンが対象とした SC のリスト)を inspect の実行に渡します。 - 実行前に SC の担当範囲で重複を除外します。
accessibility-scanはルールで検出可能な達成基準を担当し、accessibility-inspectはインタラクションと判断を要する達成基準を担当します。inspect はエンジンが担当する SC を再確認しません。同一の要素で両方が同じ SC を対象とする場合は、accessibility-scanの結果を優先します。 - 構造化されたブロックを返します。各指摘について、SC、重大度、根拠の確度(●/◐/○)、場所、ティア、証拠、修正方法または引き継ぎ先を記載し、さらにこのページの SC ごとの台帳(確認済み/フラグあり/エンジン担当/該当なし/未実施)を含めます。
返されたブロックは手順 5 で集約します。対象範囲が 1~2 ページの場合は、
Taskを起動せず、ティアをインラインで実行します。共有ブラウザーは任意で、ティア間のセレクター照合の精度を高めます。ただし、これは事前に設定されていることが条件であり、このスキルが実行時に設定するものではありません。ブラウザー MCP はサーバー起動時に Chrome に接続します(
--autoConnectまたは--browser-url)。エンジンも同じポートを指定します。共有ブラウザーがない場合(デフォルト)は、各Taskが同じ URL と--wait-for条件で両方のティアを実行し、SC の担当範囲に基づいて重複を除外します。 - まず
-
報告。以下の形式にまとめます。適合性の状態は 3 つです。●の指摘に限り、合格または不合格とします。◐または○のすべて、およびページで確認していないすべての SC は未確定であり、人による確認に引き継ぎます。サンプル内の 1 ページでもある SC に不合格なら、そのレベルの対象範囲全体で不合格です。裏付けのない適合性は報告せず、未実施の SC を合格と受け取られるような記載にしないでください。台帳は件数と SC のリストのみとし、未確定の SC は共通する理由ごとにまとめ、グループごとに一つの節で記載します。報告では不合格、フラグ、引き継ぎに重点を置きます。合格した場合はリストに SC 番号を記載し、合格した項目全体についての説明は最大 1 文とします。
報告形式
# Accessibility audit — <product / scope>
WCAG 2.2 Level AA · WCAG-EM · <N> pages/states sampled
## Scope
- Target & boundary: <…> Goal: WCAG 2.2 AA
- Technologies in use: <…>
- AT baseline (for the human handoff, not tested here): <SR+browser pairs, keyboard-only, …>
## Sample
- Structured: <page/state> — <why> (×N)
- Random: <page/state>
## Conformance (per success criterion)
- Pass ●: <n> · Fail ●: <n> · Undetermined (◐/○/not exercised): <n> · N/A: <n>
- Fail ●: <SCs> Pass ●: <SCs> N/A: <SCs>
- Undetermined: <SCs (shared reason)> · <SCs (shared reason)>
- Pass/fail is asserted only for ● criteria; ◐/○ and not-exercised are undetermined.
## Findings — by severity, tagged by evidence basis
### Critical
- [●] <barrier> — SC x.x.x — where: <selector / file:line> — tier: scan|inspect — → `accessibility-fix`
- [◐] <barrier> — SC x.x.x — evidence: <screenshot / measurement> — confirm: <what a person checks>
### Serious / Moderate / Minor
[same shape]
## Human-required (○) — the testing handoff
- <what only AT or lived experience reveals> — SC x.x.x
needs: <functional ability + AT, per Section 508 FPC> flow: <sampled flow>
## Recommendations
- Root-cause / pattern fixes (one change that clears many instances) → hand to `accessibility-fix`.
- What to send to human and AT testing, and on which flows.
- Wire `accesslint:accessibility-diff` into CI for the sampled targets.
注記
- 評価のみを行い、修正(
accessibility-fixを使用)や差分確認(accessibility-diffを使用)はしないでください。人の体験を模倣しないでください。ユーザビリティは ◐、実体験に基づく評価は ○ とし、人に引き継ぎます。 - 適合性は、サンプル全体における SC ごとに判断します。不合格を平均して帳消しにしないでください。
- 2 つのブラウザー間ではセレクターがずれることがあります。●の精度を優先する場合は共有ブラウザーを使い、そうでない場合は重複除外がベストエフォートであることを明記してください。
- 対象外の内容(サンプルに含めていないページ、○の基準)を記載します。省略すると「問題なし」と受け取られます。
- エンジンのルールに関するメタデータには
list_rulesとexplain_ruleを使用してください。