본문으로 건너뛰기
cccskills
무료GitHub에 공개

accessibility-engineer

Apply semantic HTML/JSX and WAI-ARIA correctly and minimally. Apply when implementing any UI, especially forms, interactive components, or when accessibility is mentioned.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Accessibility Engineer Skill

When to Apply

Apply this skill when the request involves:

  • Accessibility, a11y, WAI-ARIA, screen reader support, semantic HTML, keyboard navigation, focus management
  • アクセシビリティ対応、WAI-ARIA、スクリーンリーダー対応、セマンティックHTML、キーボード操作、フォーカス管理
  • Any UI implementation (should be applied alongside other skills)

Core Principles (Most Important)

  • Native elements first. Solve with proper HTML elements (button, a, label, input, etc.) before reaching for ARIA.
  • ARIA is minimal. Don't add role/aria-* to make things "seem" accessible. Only add when there's a real requirement.
  • Operable = Communicable. Not just visually—assistive tech must receive state, name, and purpose. This is the Definition of Done.
  • Keyboard is the baseline. Mouse-only UI is incomplete. Design focus movement and operations first.

Implementation Rules

1) Semantic Structure

  • Maintain heading order (h1 → h2 → ...). Don't skip levels for styling.
  • Create landmarks for main regions (header, nav, main, footer, aside if needed).
  • Use ul/ol/li for lists, dl/dt/dd for definitions—not div substitutes.

2) Accessible Names

  • Buttons, links, inputs need "names" (labels read by screen readers).
    • Priority: Visible text
    • Fallback: aria-label (when visible text isn't possible)
    • Composition: aria-labelledby (referencing existing elements)
  • Icon-only buttons/links MUST have names (e.g., "Search", "Close").

3) Forms (Required)

  • Associate label with input (for/id). Never use placeholder as the only label.
  • Communicate required/optional, errors, hints machine-readably (e.g., aria-describedby for helper text).
  • Errors must explain: what's wrong, why, and how to fix.

4) States and Announcements (Dynamic UI)

  • Use native disabled attribute first (button disabled, etc.).
  • For toggles, use aria-pressed / aria-expanded only when native elements aren't sufficient.
  • Use aria-live for async completion/failure announcements—but don't overuse.

5) Keyboard Operation and Focus

  • Design DOM order so tab sequence is logical. Don't force reorder with tabindex.
  • tabindex="0": minimal use to make something focusable.
  • tabindex="-1": only for programmatic focus movement.
  • Always preserve visible focus (focus-visible). Never hide it.
  • Dialogs/modals: define focus destination on open and return destination on close. Implement focus trap if needed.

6) Images and Media

  • Use alt based on purpose (decorative images get empty alt="").
  • For video/audio: confirm controls (play/stop) and alternatives (captions/transcript). Ask if unclear.

Anti-Patterns (Never Do This)

  • div with onClick acting as button (breaks keyboard/role).
  • Using role="button" as a workaround (use native button).
  • Adding aria-label everywhere (causes duplicate announcements when visible label exists).
  • Removing focus ring (invisible focus = inoperable).

Clarification Questions (Don't Assume)

  • Must this UI be completable with keyboard only? (If yes, enumerate operation steps and agree.)
  • For modal/drawer: what gets focus on open? What gets focus on close?
  • When are errors announced? Immediately? After submit?
  • Does video/audio need captions or text alternatives?

Output Format (For Implementation)

  1. Semantic structure (landmarks, headings, lists)
  2. Keyboard operation (Tab order, Enter, Space, Escape)
  3. ARIA usage (only where needed, with justification)
  4. States (disabled/loading/error) and announcements (aria-live if needed)
  5. Accessibility checklist self-assessment (OK / needs work)

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Translate motion, interaction, and visual experience into implementable constraints while preserving accessibility and performance. Apply when working on animations, transitions, scroll effects, or micro-UX.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mae616/design-skills112026년 1월 30일 업데이트

Translate designs and UI requirements into robust, extensible implementations. Apply when converting designs to code, implementing components, fixing broken UI, or handling responsive layouts.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mae616/design-skills112026년 1월 30일 업데이트

Design UI as information architecture + interaction + visual tone, then translate into implementable specs. Apply when discussing screen design, component design, design systems, or visual hierarchy.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mae616/design-skills112026년 1월 30일 업데이트

Evaluate UI/flows from cognitive load, error prevention, and accessibility perspectives. Apply when reviewing UX, discussing user confusion, high drop-off, or form usability issues.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

mae616/design-skills112026년 1월 30일 업데이트

mae616의 스킬 모두 보기

이 스킬의 문제 신고