mcpField
A
A11Y Toolkit

A11Y Toolkit

ローカル
jquin.net開発ツール2今日更新

A11Y Toolkit について

A11Y Toolkit は、コーディングエージェント向けの WCAG 2.2 アクセシビリティツールキットで、MCP サーバーと CLI を提供します。監査、操作テスト、証拠整理、レポート作成を行い、人による確認が必要な基準も明示します。

主な機能

  1. 01WCAG 2.2 のウェブ・文書監査
  2. 02キーボード・フォーム・リフローテスト
  3. 03コントラスト検査と自動修正
  4. 04アクセシビリティ宣言と VPAT レポート
  5. 05スナップショット差分と証拠パック
  6. 06スクリーンリーダー記録とブラインドテスト

活用シーン

  1. 01デプロイ前のアクセシビリティ回帰確認
  2. 02PDF と DOCX のスクリーニング
  3. 03テキスト用の適合色の選定
  4. 04人が署名する監査証拠の準備

MCP 対応

MCP サーバーとして 32 個のツールと 6 個のプロンプトを公開し、アクセシビリティ監査、修正、文書作成、回帰確認に利用できます。Agent skill も提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"kinti-a11y-toolkit": {
"command": "uvx",
"args": [
"a11y-toolkit"
]
}
}
}
起動コマンドuvx a11y-toolkit

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypia11y-toolkit5.16.0

ツール

24

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
urlstringいいえ取得して監査する URL
htmlstringいいえ直接監査する raw HTML(url より優先)
langenumいいえ出力言語(デフォルト en)es | en
pagesintegerいいえ同一ドメインを軽量にクロールし、最大 N ページを監査して、スコアと繰り返し検出される項目を集計します(デフォルト 1、最大 20)
timeoutnumberいいえ取得タイムアウト(秒)(デフォルト 30)

詳細

a11y-toolkit — AI コーディングエージェントのためのアクセシビリティレイヤー

コーディングエージェントに WCAG 2.2 を — 監査、修正、文書化、監視。依存関係ゼロ、スペイン語/英語対応。

CI PyPI Downloads License: MIT Python 3.9+ MCP Sponsor

WCAG 2.2 のサイクル全体をカバーする 32 個の MCP ツール、6 個のプロンプト、1 つのスキルを提供します。監査、修正、文書化、監視、引き継ぎに加え、スクリーンリーダーが公開する情報だけを認識してエージェントが実際のタスクに挑む、目隠しユーザビリティテストにも対応しています。55 項目の A/AA 基準のうち 51 項目に自動シグナルがあり(93%)、すべての検出結果にエージェントが適用できる具体的な修正方法が付属します。また、レンダリングツールは Chromium、Firefox、WebKit、Chrome、Edge など、お使いのブラウザーで動作します。

欧州アクセシビリティ法は 2025 年 6 月に施行され、ADA 訴訟は後を絶たず、AI エージェントが今やウェブの大半を作成しています。スキャンだけでは防御になりません。機械が検出し、人間が署名します。

a11y-toolkit の動作例:監査(スコア 64)、合格に最も近い色、再監査(94)— 実際のツール出力

クイックスタート

# MCP — one line, any MCP client (Claude, Cursor, Codex, Windsurf, …)
claude mcp add a11y-toolkit -- uvx --from a11y-toolkit a11y-toolkit-mcp

# CLI — same engine, one command
pip install a11y-toolkit
a11ytoolkit audit --url https://example.com
a11ytoolkit pair "#1f2328" "#fbfaf7"

静的監査、コントラスト計算、PDF/DOCX のスクリーニング、証拠パックは、依存関係ゼロで実行できます。レンダリングツール(画像上の実際のコントラスト、キーボードトラップ、リフロー、フォーム)には、追加で Playwright が必要です。 pip install playwright && playwright install chromium

機能

