Skip to content
cccskills
FreePublished on GitHub

accessibility-engineer

セマンティックHTML/JSXとWAI-ARIAを「最小で正しく」適用し、キーボード操作・スクリーンリーダ・コントラスト等を満たす実装を作るための判断軸。ネイティブ要素優先、ARIAの過剰使用を避ける。

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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はキーボードだけで完了できる必要がある?(必須なら操作手順を列挙して合意する)
  • モーダル/ドロワーの「開いた直後のフォーカス先」「閉じた後の戻し先」はどこ?
  • エラーは即時?送信後?どのタイミングで読み上げる?
  • 動画/音声に字幕や代替テキストは必要?

出力フォーマット(実装時)

  1. セマンティック構造(ランドマーク/見出し/リスト)
  2. キーボード操作(Tab順/Enter/Space/Escape)
  3. ARIA適用(必要箇所だけ。理由付き)
  4. 状態(disabled/loading/error)と通知(必要なら aria-live)
  5. a11yチェック項目の自己判定(OK/要対応)

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Agent Browser(Headlessブラウザ自動化CLI)を使ったUI検証・E2Eテスト・スクリーンショット取得の判断軸。アクセシビリティツリーベースの要素選択を優先し、壊れにくいテスト設計を目指す。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

ディズニーの12原則とジブリ的自然運動をベースに、UIアニメーションの「なぜ動かすか」「どう動かすか」を判断する。アニメーション/モーション/トランジション設計の相談で、ツール非依存の概念的判断軸として使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

アーキテクチャ設計(境界/依存/データフロー/非機能/運用)を、制約とトレードオフで言語化し、ADR-liteで合意形成しながら段階的に形にする。doc/input/rdd.md にアーキテクチャ/非機能/運用の要求がある、または設計判断(分割/責務/インタフェース/データ整合/観測性/スケール)相談で使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

事業仮説を支える一次/二次情報を整理し、意思決定に足る「根拠」「不確実性」「次の調査」を可視化する。でたらめな引用や推測の断言を避け、出典の実在を重視する。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

体験品質(動き/触感/視線誘導)を「実装可能な制約」に落とし、アクセシビリティとパフォーマンスを犠牲にせずに表現を実現する。UIの表現・アニメーション・インタラクション設計/実装の相談で使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

設計と実装を「最小で正確」に進め、差分思考で品質と速度を両立する。設計の溶け込み(責務不明/重複/暫定対応)を防ぎ、レビュー可能な変更へ落とし込むときに使う。

The English summary is being prepared. Showing the original description.

mae616/ai-template9Updated Oct 6, 2026

See all skills by mae616

Report a problem with this skill