Accessibility — asoslar, ko'r foydalanuvchilar uchun VoiceOver va TalkBack

Muallif: IT Sectr Nashr etilgan: 2026-02-26 O'qish vaqti: 9 daq

Accessibility (a11y) — mobil ilovaning nogironligi bo'lgan odamlar uchun foydalanish qulayligini ta'minlash. Ekran o'qituvchilarini qo'llab-quvvatlash (iOSda VoiceOver, Androidda TalkBack), matnni masshtablash (Dynamic Type), yetarli rang kontrasti (WCAG 2.1 AA darajasi), ko'rmasdan navigatsiya va imo-ishoralarga muqobil variantlarni o'z ichiga oladi. JSST (2023) ma'lumotlariga ko'ra, 1,3 milliarddan ortiq odam (aholining 16%) nogironlikning qandaydir shakli bilan yashaydi — accessibility tanlov emas, balki zarurat. Batafsil — Apple-ning accessibility bo'yicha rasmiy hujjatlarida.

Asosiy ma'lumotlar

  • Accessibility — ilovaning nogironligi bo'lgan odamlar uchun foydalanish qulayligi (ko'rish, eshitish, motorika)
  • VoiceOver — iOS va macOSda interfeys elementlarini ovozli o'qib beruvchi Apple ekran o'qituvchisi
  • TalkBack — Android uchun Google ekran o'qituvchisi, ko'rmasdan imo-ishora boshqaruvi bilan
  • WCAG 2.1 — xalqaro foydalanish qulayligi standarti: kontrast 4.5:1, teginish maydonlari o'lchami 44×44pt
  • contentDescription — TalkBack tomonidan o'qiladigan elementlarni tavsiflash uchun Android atributi

Mobil ilovalarda Accessibility (a11y) nima?

Accessibility (qisqartmasi a11y — «a» va «y» orasida 11 ta harf) — ko'rish, eshitish, motorika va kognitiv xususiyatlarda nuqsoni bo'lgan odamlar uchun foydalanish mumkin bo'lgan ilovalarni ishlab chiqish amaliyoti. Mobil ishlanmada accessibility to'rtta asosiy stsenariyni qamrab oladi: ko'r foydalanuvchilar (ekran o'qituvchilari), zaif ko'ruvchilar (masshtablash, kontrast), kar va eshitish qobiliyati zaiflar (subtitrlar, tovushga vizual muqobillar), motorikasi cheklangan foydalanuvchilar (ovozli boshqaruv, Switch Control, katta teginish maydoni).

Huquqiy talablar — ko'plab mamlakatlarda accessibility qonun bilan majburiydir. AQSh: Section 508 va ADA. Yevropa Ittifoqi: European Accessibility Act (2025). Buyuk Britaniya: Equality Act 2010. Accessibility qo'llab-quvvatlanmasa, ilova sud da'vosining ob'ektiga aylanishi mumkin — AQShda 2023-yilda raqamli mahsulotlarning foydalanish mumkin emasligi haqida 4000 dan ortiq da'vo berilgan. Apple va Google ilovalarni moderatsiya qilishda accessibility-ni tekshiradi: App Store Review Guidelines (4.2) va Google Play Store minimal foydalanish qulayligi qo'llab-quvvatlashni talab qiladi.

Biznes argumenti — foydalanish qulayligi auditoriyani oshiradi. Return on Disability (2021) ma'lumotlariga ko'ra, nogironligi bo'lgan odamlar yiliga $13 trillion tasarrufidagi daromadni nazorat qiladi. Foydalanish qulay bo'lgan ilovalar qidiruvda yaxshiroq tartiblanadi (semantik HTML, alternativ matnlar), yuqori foydalanuvchi reytingiga va UX muammolari haqida kamroq sharhlarga ega. IT Sectrda biz accessibility-ni barcha loyihalarning definition of done qismiga kiritamiz — bu sifat standarti, ixtiyoriy yaxshilash emas.

iOSda Accessibility: VoiceOver va UIAccessibility