機能axe-core / Lighthouse / pa11ya11y-toolkit
画像やグラデーション上のテキストコントラスト(実際の背景をピクセル単位でサンプリング)いいえはい
証拠パックから VPAT 2.5(WCAG)草案を作成 — EAA 準拠声明に相当する米国/ADA 向け文書いいえはい
フォームのエラーテスト:無効なデータを入力して実際に送信し、結果を判定いいえはい
キーボードトラップ:実際の Tab 移動と Escape による解除テストに加え、フォーカス/入力をトリガーとするナビゲーションも検査いいえはい
無限スクロールの監査:フォーカスの維持、お知らせ、フィードの終端いいえはい
320px でのリフローと WCAG のテキスト間隔上書きを測定いいえはい
スクリーンリーダーの読み上げ内容:視覚障害のあるユーザーが聞く内容を線形化いいえはい
実際にホバーして検出する、Escape を無視するツールチップ(1.4.13)いいえはい
EAA/RD 1112/2018 に関する法的声明をスペイン語と英語で作成いいえはい
人間が署名できる証拠パック — ハッシュ、マトリックス、空の署名欄いいえはい
ACT ルールとの相互運用:EARL エクスポートと、W3C 公式テストケースに対するルールごとの一貫性レポートいいえはい
WCAG 3 草案のプレビュー — 2.2 の検出結果を草案の成果に沿って再分類し、架空のスコアは表示しないいいえはい
コアは依存関係ゼロで動作し、スペイン語/英語に対応。お使いのブラウザーで利用可能大規模なランタイムが必要依存関係ゼロ

ツール(32)

説明、引数、戻り値の形式、動作の詳細については、docs/tools.md を参照してください。特に記載がない限り、すべてのツールで lang(en|es)を指定でき、出力は JSON です。scripts/gen_readme.py によって server.TOOLS から生成されています。

ツールカテゴリ機能
a11y_audit_url監査WCAG の簡易監査
a11y_audit_dom監査レンダリング済みページの WCAG 監査
a11y_audit_pdf監査PDF のアクセシビリティスクリーニング
a11y_docx_screen監査DOCX のアクセシビリティスクリーニング
a11y_journey_verdictブラインドフォールドテストブラインドフォールドでの操作に関する判定
a11y_autofix修正とコントラスト安全な自動修正を決定論的に実施
a11y_contrast_pair修正とコントラストコントラスト比と判定
a11y_contrast_image修正とコントラスト画像上のテキストのコントラスト
a11y_contrast_dom修正とコントラストライブ要素のコントラストをサンプリング
a11y_suggest_color修正とコントラスト基準を満たす最も近い色
a11y_generate_declarationドキュメントアクセシビリティ声明(EAA/RD 1112)
a11y_generate_vpatドキュメントVPAT 2.5 レポート(WCAG 版)
a11y_badgeドキュメント誠実な SVG バッジ
a11y_snapshot監視(リグレッション)アクセシビリティスナップショットとタブ順序
a11y_diff監視(リグレッション)スナップショットのリグレッション差分
a11y_diff_urls監視(リグレッション)ステージング環境と本番環境の差分
a11y_aria_live_snippet監視(リグレッション)aria-live モニターのスニペット
a11y_criterion知識とコンテキストWCAG の達成基準を解説
a11y_html_validate知識とコンテキストW3C Nu による検証
a11y_keyboardインタラクションキーボードトラップ検出
a11y_formsインタラクションフォームエラーのテスト
a11y_hoverインタラクションホバーの解除可能性(1.4.13)
a11y_reflowインタラクション320px でのリフローチェック
a11y_scrollインタラクション無限スクロールの監査
a11y_sr_transcriptインタラクションスクリーンリーダーのトランスクリプト
a11y_reduced_motionインタラクションprefers-reduced-motion が尊重されているか
a11y_forced_colorsインタラクションforced-colors での表示維持を判定するヒューリスティック
a11y_vtt_checkインタラクションWebVTT 字幕の品質
a11y_evidenceカバレッジと証拠証拠パック(検証可能な引き継ぎ)
a11y_disproveカバレッジと証拠反証ツール:指摘事項を再検証
a11y_ledgerカバレッジと証拠カバレッジ台帳(永続化)
a11y_wcag3_previewカバレッジと証拠WCAG 3 ドラフトのプレビュー(スコアなし)

