ios-accessibility
Build and audit SwiftUI, UIKit, and AppKit accessibility for VoiceOver, Voice Control, Switch Control, Full Keyboard Access, Dynamic Type, focus restoration, labels/traits/actions, traversal, custom rotors, NSAccessibility, XCTest checks, adaptive system preferences, and App Store accessibility declarations. Use when implementing accessible UI, fixing an accessibility audit, testing assistive-technology behavior, or substantiating App Store Accessibility Nutrition Labels.
npx skills add dpearson2699/swift-ios-skills --skill ios-accessibility --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Build SwiftUI, UIKit, and AppKit interfaces that remain operable with VoiceOver, Switch Control, Voice Control, Full Keyboard Access, and adaptive accessibility settings.
How it works
- Provides guidance on focus management to ensure VoiceOver focus returns to the trigger element after dismissal of sheets, alerts, or popovers.
- Includes examples and patterns for SwiftUI accessibility modifiers, custom modals with isModal trait, and accessibilityAction handling.
- Shows how to emit UIKit accessibility notifications for status changes, layout updates, and screen changes.
- Covers Dynamic Type scaling with system text styles and the use of @ScaledMetric for non-text dimensions.
- Describes Custom Rotors, System Accessibility Preferences, Decorative Content, and Voice Control label guidance.
- Details Full Keyboard Access audit checks to ensure reachability, labeling, and operability without touch, plus traversal and focus considerations.
- Addresses Assistive Access (iOS 18+) behavior with simplified content when enabled.
- Presents UIKit and AppKit accessibility patterns and guidance for custom content and NSAccessibility considerations.
- Includes App Store Accessibility Nutrition Labels guidance and testing considerations with evidence-based claims.
- Outlines testing approaches: manual testing (VoiceOver, Voice Control, Full Keyboard Access, Switch Control, Dynamic Type) and automated testing with XCTest for accessibility identifiers and focus behavior.
When to use it
Use when implementing accessible UI, fixing an accessibility audit, testing assistive-technology behavior, or substantiating App Store Accessibility Nutrition Labels.
What it can touch
- Tools: "claude-code", "codex", "cursor" (as declared)
- Focus areas include VoiceOver labels, traits, actions, traversal, custom rotors, and NSAccessibility updates
Caveats
- License: NOASSERTION
- Declared category: Security
- Files in the skill folder: 5
- Skill relies on external references (references/a11y-patterns.md, references/nutrition-labels.md) for examples
# iOS/macOS Accessibility - SwiftUI, UIKit, and AppKit Build SwiftUI, UIKit, and AppKit interfaces that remain operable with VoiceOver, Switch Control, Voice Control, Full Keyboard Access, and adaptive accessibility settings. ## 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) - [Voice Control](#voice-control) - [Switch Control](#switch-control) - [Full Keyboard Access](#full-keyboard-access) - [Assistive Access (iOS 18+)](#assistive-access-ios-18) - [UIKit Accessibility Patterns](#uikit-accessibility-patterns) - [AppKit Accessibility Patterns](#appkit-accessibility-patterns) - [Accessibility Custom Content](#accessibility-custom-content) - [App Store Accessibility Nutrition Labels](#app-store-accessibility-nutrition-labels) - [Testing Accessibility](#testing-accessibility) - [Common Mistakes](#common-mistakes) - [Review Checklist](#r
- Contents
- Core Principles
- How VoiceOver Reads Elements
- SwiftUI Accessibility Modifiers
- Focus Management
- @AccessibilityFocusState (iOS 15+)
- Multi-Target Focus with Enum
- Custom Modals
- Accessibility Notifications (UIKit)
- Dynamic Type
- Custom Rotors
- System Accessibility Preferences
- Reduce Motion
- Reduce Transparency, Increase Contrast, Bold Text
What does the ios-accessibility skill do?
Build and audit SwiftUI, UIKit, and AppKit accessibility for VoiceOver, Voice Control, Switch Control, Full Keyboard Access, Dynamic Type, focus restoration, labels/traits/actions, traversal, custom rotors, NSAccessibility, XCTest checks, adaptive system preferences, and App Store accessibility declarations. Use when implementing accessible UI, fixing an accessibility audit, testing assistive-technology behavior, or substantiating App Store Accessibility Nutrition Labels.
How do I install it?
Run `npx skills add dpearson2699/swift-ios-skills --skill ios-accessibility --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From dpearson2699/swift-ios-skills, a repository with 963 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.