mcpField
K
keyboard-accessibility

keyboard-accessibility

github.com/planetabhiデザイン・UI173 回インストール7 週間前に更新
リポジトリ

keyboard-accessibility について

インタラクティブな画面のキーボードアクセシビリティを確認し、改善するスキルです。問題の重大度、WCAG 2.2 の基準、一般的なウィジェットやフォーカス動作の参考資料を提供します。

主な機能

  1. 01キーボードのみでの操作指針
  2. 02アクセシビリティ問題の重大度分類
  3. 03ウィジェットとフォーカス動作の資料
  4. 04WCAG 2.2 基準への対応
  5. 05レビューと編集前の確認指針

活用シーン

  1. 01画面のキーボード操作性の監査
  2. 02ダイアログやウィジェットのフォーカス確認
  3. 03キーボードアクセシビリティ修正の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/planetabhi/skills --skill keyboard-accessibility

インストール後、Claude Code で/keyboard-accessibilityを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

reference/
checklist.md
composite-widgets.md
dialogs.md
focus-not-obscured.md
focus-order.md
focus-visibility.md
input-alternatives.md
keyboard-traps.md
native-elements.md
navigation-and-notifications.md
skip-links.md
visibility-mechanisms.md
widget-keys.md

詳細

キーボードアクセシビリティ

すべてのインタラクティブな要素と機能に、以下のルールを適用してください。例は React を優先しています。Vanilla JavaScript は、意味のある違いがある場合にのみ示しています。詳細なルールとコード例は ./reference/ にまとめられています。ルールを適用したり引用したりする前に、該当するファイルを読んでください。

基本原則

すべてのインタラクティブな機能は、軌跡に沿った移動に真に依存する機能(フリーハンド描画など)を除き、マウスやタッチを使わず、キーボードだけで完全に利用できなければなりません。キーボードで操作できることは、「Tab キーでフォーカスできる」ことと同じではありません。ネイティブウィジェットと複合ウィジェットではキー操作の慣習が異なり、ユーザーがすべてのコンポーネントに到達し、操作し、そこから離れられる必要があります。

確認

レビューのみの場合は、作業を中断せずに指摘事項を報告してください。既存ファイルを編集する前に、まず変更内容を確認し、適切な判断に必要な情報があれば推測せずに尋ねてください。

重大度の基準

レベル意味
Criticalキーボードおよび支援技術(AT)のユーザーがタスクを完了できなくなる
Seriousキーボード操作が大きく損なわれ、妥当な回避策がない
Moderate操作に支障が生じるが、回避策がある
Minor影響はわずかだが、ベストプラクティスに満たない

重大度はルール単独ではなく、タスクへの実際の影響に基づいて判断してください。ユーザーはコンポーネントに到達し、操作し、そこから離れられるか。必須のタスクが妨げられているか。フォーカスが失われたり、誤解を招く位置に置かれたりしていないかを確認します。

リファレンス一覧

ルールとコード例は ./reference/ にまとめられています。ルールを適用したり引用したりする前に、該当するファイルを読んでください。重大度は、ルールに違反した場合の影響を示します。

WCAG 2.2 の主な達成基準

  • 2.1.1 キーボード(A)、違反した場合は Critical
  • 2.1.2 キーボードトラップなし(A)、違反した場合は Critical
  • 2.1.4 文字キーのショートカット(A)
  • 2.4.1 ブロックスキップ(A)
  • 2.4.3 フォーカス順序(A)
  • 2.4.7 フォーカスの可視化(AA)
  • 2.4.11 フォーカスが隠されないこと(最小)(AA)
  • 2.4.13 フォーカスの外観(AAA)
  • 2.5.1 ポインターのジェスチャー(A)
  • 2.5.3 ラベルを含む名前(A)
  • 2.5.8 ターゲットサイズ(最小)(AA)

参考資料

標準の動向: これらのルールは WCAG 2.2 AA を対象としています。WCAG 3.0 は 開発中です。キーボードとフォーカスに関する要件は、引き続きおおむね 互換性が保たれる見込みです。https://www.w3.org/TR/wcag-3.0/ を確認してください。

アンチパターン

  • 順序を強制するために正の tabindex 値を使うこと。代わりに DOM の順序を修正してください。
  • button や a を使うべき場所で、クリック可能な div や span を使うこと。
  • 想定されるキー入力を抑制する、一律の preventDefault()。
  • 視認できる代替手段を用意せずにフォーカスアウトラインを削除すること。
  • フォーカス可能な要素に aria-hidden="true" を設定し、フォーカスを取り残すこと。

執筆者:@planetabhi

コメント