6 つのプロンプト

  • audit-page(url*、language):URL のアクセシビリティ監査ワークフロー全体を実行します。自動ツールに加え、手動で確認すべき項目(キーボード、スクリーンリーダー、ズーム)も含まれます。すべてのプロンプトは英語とスペイン語に対応しています。

  • fix-contrast(fg*、bg*、context):コントラストを改善するためのガイド付き手順です。色の組み合わせ(または画像上のテキスト領域)を検証し、基準を満たす最も近い色を取得して、コードに適用します。すべてのプロンプトは英語とスペイン語に対応しています。

  • pre-deploy-check(url*、baseline):デプロイ前の回帰チェックです。URL の簡易監査と、ベースラインのスナップショットとの差分確認を行います。すべてのプロンプトは英語とスペイン語に対応しています。

  • declaration-eaa(entity*、url*、status):欧州アクセシビリティ法(European Accessibility Act)/RD 1112/2018 に準拠したアクセシビリティ声明を生成し、不足している法的項目があればユーザーに確認します。すべてのプロンプトは英語とスペイン語に対応しています。

  • conformance-wcagem(url*、tier、language):サイトの WCAG-EM 適合性を段階的に評価します。簡易スクリーニングから、代表的なサンプルに対するエージェント検証付きのガイド付き評価を経て、適合性レポートの入力項目までを扱います。すべてのプロンプトは英語とスペイン語に対応しています。

  • blindfold-task(url*、goal*、kind、language):ブラインドフォールドユーザビリティテストです。エージェントはアクセシビリティツリーだけを認識し、アクセシブルネームとキーボードだけで操作して、実際のタスクに取り組みます。各ステップでつまずいた点を記録し、最後に a11y_journey_verdict で締めくくります。他のアクセシビリティツールにはない機能です。エージェント自身がスクリーンリーダーのユーザーとなり、タスクベースの非視覚テストを行います。すべてのプロンプトは英語とスペイン語に対応しています。

インストール

mcp-name: io.github.kinti/a11y-toolkit · PyPI: a11y-toolkit · Zenodo DOI: 10.5281/zenodo.22843722

あらゆる MCP 対応クライアントで動作します — Claude Code/Desktop、Cursor、Windsurf、VS Code、 Codex CLI、OpenCode、ZCode、Zed、Cline、Continue、Kimi Code… 検証済みの設定形式はすべて docs/clients.md をご覧ください。

claude mcp add a11y-toolkit -- uvx --from a11y-toolkit a11y-toolkit-mcp

JSON 設定を使うこともできます:

{
  "mcpServers": {
    "a11y-toolkit": {
      "command": "uvx",
      "args": ["--from", "a11y-toolkit", "a11y-toolkit-mcp"],
      "timeoutMs": 60000
    }
  }
}

レンダリングを伴うツールは、Playwright が利用可能な場合に使用し、browser パラメーター(auto、chromium、firefox、webkit、chrome、msedge — 利用可能なものを最初に自動検出)を受け付けます。ログインが必要な環境を監査する場合は、auth_state(Playwright の storage_state パス)を指定できます。 それ以外の機能は依存関係なしで動作します。

スキル
git clone https://github.com/kinti/a11y-toolkit && cd a11y-toolkit
./skill/install-skill.sh     # → ~/.zcode/skills and ~/.claude/skills

エージェントフック — a11ytoolkit init

AGENTS.md を自分で読み込むエージェントは、重要なルール — UI を変更した後は、作業完了とする前に再監査する — を、正確なコマンドとともに取得できます:

cd your-project
uvx --from a11y-toolkit a11ytoolkit init     # writes/merges the AGENTS.md hook (idempotent)

MCP の設定ブロックと、任意のスキルのインストール手順も出力されます。 --check はフックが存在するかどうかを報告します(存在しない場合は終了コード 1 を返すため、CI で利用できます)。

言語 — コミュニティのロケールパック

ユーザー向けのメッセージ(検出結果、修正方法、法的な文言)はすべて ロケールパックに収録されています。言語ごとに JSON ファイルがあり、現在は es と en が同梱されています。言語の追加は 1 ファイルだけの PR で行えます。_template.json をコピーして、{placeholders} を維持しながら翻訳し、python3 tests/test_locales.py を実行すれば、キー、プレースホルダー、複数形ルール、完全性が機械的に検証されます。axe-core のロケールと同じコミュニティモデルですが、axe-core にはない検証機能を備えています。ガイド: docs/i18n.md。下流の製品では、フォークせずにオーバーレイを使ってブランド独自の文言を重ねられます。

CLI — 同じエンジンを 1 つのコマンドで

pip install a11y-toolkit(または uv tool install a11y-toolkit)でインストールしてください。

