Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
affaan-m avatar

Accessibility

  • 1.5k installs
  • 238k repo stars
  • Updated August 5, 2026
  • affaan-m/ecc

This is a copy of accessibility by affaan-m - installs and ranking accrue to the original listing.

accessibility is an agent skill that maps UI specs to WCAG 2.2 Level AA requirements and generates semantic ARIA labels for developers who must ship inclusive web, iOS, and Android interfaces.

About

accessibility is an ECC agent skill focused on WCAG 2.2 Level AA technical implementation across web, iOS, and Android. It applies POUR principles—Perceivable, Operable, Understandable, and Robust—to translate high-level design requirements into concrete attributes such as ARIA roles, accessibility traits, hints, and focus behavior. Developers reach for accessibility when defining new component specs, implementing WCAG 2.2 criteria like Target Size and Focus Appearance, or auditing existing code for screen reader, keyboard, and switch-control barriers. The skill emphasizes semantic mapping over generic containers so assistive technologies read a correct accessibility tree. Use it during component design, pre-release audits, and remediation sprints where compliance gaps must become actionable implementation tasks.

  • Implements WCAG 2.2 Level AA success criteria including Target Size and Focus Appearance
  • Generates semantic ARIA for web and accessibility traits for iOS and Android
  • Maps high-level design requirements to technical attributes like roles, labels and hints
  • Audits existing code for POUR compliance gaps and accessibility barriers
  • Enforces native elements over generic containers for built-in accessibility tree support

Accessibility by the numbers

  • 1,508 all-time installs (skills.sh)
  • +89 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/affaan-m/ecc --skill accessibility

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.5k
repo stars238k
Security audit3 / 3 scanners passed
Last updatedAugust 5, 2026
Repositoryaffaan-m/ecc

How do you audit UI for WCAG 2.2 compliance?

Generate semantic ARIA labels, map design specs to WCAG 2.2 requirements, and audit interfaces for screen reader and keyboard compliance.

Who is it for?

Frontend and mobile developers shipping accessible SaaS or native apps who need WCAG 2.2 AA guidance tied to real component attributes.

Skip if: Teams needing formal legal VPAT documentation, automated CI scan replacement, or non-UI backend accessibility work.

When should I use this skill?

A developer asks to audit accessibility, add ARIA labels, implement WCAG 2.2 criteria, or map design specs to inclusive web or native UI.

What you get

WCAG-mapped component specs, semantic ARIA labels, native accessibility traits, and a prioritized audit of keyboard and screen reader gaps.

  • ARIA attribute mappings
  • Native accessibility trait specs
  • WCAG compliance audit notes

By the numbers

  • Targets WCAG 2.2 Level AA conformance criteria
  • Covers web ARIA plus iOS and Android native accessibility traits

Files

SKILL.mdMarkdownGitHub ↗

アクセシビリティ(WCAG 2.2)

このスキルは、スクリーンリーダー、スイッチコントロール、キーボードナビゲーションを使用するユーザーを含む、すべてのユーザーにとってデジタルインターフェースが知覚可能・操作可能・理解可能・堅牢(POUR)であることを保証します。WCAG 2.2 達成基準の技術的な実装に焦点を当てています。

使用タイミング

  • Web、iOS、Android 向け UI コンポーネント仕様の定義。
  • アクセシビリティの障壁やコンプライアンスのギャップについて既存コードを監査する。
  • Target Size(最小)や Focus Appearance など新しい WCAG 2.2 基準を実装する。
  • 高水準な設計要件を技術属性(ARIA ロール、トレイト、ヒント)にマッピングする。

コアコンセプト

  • POUR 原則: WCAG の基盤(知覚可能・操作可能・理解可能・堅牢)。
  • セマンティックマッピング: 汎用コンテナよりネイティブ要素を使用して組み込みのアクセシビリティを提供する。
  • アクセシビリティツリー: 支援技術が実際に「読み取る」UI の表現。
  • フォーカス管理: キーボード・スクリーンリーダーカーソルの順序と可視性を制御する。
  • ラベリングとヒント: aria-labelaccessibilityLabelcontentDescription を通じてコンテキストを提供する。

仕組み

ステップ 1: コンポーネントロールの特定

機能的な目的を決定します(例:これはボタンか、リンクか、タブか)。カスタムロールに頼る前に、利用可能な最もセマンティックなネイティブ要素を使用します。

ステップ 2: 知覚可能属性の定義

  • テキストのコントラストが 4.5:1(通常)または 3:1(大きいテキスト・UI)を満たすことを確認。
  • 非テキストコンテンツ(画像、アイコン)にテキスト代替を追加。
  • レスポンシブリフロー(機能を損なわずに最大 400% ズーム)を実装。

ステップ 3: 操作可能なコントロールの実装

  • 最小 24x24 CSS ピクセルのターゲットサイズを確保(WCAG 2.2 SC 2.5.8)。
  • すべてのインタラクティブ要素がキーボードで到達可能で、可視のフォーカスインジケーターを持つことを確認(SC 2.4.11)。
  • ドラッグ操作の単一ポインター代替手段を提供。