VoiceOver — iOS, iPadOS va macOSga o'rnatilgan Apple ekran o'qituvchisi. Foydalanuvchi barmog'ini ekran bo'ylab yuradi, VoiceOver barmoq ostidagi element nomini o'qiydi. Ikki marta teginish — elementni faollashtirish. VoiceOver 40 dan ortiq imo-ishorani qo'llab-quvvatlaydi: uch barmoq siljitish (varaklash), ikki barmoq ikki marta teginish (to'xtash), Z-imo-ishorasi (qaytish). Dasturchi VoiceOver nimani va qanday o'qishini UIAccessibility protokoli va accessibilityLabel, accessibilityTraits, accessibilityHint xususiyatlari orqali boshqaradi.

swift
class CustomButton: UIButton {

    override var isAccessibilityElement: Bool {
        get { return true }
        set {}
    }

    // override accessibilityLabel
    override var accessibilityLabel: String? {
        get { return "Forma jo'natish tugmasi" }
        set {}
    }

    // override accessibilityHint
    override var accessibilityHint: String? {
        get { return "Ma'lumotlarni jo'natish uchun ikki marta teging" }
        set {}
    }

    // override accessibilityTraits
    override var accessibilityTraits: UIAccessibilityTraits {
        get { return .button }
        set {}
    }
}

// Dynamic Type — matnni masshtablash
titleLabel.font = UIFontMetrics.default.scaledFont(
    for: UIFont.systemFont(ofSize: 16)
)
titleLabel.adjustsFontForContentSizeCategory = true

Dinamik tipografiya — iOSda Dynamic Type foydalanuvchiga matn o'lchamini tanlash imkonini beradi (XS dan XXXL gacha). Dasturchi avtomatik masshtablash uchun UIFontMetrics.scaledFont dan foydalanadi. Matn barcha o'lchamlarda to'g'ri ko'rsatilishi kerak: qatorlar kesilmasligi, tugmalar matnga mutanosib ravishda kattalashishi kerak. UITableView matn o'lchami o'zgarganda hujayralar balandligini avtomatik yangilaydi. Dynamic Type-ni e'tiborsiz qoldirish — ilovani zaif ko'ruvchi foydalanuvchilar uchun foydalanish mumkin emas qilishdir.

SwiftUI da Accessibility

SwiftUI accessibility uchun modifikatorlarni taqdim etadi: .accessibilityLabel(), .accessibilityHint(), .accessibilityAddTraits(), .accessibilitySortPriority(). Standart SwiftUI elementlari (Text, Button, Image) avtomatik yorliqlar bilan allaqachon accessibility elementlari hisoblanadi. Maxsus View-lar uchun bolalar elementlarini bittaga birlashtirish uchun .accessibilityElement(children: .combine) dan foydalaning. SwiftUI avtomatik ravishda Dynamic Type va VoiceOver-ni qo'llab-quvvatlaydi.

swift
VStack {
    Image(systemName: "trash")
        .accessibilityLabel(Text("Elementni o'chirish"))
    Text("Savat")
        .font(.body)
}
.accessibilityElement(children: .combine)
.accessibilityAddTraits(.isButton)
.accessibilityHint(Text("Tanlangan elementni tiklash imkoniyatisiz o'chiradi"))

Androidda Accessibility: TalkBack va contentDescription

TalkBack — Google ekran o'qituvchisi, aksariyat Android qurilmalarida oldindan o'rnatilgan (Android 5+ ning barcha versiyalari uchun Google Playda mavjud). TalkBack VoiceOver bilan bir xil imo-ishoralardan foydalanadi: navigatsiya uchun siljitish, faollashtirish uchun ikki marta teginish. Dasturchi elementlarning tavsifini XMLda android:contentDescription atributi yoki kodda setContentDescription() orqali o'rnatadi. ImageView uchun contentDescription majburiy — usiz TalkBack «belgilanmagan» deb xabar beradi yoki fayl nomini o'qiydi.

kotlin
// XML: ImageView uchun contentDescription
<ImageView
    android:id="@+id/iconDelete"
    android:src="@drawable/ic_delete"
    android:contentDescription="@string/delete_button_desc"
    android:focusable="true"
    android:clickable="true" />

// Kotlin: dasturiy o'rnatish
iconDelete.contentDescription = getString(R.string.delete_button_desc)

// Accessibility Delegate (maxsus)
iconDelete.accessibilityDelegate = object : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfo
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "O'chirish tugmasi"
        info.contentDescription = "Tanlangan elementni o'chirish"
        info.className = Button::class.java.name
    }
}

// Dinamik yangilanishlar uchun Live Regions
textView.accessibilityLiveRegion = View.ACCESSIBILITY_LIVE_REGION_POLITE

