Agent Browser(Headlessブラウザ自動化CLI)を使ったUI検証・E2Eテスト・スクリーンショット取得の判断軸。アクセシビリティツリーベースの要素選択を優先し、壊れにくいテスト設計を目指す。
無料GitHub で公開
accessibility-engineer
セマンティックHTML/JSXとWAI-ARIAを「最小で正しく」適用し、キーボード操作・スクリーンリーダ・コントラスト等を満たす実装を作るための判断軸。ネイティブ要素優先、ARIAの過剰使用を避ける。
インストール方法を見る含まれるファイル(1)
- SKILL.md4.8 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Accessibility Engineer Skill
発火条件(適用タイミング)
- 依頼が「アクセシビリティ対応」「WAI-ARIA」「スクリーンリーダ対応」「セマンティックHTML」「キーボード操作」「フォーカス管理」なら適用する。
- UI実装(
/design-ui//design-assemble/ フロント実装)に入るときは、原則このskillを併用する。
このSkillの基本方針(最重要)
- ネイティブ要素優先: まず正しいHTML要素(
button/a/label/input等)で解決する。ARIAは最後の手段。 - ARIAは最小:
role/aria-*を足して“それっぽく”しない。要件があるときだけ付ける。 - 操作できる=伝わる: 見た目だけでなく、支援技術に「状態・名前・目的」が伝わることをDoDにする。
- キーボードが基準: マウスだけで成立するUIは未完成。フォーカス移動と操作を先に設計する。
実装ルール(チェック項目)
1) セマンティック構造
- 見出しは順序を守る(
h1→h2…)。見た目のために見出しを飛ばさない。 - 主要領域はランドマークを作る(
header/nav/main/footer、必要ならaside)。 - リストは
ul/ol/li、定義はdl/dt/ddを使う(divで代替しない)。
2) “名前”の付け方(Accessible Name)
- ボタン/リンク/入力は「名前」が必要(スクリーンリーダが読み上げるラベル)。
- 優先: 可視テキスト
- 次点:
aria-label(可視テキストを置けない場合) - 併用:
aria-labelledby(既存要素を参照して名前を構成する場合)
- アイコンだけのボタン/リンクは必ず名前を付ける(例: 検索/閉じる)。
3) フォーム(必須)
labelとinputを関連付ける(for/id)。プレースホルダをラベル代わりにしない。- 必須/任意、エラー、ヒントを機械可読で伝える(例:
aria-describedbyで補助文を紐付け)。 - エラーは「どこが・なぜ・どう直す」が分かる文言にする。
4) 状態と通知(動的UI)
disabledはネイティブ属性を優先(button disabled等)。- トグルは
aria-pressed/aria-expandedなど要件に合う属性で状態を表す(ネイティブ要素で足りない場合のみ)。 - 非同期の完了/失敗などは必要に応じて
aria-liveを使う(乱用しない)。
5) キーボード操作とフォーカス
- タブ移動が論理順になるようにDOM順を設計する(
tabindexで無理矢理並べ替えない)。 tabindex="0"は「フォーカス可能にする」最小用途でのみ。tabindex="-1"は「プログラム的にフォーカス移動したい」時のみ。- フォーカス可視(
focus-visible)を必ず担保する(消さない)。 - ダイアログ/モーダルは開閉時のフォーカス移動・戻し先を定義する(フォーカストラップが必要な場合は実装する)。
6) 画像/メディア
- 画像は目的に応じて
altを付ける(装飾なら空alt="")。 - 動画/音声は操作(再生/停止)と代替(字幕/テキスト)要件を確認する(不明なら短問)。
“やってはいけない”典型
divにonClickを付けてボタン扱い(キーボード/役割が崩れる)。role="button"で誤魔化す(ネイティブのbuttonを使う)。- 何でも
aria-labelを付ける(可視ラベルがあるのに重複して読み上げ事故になる)。 - フォーカスリングを消す(見えないフォーカスは操作不能)。
短問テンプレ(不足情報を推測しない)
- このUIはキーボードだけで完了できる必要がある?(必須なら操作手順を列挙して合意する)
- モーダル/ドロワーの「開いた直後のフォーカス先」「閉じた後の戻し先」はどこ?
- エラーは即時?送信後?どのタイミングで読み上げる?
- 動画/音声に字幕や代替テキストは必要?
出力フォーマット(実装時)
- セマンティック構造(ランドマーク/見出し/リスト)
- キーボード操作(Tab順/Enter/Space/Escape)
- ARIA適用(必要箇所だけ。理由付き)
- 状態(disabled/loading/error)と通知(必要なら aria-live)
- a11yチェック項目の自己判定(OK/要対応)
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
mae616/ai-template92026年10月6日 更新
ディズニーの12原則とジブリ的自然運動をベースに、UIアニメーションの「なぜ動かすか」「どう動かすか」を判断する。アニメーション/モーション/トランジション設計の相談で、ツール非依存の概念的判断軸として使う。
mae616/ai-template92026年10月6日 更新
アーキテクチャ設計(境界/依存/データフロー/非機能/運用)を、制約とトレードオフで言語化し、ADR-liteで合意形成しながら段階的に形にする。doc/input/rdd.md にアーキテクチャ/非機能/運用の要求がある、または設計判断(分割/責務/インタフェース/データ整合/観測性/スケール)相談で使う。
mae616/ai-template92026年10月6日 更新
事業仮説を支える一次/二次情報を整理し、意思決定に足る「根拠」「不確実性」「次の調査」を可視化する。でたらめな引用や推測の断言を避け、出典の実在を重視する。
mae616/ai-template92026年10月6日 更新
体験品質(動き/触感/視線誘導)を「実装可能な制約」に落とし、アクセシビリティとパフォーマンスを犠牲にせずに表現を実現する。UIの表現・アニメーション・インタラクション設計/実装の相談で使う。
mae616/ai-template92026年10月6日 更新
設計と実装を「最小で正確」に進め、差分思考で品質と速度を両立する。設計の溶け込み(責務不明/重複/暫定対応)を防ぎ、レビュー可能な変更へ落とし込むときに使う。
mae616/ai-template92026年10月6日 更新