ios-accessibility

Identifies and remediates accessibility gaps in iOS apps.

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/harshav167/build-ios-apps --skill ios-accessibility-harshav167
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: ios-accessibility
Source: https://github.com/harshav167/build-ios-apps/tree/main/skills/ios-accessibility
Command: npx skills add https://github.com/harshav167/build-ios-apps --skill ios-accessibility-harshav167

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Accessibility gaps in iOS apps hinder users with disabilities. This guide helps engineers identify and remediate such gaps by outlining patterns for SwiftUI and UIKit, including labels, traits, focus management, and support for Dynamic Type and Reduced Motion.

Core Features & Use Cases

  • Ensure every interactive element has a speakable label and appropriate traits, avoiding emoji-only or symbol-only labels.
  • Group related controls and content with accessibilityElement(children: .combine) to improve navigation for VoiceOver and Switch Control.
  • Provide custom actions for gesture-based interactions, test with Voice Control, and verify inputLabels for long or complex labels.

Quick Start

Enable the ios-accessibility skill and begin applying VoiceOver labels, unique input labels, and focus management across views.

Frequently Asked Questions about ios-accessibility

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add VoiceOver labels and traits to SwiftUI and UIKit views?

To add VoiceOver labels and traits, assign speakable text to interactive elements in SwiftUI and UIKit, avoiding emoji-only or symbol-only labels, ensuring every control has an appropriate accessibility trait for screen reader navigation.

How do I group related controls for VoiceOver and Switch Control navigation?

Group related controls and content by applying accessibilityElement(children: .combine) to parent views, which improves VoiceOver and Switch Control navigation by merging multiple elements into a single accessible target.

How do I manage focus restoration after dismissing modals in iOS apps?

Manage focus restoration by programmatically redirecting VoiceOver focus to the originating element after a modal dismissal, ensuring users do not lose their navigation position when an overlay closes.

What is the best way to handle long component labels for Voice Control?

Handle long labels by providing unique accessibilityInputLabels for components, allowing Voice Control users to activate elements using shorter, alternative spoken phrases instead of verbose default labels.

Does this support Dynamic Type and Reduce Motion scenarios across iPhone and iPad?

Yes, it supports Dynamic Type and Reduce Motion across iPhone and iPad by ensuring views adhere to system accessibility preferences, scaling text appropriately, and removing unnecessary animations when requested.

How do I provide custom accessibility actions for gesture-based interactions?

Provide custom accessibility actions by defining alternative methods for gesture-based interactions, allowing VoiceOver and Switch Control users to perform complex gestures through simple swipe and select commands.