Live Regions — Androidning fokuslanmasdan tarkib o'zgarishi haqida TalkBackni xabardor qilish mexanizmi. android:accessibilityLiveRegion atributi uchta qiymatni oladi: none (xabardor qilmaslik), polite (joriy ma'lumotdan keyin e'lon qilish), assertive (darhol e'lon qilish). Yuklanish holatini yangilash uchun polite, muhim xatolar uchun assertive dan foydalaning. Assertive dan suiiste'mol qilish foydalanuvchi uchun tartibsizlikka olib keladi — TalkBack doimiy ravishda joriy harakatni to'xtatadi.

Accessibility Scanner

Accessibility Scanner — Android ilovalarining manba kodiga kirmasdan foydalanish qulayligini test qilish uchun Google-ning bepul ilovasi. Skaner tekshiradi: matn kontrasti, teginish maydonlari o'lchami (Android Accessibility Guidelines bo'yicha minimum 48×48dp), ImageView uchun contentDescription mavjudligi, elementlar iyerarxiyasining to'g'riligi. Avtomatik testlar uchun Espressodan AccessibilityChecks dan foydalaning — ular CI/CD bilan integratsiyalanadi va har bir buildda accessibility-ni tekshiradi.

WCAG 2.1: kontrast, o'lcham va teginish maydonlari

