
Ios Accessibility
Audit SwiftUI screens for VoiceOver, Voice Control, Switch Control, Dynamic Type, and Reduce Motion before you ship an iOS build.
Install
npx skills add https://github.com/dpearson2699/swift-ios-skills --skill ios-accessibilityWhat is this skill?
- Assistive-technology review pattern covering VoiceOver, Voice Control, Switch Control, Dynamic Type, and Reduce Motion
- Requires meaningful labels, values, and traits without baking control types like 'button' into labels
- Recommends row grouping via accessibilityElement(children: .combine) to cut VoiceOver and Switch Control stops
- Maps gesture-only flows to accessibilityAction(named:) custom actions for delete, favorite, and steppers
- Voice Control guidance: Show Names/Numbers and input labels for icon-only controls
Adoption & trust: 2.1k installs on skills.sh; 713 GitHub stars; 3/3 security scanners passed (skills.sh audits).
Recommended Skills
Vercel React Native Skillsvercel-labs/agent-skills
Firebase Basicsfirebase/agent-skills
Building Native Uiexpo/skills
Firebase Ai Logic Basicsfirebase/agent-skills
Native Data Fetchingexpo/skills
Firebase Firestorefirebase/agent-skills
Journey fit
Primary fit
Accessibility fixes are cheapest while UI is still being composed—canonical shelf is Build frontend for SwiftUI screens. SwiftUI view trees, traits, and combine/group patterns are frontend mobile work even when the output reads like a QA report.
Common Questions / FAQ
Is Ios 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.
SKILL.md
READMESKILL.md - Ios Accessibility
{ "skill_name": "ios-accessibility", "evals": [ { "id": 0, "name": "assistive-technology-review", "prompt": "Review this SwiftUI shopping cart screen for accessibility before implementation: each row has an icon, product name, price, stepper-like +/- icons built with tap gestures, a swipe-to-delete action, duplicate \"Edit\" buttons, a favorite heart-only button, a checkout sheet, and product photos. Product wants VoiceOver, Voice Control, Switch Control, Dynamic Type, and Reduce Motion support. What should we fix?", "expected_output": "A practical accessibility review that covers labels, values, traits, grouping, gesture alternatives, Voice Control input labels, Switch Control custom actions, focus restoration, Dynamic Type, decorative/content images, and Reduce Motion.", "files": [], "assertions": [ "Requires meaningful accessibility labels, values, and traits for icon-only buttons and custom stepper controls without putting control types like \"button\" in the label.", "Recommends grouping each cart row with `accessibilityElement(children: .combine)` or an equivalent pattern to reduce VoiceOver and Switch Control scan stops.", "Provides `.accessibilityAction(named:)` custom actions for swipe-to-delete, favorite, quantity changes, or other gesture-only behavior so Switch Control and VoiceOver can operate them.", "Mentions Voice Control testing with \"Show Names\" and/or \"Show Numbers\" and recommends unique, speakable labels plus `accessibilityInputLabels` for long or awkward names.", "Requires returning accessibility focus to the checkout trigger after dismissing the sheet with `@AccessibilityFocusState` or an equivalent UIKit notification.", "Covers Dynamic Type and Reduce Motion using system text styles, adaptive layout, `@ScaledMetric`, and `accessibilityReduceMotion` rather than fixed fonts or motion-only feedback." ] }, { "id": 1, "name": "nutrition-labels-current-categories", "prompt": "We're preparing App Store Accessibility Nutrition Labels for a media-heavy iOS 26 app. The team wants to claim VoiceOver, Switch Control, Full Keyboard Access, Closed Captions / SDH, Audio Descriptions, Larger Text, Reduce Motion, and Increase Contrast. Audit this list against Apple's current label categories and tell us what evidence to collect before answering in App Store Connect.", "expected_output": "A source-grounded label audit that corrects stale category names, routes non-label assistive technology work appropriately, and describes evidence needed for common-task claims.", "files": [], "assertions": [ "Lists the current App Store Accessibility Nutrition Label categories as VoiceOver, Voice Control, Larger Text, Dark Interface, Differentiate Without Color Alone, Sufficient Contrast, Reduced Motion, Captions, and Audio Descriptions.", "States that Switch Control and Full Keyboard Access are important accessibility work but are not current App Store Accessibility Nutrition Label categories.", "Renames Closed Captions / SDH to Captions and Increase Contrast to Sufficient Contrast, while also covering Audio Descriptions and Reduced Motion.", "Explains that labels should be claimed only when users can complete all common tasks with that feature on the relevant device type.", "Calls for evidence such as a common-task test matrix, VoiceOver and Voice Control testing, text-size testing to at least 200% where supported, contrast checks, Reduce Motion checks, and caption/audio-description track or transcript review.", "Warns that App Store accessibility label answers must remain accurate and should not be treated as marketing claims." ] }, { "id": 2, "name": "focus-boundary-routing", "prompt": "A team asks the iOS accessibility skill to fix all focus bugs in a SwiftUI iPad app: VoiceOver focus is lost after closing a c