a11ytoolkit audit --changed                     # ONLY what changed since HEAD (CI gate)
a11ytoolkit audit --changed --base origin/main  # a branch's changes — exit 2 on high/medium
a11ytoolkit audit --url https://example.com --pages 5   # sitemap-first crawl
a11ytoolkit pair "#1f2328" "#fbfaf7"                    # contrast
a11ytoolkit image hero.jpg --text "#fff" --region 120,40,420,90
a11ytoolkit forms https://mysite/contact                # form errors
a11ytoolkit kbd https://mysite                          # keyboard traps + 3.2.1/3.2.2
a11ytoolkit reflow https://mysite                       # 320px reflow
a11ytoolkit scroll https://medium.com/feed              # infinite scroll
a11ytoolkit validate --url https://example.com          # W3C Nu
a11ytoolkit hover https://mysite                        # tooltip dismissibility
a11ytoolkit fix --file page.html -o fixed.html          # safe autofix
a11ytoolkit declaration --entity "Acme" --url https://… --status partial --framework eaa
a11ytoolkit snapshot https://mysite --out before.json   # before deploy
a11ytoolkit diff before.json after.json                 # after deploy
a11ytoolkit evidence audit.json -o pack.json            # verifiable evidence pack
a11ytoolkit disprove --url https://mysite               # re-verify findings
a11ytoolkit budget --budget budget.json --audit audit.json  # only NEW findings block
a11ytoolkit sarif --from-audit audit.json -o a11y.sarif # GitHub code scanning
a11ytoolkit badge --score 92 --out badge.svg            # honest SVG
a11ytoolkit contrast-dom https://mysite --selector ".hero h1"  # auto-region pixel sampling
a11ytoolkit vpat pack.json --product "Acme" -o vpat.html      # VPAT 2.5 (WCAG) draft
a11ytoolkit earl --from-audit audit.json -o earl.json          # ACT Rules / EARL export
a11ytoolkit wcag3 --from-audit audit.json                      # WCAG 3 draft preview (no score)

カバレッジ:WCAG 2.2 A/AA の55基準中51基準(93%)

自動シグナルあり手動のみ(真に人間による確認が必要)
1.1.1、1.2.2、1.2.3、1.2.5、1.3.1–1.3.5、1.4.1–1.4.5、1.4.10–1.4.13、2.1.1、2.1.2、2.1.4、2.2.1、2.2.2、2.4.1–2.4.7、2.4.11、2.5.1–2.5.4、2.5.7、2.5.8、3.1.1、3.1.2、3.2.1–3.2.4、3.2.6、3.3.1–3.3.4、3.3.8、4.1.2、4.1.31.2.1(音声の文字起こし)、1.2.4(ライブキャプション)、2.3.1(点滅の検出)、3.3.7(重複入力)

手動のみの4基準には、それぞれナレッジ項目(a11y_criterion)があり、手作業での確認方法をエージェントに具体的に伝えます。この境界はすべてのレポートに記載されます。

a11y.es を支えるエンジン

a11y.es は、このエンジンを稼働させるスペイン市場向けのアクセシビリティサービスです。このサービスは別のコードベースであり、このリポジトリはエンジンです。

実際のページで検証済み

実際のページで axe-core 4.10 と比較し、毎月ベンチマークを実施しています(方法と結果)。実際のサイトを対象としたタスクベースのエージェントベンチマークも実施しており、スペインで特に重要なページを層化抽出して含めています(方法と結果)。axe が報告しない gov.uk の実際の WCAG 違反を発見しました(青いボタンのコントラスト比は3.91:1で、手動確認済み)。また、独自の誤検出(非表示のスキップリンク、ハニーポットフィールド、単一コンテキストの汎用リンク、画像の alt の accname)を解消し、それぞれ回帰テスト用フィクスチャを用意しました。

さらに、W3C の公式 ACT テストケースでも実行しています。scripts/act_report.py により、EARL 実装レポートを再生成できます。— 実装している公開済み ACT ルールすべてと100%一致しています(公式テストケース355件、ルール20件中20件で不整合ゼロ。w3c/wcag-act-rules リポジトリを基にリリースごとに検証。ルール別の内訳はdocs/act-report-summary.mdを参照してください)。WCAG 2.2 カタログ(A/AA/AAA の86基準)と WCAG 3 のアウトカムレジストリも、正規の w3.org ソースを基に検証しています(scripts/wcag22_ingest.py、scripts/wcag3_ingest.py)。

