← ClaudeAtlas

ios-accessibilitylisted

Implement, review, or improve accessibility in iOS/macOS apps with SwiftUI and UIKit. Use when adding VoiceOver support with accessibility labels, hints, values, and traits; when grouping or reordering accessibility elements; when managing focus with @AccessibilityFocusState; when supporting Dynamic Type with @ScaledMetric; when building custom rotors or accessibility actions; when auditing a11y compliance; or when adapting UI for assistive technologies and system accessibility preferences.
dpearson2699/swift-ios-skills · ★ 730 · AI & Automation · score 80
Install: claude install-skill dpearson2699/swift-ios-skills
# iOS Accessibility — SwiftUI and UIKit Every user-facing view must be usable with VoiceOver, Switch Control, Voice Control, Full Keyboard Access, and other assistive technologies. This skill covers the patterns and APIs required to build accessible iOS apps. ## Contents - [Core Principles](#core-principles) - [How VoiceOver Reads Elements](#how-voiceover-reads-elements) - [SwiftUI Accessibility Modifiers](#swiftui-accessibility-modifiers) - [Focus Management](#focus-management) - [Dynamic Type](#dynamic-type) - [Custom Rotors](#custom-rotors) - [System Accessibility Preferences](#system-accessibility-preferences) - [Decorative Content](#decorative-content) - [Assistive Access (iOS 18+)](#assistive-access-ios-18) - [UIKit Accessibility Patterns](#uikit-accessibility-patterns) - [Accessibility Custom Content](#accessibility-custom-content) - [Testing Accessibility](#testing-accessibility) - [Common Mistakes](#common-mistakes) - [Review Checklist](#review-checklist) - [References](#references) --- ## Core Principles 1. Every interactive element MUST have an accessible label. If no visible text exists, add `.accessibilityLabel`. 2. Every custom control MUST have correct traits via `.accessibilityAddTraits` (never direct assignment). 3. Decorative images MUST be hidden from assistive technologies. 4. Sheet and dialog dismissals MUST return VoiceOver focus to the trigger element. 5. All tap targets MUST be at least 44x44 points. 6. Dynamic Type MUST be supported everywhere (