Przejdź do treści
Biblioteka skilli
Projektowanie i UX · Budowanie i kod

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.

Licencja
MIT
Ostatnia zmiana repozytorium
18.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 18.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

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

  1. When to use
  2. Core principles
  3. VoiceOver labels
  4. Traits
  5. Dynamic Type
  6. Color & contrast
  7. Reduce Motion
  8. Common mistakes checklist
  9. Output format (when reviewing)
Sekcje z nagłówków SKILL.md, w oryginale · 103 linii, 360 słów
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.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.