# Accessibility

> Route Accessibility API implementation tasks to the correct Knowledge Contracts — accessibility labels, traits, value/hint, custom actions, element grouping, VoiceOver navigation order, Dynamic Type API, Reduce Motion, Reduce Transparency/Increase Contrast, Full Keyboard Access and accessibility focus, hidden/decorative elements, announcements to assistive apps including announcement priority, and accessibility audits. Use when writing or reviewing VoiceOver support, custom-control accessibility, Dynamic Type handling, announcing an event or a form's validation result to VoiceOver, or accessibility test coverage in SwiftUI or UIKit. This is API-implementation guidance, not visual design — for the underlying design requirement (contrast ratio, text-scaling requirement, color-alone prohibition), see human-interface-guidelines. Triggers on VoiceOver, accessibilityLabel, accessibilityTraits, accessibilityValue, accessibilityHint, accessibilityAction, UIAccessibilityCustomAction, accessibilityElement, isAccessibil

- Skill: `caglarbaranbora/accessibility` (Agent Skill)
- Install (CLI): `npx skillmds@latest add caglarbaranbora/accessibility`
- Raw SKILL.md: https://api.skillmd.com/api/skills/caglarbaranbora/accessibility/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: caglarbaranbora (https://skillmd.com/u/caglarbaranbora)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/caglarbaranbora/accessibility

---


# Accessibility — Foundations Skill

## Purpose

Route Accessibility API implementation tasks to the minimum required
Accessibility Knowledge Contracts, across both SwiftUI and UIKit.

## Routing

Load only the contracts relevant to the task. All paths relative to
knowledge/accessibility/.

-   Labeling & description -> accessibility-labels.md, accessibility-traits.md, accessibility-value-and-hint.md
-   Interaction -> custom-accessibility-actions.md, full-keyboard-access-and-focus.md
-   Structure & navigation -> accessibility-element-grouping.md, voiceover-navigation-order.md, accessibility-hidden-decorative.md
-   User preferences -> dynamic-type-api.md, reduce-motion.md, reduce-transparency-increase-contrast.md
-   Announcing an event or validation result that no element carries;
    announcement priority -> accessibility-announcements.md
-   Verification -> accessibility-audits-testing.md

Never load more than the contracts relevant to the specific question.
For the underlying design requirement (why a 4.5:1 contrast ratio, why
text must scale to 200%, why color can't be the only differentiator),
route to `skill.human-interface-guidelines.foundations` instead. For
SwiftUI view/state/navigation questions unrelated to accessibility,
route to `skill.swiftui.foundations` instead.

## Stop Conditions

Stop and report if the requested topic has no matching Knowledge
Contract in knowledge/accessibility/ — do not guess or fall back to
general knowledge.

-   Design-level accessibility guidance — owned by `human-interface-guidelines`
-   XCTest/Swift Testing conventions beyond accessibility audits — owned by `testing`
-   `AccessibilityNotification.LayoutChanged`/`.PageScrolled`, and
    `.ScreenChanged` posted without moving focus — Deferred

