Published on

VoiceOver qo'llab-quvvatlash

Authors

VoiceOver Apple ning ko'r va kam ko'ruvchi foydalanuvchilar uchun ekran o'quvchisi. Yoqilganda foydalanuvchilar slayd qilish va bosish orqali harakatlanadi β€” tizim ekrandagi hamma narsani ovoz chiqarib o'qiydi.

SwiftUI matn yorliqi bo'lgan Button uchun avtomatik VoiceOver qo'llab-quvvatlash beradi. Lekin avtomatik qo'llab-quvvatlashning chegaralari bor β€” bir necha daqiqalik ataylab ish ilovangizni hamma uchun foydalanish imkoniyatli qiladi.

import SwiftUI

struct FoydalanishImkoniyatliKartaKorinishi: View {
    var body: some View {
        VStack(alignment: .leading, spacing: 12) {
            // Dekorativ rasm β€” VoiceOver dan yashirilgan
            Image(systemName: "photo")
                .accessibilityHidden(true)

            // VoiceOver foydalanuvchan nom sifatida o'qiydigan yorliq
            Text("Maqola sarlavhasi")
                .font(.headline)
                .accessibilityLabel("Maqola: SwiftUI Animatsiyalari")

            // Faollashtirilganda nima bo'lishini tushuntiruvchi maslahat
            Button("O'qish") { }
                .accessibilityLabel("Maqolani o'qish")
                .accessibilityHint("To'liq maqolani yangi ekranda ochadi")

            // Qiymat β€” progress, slider va sanagichlar uchun foydali
            ProgressView(value: 0.6)
                .accessibilityLabel("O'qish jarayoni")
                .accessibilityValue("60 foiz")

            // Ko'p elementni bitta VoiceOver o'qiladigan guruhga birlashtirish
            HStack {
                Image(systemName: "heart.fill").accessibilityHidden(true)
                Text("128 ta yoqish")
            }
            .accessibilityElement(children: .combine)
        }
        .padding()
    }
}
QatorVazifasi
.accessibilityHidden(true)Elementni VoiceOver dan to'liq yashiradi. Dekorativ rasmlar, ajratuvchilar va ma'nosiz vizual elementlar uchun.
.accessibilityLabel("...")VoiceOver o'qiydigan nom. Ikonka tugmalar uchun juda muhim β€” usiz VoiceOver foydali narsa aytmaydi.
.accessibilityHint("...")Yorliqdan keyin o'qiladigan qo'shimcha kontekst. Element faollashtirilganda nima bo'lishini tushuntiradi.
.accessibilityValue("...")Joriy qiymatni bildiradi β€” progress ko'rsatkichlari, slayderlar va sanagichlar uchun foydali.
.accessibilityElement(children: .combine)Barcha child elementlarni bitta VoiceOver o'qiladigan birlikka birlashtiradi.

.accessibilityAddTraits

// VoiceOver ga element turi haqida xabar berish
Text("Bugungi vazifalar")
    .font(.title2)
    // Sarlavha kabi e'lon qilish β€” VoiceOver foydalanuvchilar sarlavhalar bo'yicha navigatsiya qila oladi
    .accessibilityAddTraits(.isHeader)

// Tap gesture li rasm β€” button trait kerak
Image(systemName: "star")
    .onTapGesture { /* sevimli */ }
    .accessibilityAddTraits(.isButton)
    .accessibilityLabel("Sevimlilarga qo'shish")
// Usiz VoiceOver "rasm" deydi β€” foydalanuvchi interaktiv ekanligini bilmaydi

Murakkab UI dan maxsus element

// Murakkab joylashuvni bitta maxsus VoiceOver elementi bilan almashtirish
HStack {
    Image(systemName: "cart.fill").accessibilityHidden(true)
    VStack(alignment: .leading) {
        Text("Mahsulot nomi").accessibilityHidden(true)
        Text("99,000 so'm").accessibilityHidden(true)
    }
}
// Barcha ichki elementlarni e'tiborsiz qoldirib maxsus e'lon
.accessibilityElement(children: .ignore)
.accessibilityLabel("Mahsulot nomi, 99 ming so'm")
.accessibilityHint("Savatga qo'shish uchun ikki marta bosing")

Tezkor ma'lumotnoma

SintaksisVazifasi
.accessibilityLabel("...")VoiceOver o'qiydigan nom
.accessibilityHint("...")Nima bo'lishini tushuntiruvchi maslahat
.accessibilityValue("...")Joriy qiymat (progress, sanagich)
.accessibilityHidden(true)VoiceOver dan yashirish
.accessibilityElement(children: .combine)Childlarni birlashtirib o'qish
.accessibilityAddTraits(.isHeader)Sarlavha sifatida belgilash
.accessibilityAddTraits(.isButton)Tugma sifatida belgilash

🎯 Topshiriq: VoiceOver sinovdan o'tkazish

Ilovangizda ikonka-only tugmalarni toping (o'chirish, ulashish, yopish). Har biriga .accessibilityLabel qo'shing. Dekorativ rasmlarga .accessibilityHidden(true) qo'shing. iPhone da VoiceOver ni yoqing va ilovangizni navigatsiya qiling β€” hamma narsa mantiqiy va foydali eshitiladimi?

Buy mea coffee