これを作った理由

私は2003年からウェブサイトのアクセシビリティ監査を行っています。20年の間にツールは高速化しましたが、問題は変わりませんでした。同じ代替テキストの欠落、同じキーボードトラップ、同じく入力内容を消してしまうフォームです。AI エージェントがウェブの大半を書き始めたとき、監査のギャップは人員配置の問題ではなく、インフラの問題になりました。

そこで、監査のときにいつも手元にあってほしいと思っていたツールを作りました。単なるスキャナーではありません。スキャナーはすでにあります。作業の半分をこなし、どこまで対応できるかを正確に示し、残りを承認者に引き継ぐためにまとめるツールキットです。上で触れた gov.uk の違反は、人工的なベンチマーク用の事例ではありません。このエンジンが見つけ、私自身の目で確認してから記録しました。

午後の作業がひとつ省けたなら、スターを付けてください。次の監査担当者に見つけてもらう助けになります。役に立たなかった場合は、イシューを作成して不足している点を教えてください。

誠実さを組み込んでいます

すべての監査で、A/AA の55基準のうち93%を自動化でカバーできる(AAA と真に人間による確認が必要な項目を含めた、WCAG 全体のおよそ3分の1)— 残りには人間による確認が必要です。 audit-page プロンプトとスキルでは、手動確認チェックリストを使い、エージェントが確認可能な項目(キーボード、フォーカス、ズーム、通知されるエラー)をチェックします。これはフィルターであり、判定ではありません。残りの人手による作業は基準ごとに見積もられています — MIN 23(読み取って確認)、MED 19(ブラウザーで検証)、MAX 13(実際に操作して判断)。全表。また、エビデンスパックは承認者への引き継ぎ資料であり、スクリーンリーダーの文字起こしも含まれます。これにより、レビュー担当者は目の見えないユーザーに何が聞こえるかを確認できます。

セキュリティとスコープ

ローカルツールです。お使いのマシン上で、ユーザーとして実行されます。a11y_audit_url は http/https のみ受け付けます(file:// は不可です。ローカル HTML には --file/html を使用してください)。a11y_html_validate は html モードではコンテンツを W3C サービスに POST します(url モードでは URL のみを共有します。セルフホスト版の vnu にも対応しています)。path/output_path はローカルパスを読み書きするため、信頼できる MCP クライアントで使用してください。

開発

python3 tests/test_contrast.py && python3 tests/test_audit.py && python3 tests/test_v32.py \
  && python3 tests/test_dom.py && python3 tests/test_cli.py && python3 tests/test_solido.py \
  && python3 tests/test_mcp.py && python3 tests/test_png.py && python3 tests/test_vpat.py \
  && python3 tests/test_act.py

Playwright がない場合、tests/test_dom.py は自動的にスキップされます。tests/test_solido.py は設計上の不変条件(カタログの整合性、バージョンの一致、件数の網羅性、悪意ある HTML に対するファジング)を検証します。リリースは make release V=X.Y.Z で行います。バージョン更新、ゲートの通過、タグ付け、プッシュを一括で実行します。

ロードマップ

最近完了した項目:シャドウ DOM と状態コントラストを含むレンダリング監査、フォームエラーのテストと自動修正、キーボードトラップ、無限スクロール、リフロー、W3C Nu との統合、SARIF とエラーバジェット、エビデンスパック(仕様公開済み、自己検証機能付き)、サイトマップのクロール、ログインが必要なページの監査、ブラウザーの自動検出、スクリーンリーダーの文字起こし、基準ごとの作業コストの見積もりです。全履歴は変更履歴にあります。

次の項目を、おおむね以下の順で進めます。

  • 認証インターロック:外部監査人の署名が、ハッシュでエビデンスパックを参照できるようにします(スキーマは監査人側のものを使用し、こちらで適応します)
  • 実際のページを対象に CI で実行した axe-core の月次ベンチマーク結果を公開します
  • NVDA と VoiceOver の出力に照らして、スクリーンリーダーの文字起こしを相互確認します
  • 検証済みクライアント設定をさらに追加します(JetBrains AI、Gemini CLI)。docs/clients.mdと同じ方法で対応します

作者

Jesús Quintana Fernández(jquin.net)— 2003 年から SEO/GEO コンサルタントおよびウェブアクセシビリティの実務家として活動しています。MIT © 2026。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。