ステップ 4: 理解可能なロジックの確保

  • 一貫したナビゲーションパターンを使用。
  • 修正のための説明的なエラーメッセージと提案を提供(SC 3.3.3)。
  • 同じデータを二度求めないよう「冗長入力防止」(SC 3.3.7)を実装。

ステップ 5: 堅牢な互換性の検証

  • 正しい Name, Role, Value パターンを使用。
  • 動的なステータス更新のために aria-live またはライブリージョンを実装。

アクセシビリティアーキテクチャ図

flowchart TD
  UI["UI コンポーネント"] --> Platform{プラットフォーム?}
  Platform -->|Web| ARIA["WAI-ARIA + HTML5"]
  Platform -->|iOS| SwiftUI["アクセシビリティトレイト + ラベル"]
  Platform -->|Android| Compose["セマンティクス + コンテンツ説明"]

  ARIA --> AT["支援技術(スクリーンリーダー、スイッチ)"]
  SwiftUI --> AT
  Compose --> AT

クロスプラットフォームマッピング

機能Web (HTML/ARIA)iOS (SwiftUI)Android (Compose)
プライマリラベルaria-label / <label>.accessibilityLabel()contentDescription
セカンダリヒントaria-describedby.accessibilityHint()Modifier.semantics { stateDescription = ... }
アクションロールrole="button".accessibilityAddTraits(.isButton)Modifier.semantics { role = Role.Button }
ライブ更新aria-live="polite".accessibilityLiveRegion(.polite)Modifier.semantics { liveRegion = LiveRegionMode.Polite }

Web: アクセシブルな検索

<form role="search">
  <label for="search-input" class="sr-only">Search products</label>
  <input type="search" id="search-input" placeholder="Search..." />
  <button type="submit" aria-label="Submit Search">
    <svg aria-hidden="true">...</svg>
  </button>
</form>

iOS: アクセシブルなアクションボタン

Button(action: deleteItem) {
    Image(systemName: "trash")
}
.accessibilityLabel("Delete item")
.accessibilityHint("Permanently removes this item from your list")
.accessibilityAddTraits(.isButton)

Android: アクセシブルなトグル

Switch(
    checked = isEnabled,
    onCheckedChange = { onToggle() },
    modifier = Modifier.semantics {
        contentDescription = "Enable notifications"
    }
)

避けるべきアンチパターン

  • Div ボタン: ロールとキーボードサポートを追加せずに <div><span> をクリックイベントに使用する。
  • 色のみの意味: エラーやステータスを色の変化_のみ_で示す(例:ボーダーを赤にする)。
  • モーダルフォーカスの未封じ込め: フォーカスをトラップしないモーダルで、キーボードユーザーがモーダル開放中に背景コンテンツをナビゲートできてしまう。フォーカスは封じ込め_かつ_Escape キーまたは明示的な閉じるボタンで脱出可能でなければならない(WCAG SC 2.1.2)。
  • 冗長な代替テキスト: alt テキストに「Image of...」や「Picture of...」を使用する(スクリーンリーダーはすでに「画像」というロールをアナウンスする)。

ベストプラクティスチェックリスト

  • [ ] インタラクティブ要素が 24x24px(Web)または 44x44pt(ネイティブ)のターゲットサイズを満たしている。
  • [ ] フォーカスインジケーターが明確に見え、高コントラストである。
  • [ ] モーダルは開いている間フォーカスを封じ込め、閉じる際にクリーンに解放する(Escape キーまたは閉じるボタン)。
  • [ ] ドロップダウンとメニューは閉じる際にトリガー要素にフォーカスを戻す。
  • [ ] フォームはテキストベースのエラー提案を提供する。
  • [ ] アイコンのみのボタンには説明的なテキストラベルがある。
  • [ ] テキストが拡大縮小されるとコンテンツが適切にリフローする。

参考資料

関連スキル

  • frontend-patterns
  • design-system
  • liquid-glass-design
  • swiftui-patterns

Related skills

How it compares

Pick accessibility when you need WCAG 2.2 implementation guidance and audit remediation across web and mobile UI, not generic lint-only rule lists.

FAQ

What WCAG version does accessibility target?

The accessibility skill targets WCAG 2.2 Level AA. It focuses on technical implementation of success criteria, including newer requirements such as Target Size and Focus Appearance, across web and native platforms.

Does accessibility support iOS and Android?

Yes. The accessibility skill covers web semantic ARIA and native platform accessibility traits for iOS and Android, helping developers translate inclusive design requirements into per-platform attributes.

When should developers run an accessibility audit?

Developers should invoke accessibility when reviewing existing UI for compliance gaps, defining new component specs, or remediating barriers affecting keyboard, screen reader, or switch-control users before release.

Is Accessibility safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Design & UI/UXfrontendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.