Audits and fixes accessibility in SwiftUI/UIKit apps — VoiceOver labels and traits, Dynamic Type scaling, color contrast, Reduce Motion, and common pitfalls.
How this skill is triggered — by the user, by Claude, or both
Slash command
/swift-accessibility-pro:swift-accessibility-proThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Make apps usable by everyone. Treat accessibility as a requirement, not an add-on.
Make apps usable by everyone. Treat accessibility as a requirement, not an add-on.
Trigger: /swift-accessibility-pro.
Icon-only controls are unlabeled to VoiceOver by default.
❌
Button { like() } label: { Image(systemName: "heart") }
✅
Button { like() } label: { Image(systemName: "heart") }
.accessibilityLabel("Like")
Combine decorative + meaningful elements:
HStack { Image(systemName: "star.fill"); Text("4.8") }
.accessibilityElement(children: .combine)
.accessibilityLabel("Rating 4.8 out of 5")
Hide purely decorative images: .accessibilityHidden(true).
Tell VoiceOver what an element is.
✅
Text("Settings").accessibilityAddTraits(.isHeader)
Image("chart").accessibilityLabel("Sales up 12%").accessibilityRemoveTraits(.isImage)
❌ Fixed size — won't scale
Text("Hello").font(.system(size: 17))
✅ Semantic style — scales
Text("Hello").font(.body)
For custom fonts use .font(.custom("Inter", size: 17, relativeTo: .body)). Test at the
largest accessibility sizes; use ViewThatFits/wrapping instead of truncation.
@Environment(\.colorSchemeContrast).❌
Circle().fill(isOnline ? .green : .red) // invisible to color-blind users
✅
Label(isOnline ? "Online" : "Offline",
systemImage: isOnline ? "checkmark.circle" : "xmark.circle")
@Environment(\.accessibilityReduceMotion) private var reduceMotion
// ...
.animation(reduceMotion ? nil : .spring, value: state)
.accessibilityLabel..isHeader trait.Per issue: file:line, the barrier, before/after fix. Lead with blockers (unlabeled controls, non-scaling text) before enhancements.
Provides a checklist for code reviews covering functionality, security, performance, maintainability, tests, and quality. Use for pull requests, audits, team standards, and developer training.
npx claudepluginhub laxrajpurohit/swift-skills-pro --plugin swift-accessibility-pro