WCAG 2.1 (Web Content Accessibility Guidelines) — W3C tomonidan ishlab chiqilgan xalqaro foydalanish qulayligi standarti. 2.1 versiyasi (2018) mobil ilovalar uchun 13 ta qo'shimcha mezonni o'z ichiga oladi. Muvofiqlik darajalari: A (minimal), AA (ko'pchilik tashkilotlar uchun majburiy), AAA (maksimal). Apple va Google ilovalarni nashr qilish uchun minimal daraja sifatida AA ni tavsiya qiladi. WCAG 2.2 2023-yilda fokus va kiritish bo'yicha aniqlashtirishlar bilan chiqarilgan.

Asosiy mezonlar mobil ishlanma uchun: matn kontrasti kamida 4.5:1 (AA) yoki 7:1 (AAA), teginish maydonlari o'lchami minimum 44×44pt (iOS) yoki 48×48dp (Android), funksionallikni yo'qotmasdan landshaft va portret yo'nalishini qo'llab-quvvatlash, animatsiyani o'chirish imkoniyati (prefers-reduced-motion), multimedia uchun subtitrlar mavjudligi, ovozli boshqaruv bilan moslik (iOSda Voice Control, Androidda Voice Access).

WCAG 2.1 mezoniDarajaiOS uchun talabAndroid uchun talab
1.4.3 Kontrast (matn)AA4.5:1 oddiy uchun, 3:1 katta uchun4.5:1 oddiy uchun, 3:1 katta uchun
1.4.11 Kontrast (matn bo'lmagan)AA3:1 ikonalar, chegaralar uchun3:1 ikonalar, chegaralar uchun
2.5.5 Nishon o'lchamiAAA44×44pt48×48dp
2.3.3 AnimatsiyaAAAprefers-reduced-motionandroid:animateLayoutChanges
4.1.2 Nom, rol, qiymatAaccessibilityLabel, traitscontentDescription, role

Kontrast tekshirish vositalari — Colour Contrast Analyser (TPGI), WebAIM Contrast Checker, Stark (Figma), Accessibility Inspector (Xcode). IT Sectrda biz kontrastni dizayn bosqichida (Figma + Stark) va yana ishlanma bosqichida (Accessibility Inspector / Accessibility Scanner) tekshiramiz. Minimal talab — 18pt (14pt bold) dan kichik barcha matn uchun 4.5:1. Logotiplar va dekorativ elementlar uchun kontrast talab qilinmaydi.

Foydalanish qulayligini test qilish: vositalar va tekshiruv ro'yxati

iOS testi — Xcode da Accessibility Inspector (Xcode → Open Developer Tool → Accessibility Inspector) har bir element uchun label, traits, hint ni tekshiradi. VoiceOver sozlamalarda yoki Accessibility Shortcut (tugmani uch marta bosish) orqali yoqilishi mumkin. Avtomatik testlar uchun XCUITest ni XCTAssertTrue(app.staticTexts["label"].isAccessibilityElement) bilan ishlating. Apple VoiceOver yoqilgan holda ilovaning barcha ekranlarini test qilishni tavsiya qiladi.

Android testi — Accessibility Scanner (Play Store) kontrast, teginish maydonlari o'lchami, contentDescription ni tekshiradi. Avtomatlashtirish uchun: Espresso AccessibilityChecks (import: androidTestImplementation 'androidx.test.espresso:espresso-accessibility:3.5.1'). Google tekshiruv ro'yxatini tavsiya qiladi: har bir ImageView contentDescription ga ega, teginish maydonlari 48×48dp dan kam emas, matn 200% gacha kesilmasdan masshtablanadi, barcha elementlar TalkBack siljitishi bilan erishish mumkin.

IT Sectr tekshiruv ro'yxati — nashrdan oldin tekshiramiz: (1) VoiceOver/TalkBack barcha elementlarni to'g'ri o'qiydi, (2) matn funksionallikni yo'qotmasdan maksimal o'lchamgacha masshtablanadi, (3) barcha ImageView larda contentDescription bor, (4) matn kontrasti barcha mavzularda ≥4.5:1, (5) teginish maydonlari ≥44pt/48dp, (6) faqat uzoq bosish bilan mavjud kontekst menyusi yo'q, (7) tizim sozlamalarida Reduce Motion / Remove Animations qo'llab-quvvatlashi. Ushbu tekshiruv ro'yxati har bir sprintning definition of done qismiga kiradi.

Tez-tez beriladigan savollar

VoiceOver TalkBackdan qanday farq qiladi?

VoiceOver — iOS, iPadOS, macOS uchun Apple ekran o'qituvchisi. Bir va bir necha barmoq bilan imo-ishoralardan foydalanadi (siljitish, ikki marta teginish). TalkBack — o'xshash imo-ishoralar bilan Android uchun Google analogi. VoiceOver accessibilityLabel ni o'qiydi, TalkBack — contentDescription ni. Ikkalasi Brayl displeylari va ovozli boshqaruvni qo'llab-quvvatlaydi. Funksionallikda prinsipial farqlar yo'q.

Androidda contentDescription nima?

contentDescription — Androidda View atributi, TalkBack uchun matn tavsifini o'rnatadi. Usiz TalkBack «belgilanmagan» deb xabar beradi yoki sinf nomini o'qiydi (ImageView, Button). XMLda android:contentDescription="@string/desc" yoki kodda view.contentDescription = "matn" orqali qo'shiladi. Dekorativ rasmlar uchun contentDescription=@null dan foydalaning.

Accessibility uchun minimal kontrast qancha?

WCAG 2.1 AA darajasi bo'yicha: oddiy matn uchun 4.5:1 va katta matn uchun 3:1 (18pt yoki 14pt bold dan). AAA darajasi: oddiy uchun 7:1 va katta uchun 4.5:1. Kontrastni ikki mavzuda (ochiq/qorong'i) tekshiring. Google ma'lumotlariga ko'ra, kontrast buzilishi mobil ilovalarda foydalanish qulayligining eng keng tarqalgan muammosidir.

iOSda Dynamic Type qo'llab-quvvatlanishi kerakmi?

Ha, Apple Dynamic Type ni barcha ilovalar uchun tavsiya qiladi. Foydalanuvchi matn o'lchamini Sozlamalarda o'rnatadi. Dasturchi UIFontMetrics.scaledFont dan foydalanadi — shrift avtomatik masshtablanadi. Dynamic Type bo'lmasa, zaif ko'ruvchi foydalanuvchilar matnni o'qiy olmaydi. iOS App Store moderatsiyasida Dynamic Type ni avtomatik tekshiradi.

WCAG nima?

WCAG (Web Content Accessibility Guidelines) — W3C dan xalqaro tarkib foydalanish qulayligi standarti. 2.1 versiyasi (2018) mobil ilovalar uchun mezonlarni o'z ichiga oladi: kontrast, teginish maydonlari o'lchami (44×44pt), ekran o'qituvchilarini qo'llab-quvvatlash, imo-ishoralarga muqobillar, subtitrlar. AA darajasi — App Store va Google Playda nashr qilish uchun minimal standart.

Xulosa

  • Accessibility — 1,3 milliard nogironligi bo'lgan odam uchun ilovalarning foydalanish qulayligi (JSST, 2023)
  • VoiceOver (iOS) va TalkBack (Android) — ko'r foydalanuvchilar uchun ekran o'qituvchilari
  • UIAccessibility — accessibility elementlariga label, hint, traits o'rnatish uchun iOS protokoli
  • contentDescription — TalkBack uchun elementlarni tavsiflash uchun Android atributi
  • WCAG 2.1 — kontrast 4.5:1, teginish maydonlari 44×44pt, Dynamic Type qo'llab-quvvatlashi
  • Dynamic Type — UIFontMetrics.scaledFont orqali iOSda matn masshtablashi
  • Test — Accessibility Inspector (iOS), Accessibility Scanner (Android), Espresso Checks

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing