Smithery Logo
MCPsSkillsDocsPricing
Login
NewFlame, an assistant that learns and improves. Available onTelegramSlack
    mae616

    accessibility-engineer

    mae616/accessibility-engineer
    Design
    8

    About

    SKILL.md

    Install

    • Telegram
      Telegram
    • Slack
      Slack
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    • Download skill
    ├─
    ├─
    └─
    Smithery Logo

    Give agents more agency

    Resources

    DocumentationPrivacy PolicySystem Status

    Company

    PricingAboutBlog

    Connect

    © 2026 Smithery. All rights reserved.

    About

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

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

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

    1. セマンティック構造(ランドマーク/見出し/リスト)
    2. キーボード操作(Tab順/Enter/Space/Escape)
    3. ARIA適用(必要箇所だけ。理由付き)
    4. 状態(disabled/loading/error)と通知(必要なら aria-live)
    5. a11yチェック項目の自己判定(OK/要対応)
    Recommended Servers
    GroundRoute: Web Search for AI Agents across 6 Engines ($10 free credit)
    GroundRoute: Web Search for AI Agents across 6 Engines ($10 free credit)
    Browser tool
    Browser tool
    ScrapeGraph AI Integration Server
    ScrapeGraph AI Integration Server
    Repository
    mae616/ai-template
    Files