swift-accessibility-pro
/swift-accessibility-pro
Dodaje dostępność do aplikacji SwiftUI i UIKit: etykiety VoiceOver, Dynamic Type, kontrast kolorów, redukcję ruchu i testy.
- Autor
- laxrajpurohit ↗
- Repozytorium
- swift-skills-pro ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 18.10.2026
Ocena i bezpieczeństwo
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Brak sygnałów. Repozytorium zmienione 18.10.2026, bez odwołań do wycofanych modeli i API.
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Dodaje dostępność do aplikacji SwiftUI i UIKit: etykiety VoiceOver, Dynamic Type, kontrast kolorów, redukcję ruchu i testy.
Oryginalny opis (EN)
Use when making SwiftUI/UIKit apps accessible — VoiceOver labels and traits, Dynamic Type, color contrast, Reduce Motion, and accessibility testing.
Jak działa
- When to use
- Core principles
- VoiceOver labels
- Traits
- Dynamic Type
- Color & contrast
- Reduce Motion
- Common mistakes checklist
- Output format (when reviewing)
Podgląd SKILL.md
---
name: swift-accessibility-pro
description: Use when making SwiftUI/UIKit apps accessible — VoiceOver labels and traits, Dynamic Type, color contrast, Reduce Motion, and accessibility testing.
license: MIT
metadata:
author: Lax Rajpurohit
version: "1.0.0"
---
# Swift Accessibility Pro
Make apps usable by everyone. Treat accessibility as a requirement, not an add-on.
## When to use
- Auditing or adding accessibility to SwiftUI/UIKit views.
- Fixing VoiceOver, Dynamic Type, or contrast issues.
- Preparing for accessibility review.
Trigger: `/swift-accessibility-pro`.
## Core principles
- Every interactive element needs a clear label and the right trait.
- Text must scale with Dynamic Type; never hard-code font sizes.
- Don't convey meaning with color alone.
- Respect user settings: Reduce Motion, Increase Contrast, Bold Text.
## VoiceOver labels
Icon-only controls are unlabeled to VoiceOver by default.
❌
```swift
Button { like() } label: { Image(systemName: "heart") }
```
✅
```swift
Button { like() } label: { Image(systemName: "heart") }
.accessibilityLabel("Like")
```
Combine decorative + meaningful elements:
```swift
HStack { Image(systemName: "star.fill"); Text("4.8") }
.accessibilityElement(children: .combine)
.accessibilityLabel("Rating 4.8 out of 5")
```
Hide purely decorative images: `.accessibilityHidden(true)`.
## Traits
Tell VoiceOver what an element *is*.
✅
```swift
Text("Settings").accessibilityAddTraits(.isHeader)
Image("chart").accessibilityLabel("Sales up 12%").accessibilityRemoveTraits(.isImage)
```
## Dynamic Type
❌ Fixed size — won't scale
```swift
Text("Hello").font(.system(size: 17))
```
✅ Semantic style — scales
```swift
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.
## Color & contrast
- Don't signal state with color only — add an icon, text, or shape.
- Meet WCAG contrast (4.5:1 for body text). Support `@Environment(\.colorSchemeContrast)`.
❌
```swift
Circle().fill(isOnline ? .green : .red) // invisible to color-blind users
```
✅
```swift
Label(isOnline ? "Online" : "Offline",
systemImage: isOnline ? "checkmark.circle" : "xmark.circle")
```
## Reduce Motion
```swift
@Environment(\.accessibilityReduceMotion) private var reduceMotion
// ...
.animation(reduceMotion ? nil : .spring, value: state)
```
## Common mistakes checklist
- [ ] Icon-only buttons without `.accessibilityLabel`.
- [ ] Hard-coded font sizes that ignore Dynamic Type.
- [ ] State shown by color alone.
- [ ] Decorative images not hidden from VoiceOver.
- [ ] Headers without `.isHeader` trait.
- [ ] Animations that ignore Reduce Motion.
- [ ] Touch targets smaller than 44×44 pt.
## Output format (when reviewing)
Per issue: file:line, the barrier, before/after fix. Lead with blockers (unlabeled
controls, non-scaling text) before enhancements.
Wersje
W bazie nie ma innych skilli o nazwie swift-accessibility-pro.
Migawka bazy z 28.10.2026 · wersja paczki 509a8012f298 (skrót SHA-256 całej paczki)
Pobrania w ostatnich 30 dniach: 0 · ranking
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 87ios-accessibility
Sprawdza i poprawia dostępność aplikacji iOS w SwiftUI i UIKit: VoiceOver, Dynamic Type, kontrast i zgodność z WCAG 2.2. - 100ios-accessibility
Pomaga wdrażać i audytować dostępność aplikacji SwiftUI na iOS i macOS: VoiceOver, Dynamic Type, etykiety, fokus, kontrast i obszary dotyku. - 90ios-accessibility
Przegląda dostępność aplikacji iOS: VoiceOver, Dynamic Type, kontrast i obszary dotyku, rozdzielając testy statyczne i w czasie działania. - 95ios-accessibility
Wdraża i poprawia dostępność w aplikacjach iOS i macOS w SwiftUI i UIKit: VoiceOver, etykiety, grupowanie, fokus, Dynamic Type, rotory i audyt zgodności. - 100axiom-accessibility
Naprawia i audytuje problemy z dostępnością aplikacji Apple: VoiceOver, Dynamic Type, kontrast kolorów, cele dotyku, zgodność z WCAG i przegląd dostępności w App Store. - 100axiom-accessibility
Naprawia i audytuje problemy z dostępnością aplikacji Apple: VoiceOver, Dynamic Type, kontrast kolorów, cele dotyku, zgodność z WCAG i przegląd dostępności w App Store.