A11yScope について
A11yScopeは、AIコーディングエージェントや開発者がウェブページとHTMLをローカルでWCAG 2.2 AAに照らして確認するためのMCPサーバーです。ヘッドレスChromeで検査し、セレクターと修正ガイドを含むルール別の結果を返します。
主な機能
- 01URL、ローカルHTML、HTML文字列の検査
- 02ガイド付きのWCAG 2.2チェック31項目
- 03セレクターとHTML断片付きの結果
- 04review、passed、inapplicableの状態表示
- 05ローカルのヘッドレスChromeで検査
活用シーン
- 01開発中のローカルページの監査
- 02生成したHTMLの組み込み前チェック
- 03アクセシビリティの問題を確認して修正
MCP 対応
A11yScopeはMCPクライアントに`scan_page`、`scan_html`、`list_rules`を公開します。クライアントはページやマークアップを検査し、適用可能なWCAGルールと結果を確認できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | http(s) URL、file:// URL、または HTML ファイルへのパス(サーバーの作業ディレクトリからの相対パス)。 |
| wait_ms | integer | いいえ | 読み込み後に追加で待機する時間です。レンダリングが遅いページに使用します。 |
| include_passed | boolean | いいえ | 該当項目がゼロのルールも一覧表示します。各ルールには passed または inapplicable のステータスとチェック件数が含まれます。 |
| include_review | boolean | いいえ | 人による判断が必要な項目(失敗ではない項目)も返します。 |
| viewport_width | integer | いいえ | |
| viewport_height | integer | いいえ | |
| max_findings_per_rule | integer | いいえ | ルールごとに返す検出項目数の上限です。 |
詳細
a11yscope-mcp
AI コーディングエージェント向けの WCAG 2.2 AA チェックです。A11yScope Chrome extensionと同じエンジンを MCP サーバーとして公開しているため、Claude Code、Cursor、Claude Desktop、その他の MCP クライアントが、構築したページを監査し、見つかった問題を修正できます。
ヘッドレス Chrome 上でローカルに実行されます。データがアップロードされることはなく、アカウントもテレメトリーも不要です。
インストール
Claude Code
claude mcp add a11yscope -- npx -y a11yscope-mcp
Cursor / Claude Desktop / 任意の MCP クライアント — MCP 設定に追加します。
{
"mcpServers": {
"a11yscope": {
"command": "npx",
"args": ["-y", "a11yscope-mcp"]
}
}
}
Node 20 以降と Chromium ベースのブラウザーが必要です。インストール時にダウンロードは行われません。最初のスキャンでは、マシンにすでにインストールされている Chrome、Chromium、Edge、Brave を使用し、いずれも見つからない場合に限り、Chrome for Testing のビルド(約 150 MB)を Puppeteer のキャッシュに一度だけダウンロードします。特定のブラウザーを指定するには、A11YSCOPE_CHROME に実行ファイルのパスを設定します。
ツール
| ツール | 内容 |
|---|---|
scan_page | ヘッドレス Chrome で URL またはローカル HTML ファイルを読み込み、ルールごとにまとめた違反を返します。各違反には CSS セレクター、HTML スニペット、変更内容を示すメッセージが含まれます。 |
scan_html | エージェントが生成した HTML 文字列をスキャンします。マークアップが到達可能なサーバー上のスタイルシートを参照している場合は base_url を指定してください。それ以外の場合は CSS をインライン化してください。コントラストチェックには計算済みスタイルが必要です。 |
list_rules | 31 項目のチェックを一覧表示します。それぞれに WCAG 2.2 の達成基準、レベル、影響、修正方法のガイダンスが含まれます。 |
両方のスキャンツールで使用できるオプション:include_review(人による判断が必要な項目)、include_passed、max_findings_per_rule、ビューポートサイズ。
scan_page では、描画に時間がかかるページ向けに wait_ms も指定できます。
サイトがボットチェック(Cloudflare の「Just a moment…」など)を返す場合、scan_page はエラーを返して処理を拒否します。インタースティシャルをスキャンすると、ほとんど問題がないように見える結果になり、意味がないためです。
一般的なプロンプト:「a11yscope で http://localhost:3000 をスキャンしてすべての違反を修正し、もう一度スキャンしてください。」
結果の読み方
各ルールには status(failed、review、passed、inapplicable のいずれか)と checked 件数が返されます。これは、そのルールが対象とする種類の要素が DOM にいくつあったかを示します(img-alt ならすべての <img>、link-name ならすべてのリンク、ページレベルのルールなら 1)。検査対象がないルールは passed ではなく inapplicable となり、概要では rulesPassed と rulesNotApplicable が分けて集計されます。そのため、「修正してからもう一度スキャンする」場合は、img-alt の checked が 3 から 0 になっていれば、画像に説明を追加したのではなく、画像が削除されたと分かります。excluded は、検査対象のうち、非表示(aria-hidden、display:none)または装飾用(role="presentation")としてルールが除外した要素の数です。スキャン結果が checked 3/excluded 0 から checked 3/excluded 3 に変わった場合、画像に説明を追加したのではなく、画像が非表示になったことを意味します。実際に装飾用の画像もあるため、この点は人による確認が必要です。違反件数だけでなく、修正前後の checked と excluded を比較してください。ファイル名や埋め草の語句(image、photo、icon…)を使った代替テキストは、img-alt-redundant によって指摘されます。
scan_html は、マークアップがフラグメントの場合(ページレベルのチェックが、表示されるページではなくフラグメントについて説明することになります)、またはスタイルシートがない場合(コントラストとフォーカスの結果がブラウザーのデフォルト設定を反映します)、notes を追加します。
対象範囲は、トップドキュメントと、その内部にあるすべての同一オリジンのフレーム(深さを問いません)です。フレーム内の検出結果には、セレクターにフレームのパスが含まれます(iframe#chat >>> button)。ページレベルのチェック(言語、タイトル、h1、ランドマーク、スキップリンク、見出しの順序)はトップドキュメントのみを対象とします。作成者が変更できないサードパーティーコンテンツであるクロスオリジンのフレームは、summary.iframesNotEntered に集計され、注記に名前が示されますが、スキャンされません。開いたシャドウルートも同じように走査します。閉じたシャドウルートは、ページ内で実行されるどの処理からも読み取れません。
チェック項目
テキストによる代替(画像、フォームのラベル、ボタン、リンク、フレーム、SVG)、大きな文字と太字の免除を適用し、半透明の背景を合成した色のコントラスト、ドキュメント構造(言語、タイトル、見出し、メインランドマーク、スキップリンク、テーブル、リスト、重複した ID)、キーボード、ポインター、ARIA(ズームのロック、正の tabindex、フォーカス可能な aria-hidden 要素、インタラクティブ要素の入れ子、24×24 のターゲットサイズ、自動再生、字幕、無効なロール、必須の ARIA 状態、自動補完、フォーカスの可視性)。
アクセシビリティの専門家が構築したサイトを基準に調整しています。gov.uk、webaim.org、deque.com、a11yproject.com、w3.org/WAI は、いずれも違反が 0 件と報告します。これらのサイトで何かが報告された場合、そうでないと証明されるまでは不具合として扱います。誤検知の報告は、送っていただける情報の中でも特に役立ちます。
対応していないこと
自動チェックで見つけられるアクセシビリティ上の障壁は、およそ 3 分の 1 です。問題のない結果は良い兆候ですが、適合を保証するものではありません。代替テキストが正確か、スクリーンリーダーでページの内容が理解できるか、キーボードを使う人がタスクを完了できるか。これらに答えられるツールはなく、このツールも答えられるとは主張しません。判定できない項目は、合格や不合格ではなく review として返されます。専門家による評価の代わりにはならず、EAA、ADA、KWCAG、その他の規格への準拠を証明するものでもありません。
ライセンス
Copyright © 2026 Perceivable. npm および MCP クライアントを通じて、商用利用を含め、無料でインストールして実行できます。エンジンのソースコードは公開されているため、「マシンから何も外に送信されない」ことを信頼に頼るのではなく、検証できます。ただし、オープンソースではなく、複製、変更、再配布、または派生作品の公開を許諾するライセンスは付与されません。利用規約の全文は、このパッケージ内およびリポジトリのルートにある LICENSE ファイルをご覧ください。問題や誤検知の報告先:
https://github.com/perceivable/a11yscope/issues.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。