ios-test
iOS/SwiftUI uygulamasini derle, simulator'da ac ve test et. "uygulamayi test et", "simulatorde calistir", "UI test", "flow test", "ekranlari kontrol et",…
SwiftUI view'lara accessibility identifier ekle. "accessibility ekle", "identifier ekle", "test icin etiketle", "VoiceOver destegi ekle", "erisilebilirlik ekle" gibi isteklerde tetiklenir.
> /plugin marketplace add yusufkaran/swiftui-autotest-skill > /plugin install swiftui-autotest-skill@swiftui-autotest-skill
How it fires
How this command gets triggered: by you, by Claude, or both.
/add-accessibilityContext preview
What this command does when you run it.
SwiftUI view'lara accessibility identifier ekle. "accessibility ekle", "identifier ekle", "test icin etiketle", "VoiceOver destegi ekle", "erisilebilirlik ekle" gibi isteklerde tetiklenir.
argument-hint: [--dry-run] [--path=Sources/] [--verbose] description: SwiftUI view'lara accessibility identifier ekle. "accessibility ekle", "identifier ekle", "test icin etiketle", "VoiceOver destegi ekle", "erisilebilirlik ekle" gibi isteklerde tetiklenir.
Bu komut SwiftUI dosyalarini tarayarak eksik accessibility identifier'lari otomatik ekler ve Dynamic Type uyumsuzluklarini raporlar.
/add-accessibility /add-accessibility --dry-run /add-accessibility --path=Sources/Features/Login /add-accessibility --verbose
1. Projedeki tum `*.swift` dosyalarini bul 2. SwiftUI view'leri iceren dosyalari filtrele (struct X: View, #Preview, vb.) 3. Her dosyada su elemanlari tespit et:
4. Her eleman icin mevcut accessibility durumunu kontrol et:
Naming convention: `{screen}-{type}-{name}`
**Screen ismi**: Dosya adindan turet
**Type**: Eleman turune gore | SwiftUI Element | Type | |----------------|------| | Button | `button` | | TextField | `textfield` | | SecureField | `securefield` | | Image | `image` | | Toggle | `toggle` | | Slider | `slider` | | Picker | `picker` | | DatePicker | `datepicker` | | NavigationLink | `navlink` | | Link | `link` | | .onTapGesture view | `tap` | | TabView item | `tab` |
**Name**: Elemanin iceriginden turet
**Ornek sonuclar:**
login-button-continue login-textfield-email login-securefield-password onboarding-image-hero-banner settings-toggle-notifications home-tab-profile
Her eksik eleman icin `.accessibilityIdentifier("generated-id")` ekle:
// ONCE
Button("Continue") {
viewModel.proceed()
}
// SONRA
Button("Continue") {
viewModel.proceed()
}
.accessibilityIdentifier("login-button-continue")**Image'lar icin** ek olarak `accessibilityLabel` da ekle (VoiceOver icin):
// ONCE
Image(systemName: "gear")
// SONRA
Image(systemName: "gear")
.accessibilityIdentifier("settings-image-gear")
.accessibilityLabel("Settings")**onTapGesture view'lar icin** accessibility element olarak isaretle:
// ONCE
HStack {
Image("avatar")
Text(user.name)
}
.onTapGesture { showProfile() }
// SONRA
HStack {
Image("avatar")
Text(user.name)
}
.onTapGesture { showProfile() }
.accessibilityElement(children: .combine)
.accessibilityIdentifier("profile-tap-user-row")
.accessibilityAddTraits(.isButton)Text elemanlari icin Dynamic Type uyumunu kontrol et:
1. **Flag'le** (uyari olarak raporla, otomatik duzeltme YAPMA):
2. **Rapor formati:**
⚠️ Dynamic Type Uyarilari:
LoginView.swift:42 - Text("Welcome back...") → lineLimit veya minimumScaleFactor eksik
LoginView.swift:58 - Text(...).font(.system(size: 14)) → Dynamic font kullanmayi dusunun (.body, .caption vb.)
SettingsView.swift:23 - Text(longString) → lineLimit eksik, uzun metinlerde tasma riskiIslem sonunda ozet rapor goster:
✅ Accessibility Scan Tamamlandi
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Taranan dosya: 24
Eleman bulundu: 87
Zaten mevcut: 31 (atlanildi)
Yeni eklenen: 56
- Button: 18
- TextField: 8
- Image: 12
- Toggle: 6
- Diger: 12
⚠️ Dynamic Type Uyarilari: 7
(detaylar yukarida)
Pattern: {screen}-{type}-{name}1. **ASLA mevcut accessibility modifier'lari degistirme veya silme** 2. **ASLA view'in islevselligini veya gorunumunu degistirme** 3. Sadece `.accessibilityIdentifier()`, `.accessibilityLabel()`, `.accessibilityElement()`, `.accessibilityAddTraits()` ekle 4. `#if DEBUG` blogu KULLANMA — identifier'lar production'da da olmali (gercek accessibility icin) 5. Eger bir identifier ismi uretmekte emin degilsen, `{screen}-{type}-{index}` formatini kullan ve verbose modda flag'le 6. Dynamic Type uyarilarini SADECE raporla, otomatik duzeltme yapma — kullanici kararina birak 7. `--dry-run` modunda hicbir dosyayi degistirme, sadece plan goster 8. Her dosyayi degistirdikten sonra compile check yap — syntax hatasi olusturursan geri al
Open-source Agent Skills for automated visual testing and accessibility setup of iOS/SwiftUI applications using Claude Code's computer use.
iOS/SwiftUI uygulamasini derle, simulator'da ac ve test et. "uygulamayi test et", "simulatorde calistir", "UI test", "flow test", "ekranlari kontrol et",…