Screen Reader: bu nədir, ekran oxuyucularının növləri və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-05-15 Oxuma vaxtı: 10 dəq

Screen Reader (ekran oxuyucu) — mətni və qrafik interfeys elementlərini nitqə və ya brail displeyə çevirən, görmə qabiliyyəti olmayan və zəif görən istifadəçilərə vizual nəzarət olmadan cihazla qarşılıqlı əlaqə yaratmağa imkan verən proqramdır. Mobil platformalarda əsas ekran oxuyucuları iOS-da VoiceOver və Android-də TalkBack-dir. Ümumdünya Səhiyyə Təşkilatının (2023) məlumatlarına görə, Screen Reader dünyada görmə qabiliyyəti pozulmuş 285 milyon insan üçün rəqəmsal texnologiyalara çıxışın əsas alətidir.

Əsas məqamlar

  • Screen Reader — ekran oxuyan proqram, interfeysi görmə qabiliyyəti olmayan istifadəçilər üçün nitqə və ya brailə çevirir
  • VoiceOver — iOS üçün ekran oxuyucu, jest idarəetməsi və naviqasiya rotoru ilə
  • TalkBack — Android üçün Accessibility Suite tərkibində ekran oxuyucu, əlçatanlıq fokusu ilə
  • İş prinsipi ekrandakı bütün View-lərdən qurulan əlçatanlıq ağacına (Accessibility Tree) əsaslanır
  • Tərtibatçılar qarşılıqlı əlaqəni contentDescription və accessibilityLabel vasitəsilə konfiqurasiya edir

Screen Reader nədir?

Screen Reader (ekran oxuyucu) — qrafik istifadəçi interfeysini şərh edən və onu qeyri-vizual formada təqdim edən köməkçi texnologiyadır (Assistive Technology, AT): sintez edilmiş nitq və ya toxunma brail displeyi vasitəsilə. Ekran oxuyucuları tam və ya qismən görmə itkisi olan insanlar üçün kompüterlərə və mobil cihazlara çıxışın əsas vasitəsidir.

İlk ekran oxuyucuları 1980-ci illərin sonunda MS-DOS üçün (məsələn, Vocal-Eyes) və daha sonra Windows üçün (JAWS, NVDA) meydana çıxdı. Mobil platformalarda ekran oxuyucuları sistem səviyyəsində quraşdırılmağa başlandı: Apple 2009-cu ildə iPhone 3GS-də VoiceOver-i, Google həmin ildə Android 1.6-da TalkBack-i inteqrasiya etdi. 2025-ci ilə qədər demək olar ki, bütün müasir smartfonlarda əlavə proqram təminatı quraşdırmağı tələb etməyən quraşdırılmış ekran oxuyucu var.

Screen Reader sadəcə ekrandan mətni oxumur — interfeysin iyerarxiyasını təhlil edir, elementlərin növlərini (düymə, keçid, başlıq, daxiletmə sahəsi), onların vəziyyətini (aktiv/deaktiv, seçilib/seçilməyib) və qarşılıqlı əlaqələrini (valideyn-uşaq, qrup) müəyyən edir. Bu məlumat istifadəçiyə səsli təlimatlar və ya fokusun mövqeyinə uyğun olaraq real vaxtda hüceyrələri yeniləyən brail displeyinin toxunma hissləri vasitəsilə ötürülür.

Screen Reader necə işləyir?

Screen Reader əməliyyat sistemi ilə sıx əlaqədə işləyir, onun interfeysin daxili təsvirinə — əlçatanlıq ağacına (Accessibility Tree) çıxış əldə edir. Bu mexanizm iOS və Android-də eynidir, baxmayaraq ki, API adları fərqlənir.

Mətnin nitqə çevrilməsi (TTS)

Ekran oxuyucunun əsas çıxış kanalı nitq sintezatorudur (Text-To-Speech, TTS). Əlçatanlıq fokusu elementə düşdükdə, ekran oxuyucu onun mətn məzmununu (və ya tərtibatçı tərəfindən müəyyən edilmiş təsviri) çıxarır və TTS mühərrikinə göndərir. Apple Speech Synthesis və Google Text-to-Speech kimi müasir TTS mühərrikləri durğu işarələrindən və məzmun növündən asılı olaraq düzgün intonasiya, pauza və vurğu ilə təbii nitq yaratmaq üçün neyron şəbəkələrindən istifadə edir.

İstifadəçi nitq sürətini (rahat qavrama üçün adətən maksimumun 60–80%-i), ton hündürlüyünü və səs səviyyəsini tənzimləyə bilər. Bəzi ekran oxuyucuları məzmun növündən asılı olaraq bir neçə səs və onlar arasında keçidi dəstəkləyir — məsələn, mətn oxumaq üçün daha yavaş səs və interfeysdə naviqasiya üçün sürətli səs. Brail displeyləri Bluetooth vasitəsilə qoşulur və eyni anda 40–80 simvol göstərir, fokus hər dəfə dəyişdikdə sətri yeniləyir.

Fokus idarəetməsi və naviqasiya

Ekran oxuyucu standart giriş fokusundan fərqlənən əlçatanlıq fokusu (Accessibility Focus) konsepsiyasından istifadə edir. İstifadəçi əlçatanlıq fokusunu jestlərlə (toxunma, sürüşdürmə) hərəkət etdirir və ekran oxuyucu fokus altındakı elementi səsləndirir. Naviqasiya sırası defolt olaraq vizual sıranı izləyir: soldan sağa, yuxarıdan aşağıya. Tərtibatçı mürəkkəb düzənlər üçün bu sıranı ləğv edə bilər.

Ekran oxuyucu həmçinin istifadəçinin rotor (VoiceOver) və ya menyu (TalkBack) vasitəsilə keçid etdiyi müxtəlif naviqasiya rejimlərini dəstəkləyir: başlıqlar, keçidlər, simvollar, sözlər, formalar üzrə. Başlıq rejimində ekran oxuyucu yalnız H1-H6 arasında hərəkət edir — bu, uzun səhifələr və sənədlər üzrə effektiv naviqasiya üçün kritik əhəmiyyət daşıyır. Simvol rejimi təsdiq kodları və ya mürəkkəb parollar daxil edərkən kömək edir, hər simvolu ayrıca tələffüz edir.

Mobil platformalar üçün əsas ekran oxuyucuları

Mobil platformalarda iki ekran oxuyucu üstünlük təşkil edir: iOS-da VoiceOver və Android-də TalkBack. Onların müxtəlif API-ləri, jestləri və imkanları var, lakin ümumi iş prinsipi — əlçatanlıq ağacını oxumaq və jestlərlə idarəetmə.

VoiceOver (iOS)

VoiceOver — Apple-dan iOS, iPadOS və macOS-a quraşdırılmış ekran oxuyucudur. Elementlər haqqında məlumat almaq üçün UIAccessibility API-dən istifadə edir və naviqasiya rejimlərini dəyişmək üçün rotoru dəstəkləyir. VoiceOver iCloud (parametrlər cihazlar arasında sinxronlaşır), Apple Pay (Touch ID və ya Face ID ilə ödəniş təsdiqi) və dinamik mətn (şrift istifadəçi parametrlərinə uyğunlaşır) ilə inteqrasiya olunub.

VoiceOver jestləri TalkBack-dən fərqlənir: iki barmaqla fırlatma (rotor), Screen Curtain üçün üçqat toxunma və hərəkəti ləğv etmək üçün iki barmaqla ikiqat toxunma istifadə olunur. VoiceOver tərtibatçının UIAccessibilityCustomRotor vasitəsilə əlavə etdiyi fərdi rotorları dəstəkləyir — məsələn, standart sıranı keçərək tətbiqin bölmələri üzrə sürətli naviqasiya üçün.

TalkBack (Android)

TalkBack — Google-dan Android Accessibility Suite tərkibinə daxil olan ekran oxuyucudur. İnterfeysə çıxış üçün AccessibilityService və AccessibilityNodeInfo-dan istifadə edir. TalkBack L-formalı sürüşdürmə vasitəsilə qlobal menyunu, elementlər üçün fərdi hərəkətləri və dinamik yeniləmələr üçün LiveRegion-u dəstəkləyir. Android 14-dən başlayaraq, TalkBack bir əllə jest dəstəyi və Google Assistant ilə təkmilləşdirilmiş inteqrasiya əldə etdi.

TalkBack VoiceOver-dən daha çevik jest sisteminə malikdir: istifadəçi demək olar ki, hər jesti istənilən hərəkətə təyin edə bilər. TalkBack həmçinin ekranda brail daxiletməsini (BrailleBack) dəstəkləyir — istifadəçi hər barmaq üçün xüsusi 3×2 düzülüşündə toxunma ekranda birbaşa brail simvolları ilə mətn daxil edir ki, bu da ekran klaviaturası ilə müqayisədə mətn daxiletməsini əhəmiyyətli dərəcədə sürətləndirir.

XüsusiyyətVoiceOver (iOS)TalkBack (Android)
APIUIAccessibilityAccessibilityService
NaviqasiyaRotor (2 barmaq)Qlobal menyu (L-sürüşdürmə)
Dillər40+30+
Fərdi hərəkətlərUIAccessibilityCustomRotorAccessibilityDelegate
BrailXarici displeylərBrailleBack + xarici
Dinamik yeniləmələrUIAccessibility.postaccessibilityLiveRegion

VoiceOver və TalkBack-dan başqa, daha az yayılmış mobil ekran oxuyucuları da var: Select to Speak (Android, seçilmiş sahənin səsləndirilməsi), Samsung Voice Assistant (Samsung cihazlarında One UI ilə TalkBack-in əvəzləyicisi) və spesifik nişlər üçün üçüncü tərəf həlləri — məsələn, Google xidmətləri olmayan Çin smartfonlarının istifadəçiləri üçün.

Screen Reader tətbiq ilə necə qarşılıqlı əlaqə qurur

Screen Reader tətbiqin UI komponentlərinə birbaşa çıxış əldə etmir. Bunun əvəzinə o, əməliyyat sisteminin əlçatanlıq API-si olan ara təbəqə vasitəsilə işləyir. Əməliyyat sistemi ekran oxuyucunun gəzdiyi və təhlil etdiyi əlçatanlıq ağacını (Accessibility Tree) qurur.

iOS və Android-də Accessibility Tree

iOS-da əlçatanlıq ağacı ekrandakı hər View-ə uyğun gələn UIAccessibilityElement obyektlərindən qurulur. Hər bir element label (əsas mətn), traits (element növü: düymə, başlıq, keçid), hint (ipucu), value (sürgülər və göstəricilər üçün cari dəyər) və frame (toxunma sahəsi) ehtiva edir. Sistem standart UI komponentləri üçün avtomatik elementlər yaradır, lakin tərtibatçı onları əlavə edə və konfiqurasiya edə bilər.

Android-də əlçatanlıq ağacı AccessibilityNodeInfo obyektlərindən qurulur. Hər bir düyün ehtiva edir: text (mətn və ya contentDescription), className (element növü), contentDescription (təsvir), stateDescription (vəziyyət), isEnabled, isChecked, isClickable və digər bayraqlar. Android həmçinin AccessibilityAction-u dəstəkləyir — ekran oxuyucunun istifadəçi adından yerinə yetirə biləcəyi hərəkətlərin siyahısı: klik, uzun basma, sürüşdürmə, fokusun qurulması, mətnin qurulması.

Əlçatanlıq hadisələri (Accessibility Events)

İnterfeysdə dəyişiklik baş verdikdə (yeni element peyda oldu, mətn dəyişdi, element görünən və ya görünməz oldu), əməliyyat sistemi AccessibilityEvent göndərir. Ekran oxuyucu bu hadisələrə abunə olur və onlara reaksiya verir: məsələn, dialoq pəncərəsi görünəndə ekran oxuyucu avtomatik olaraq fokusu onun başlığına köçürür və məzmunu səsləndirir.

kotlin
// Android-də əlçatanlıq hadisələrinin dinlənilməsi
class CustomAccessibilityService : AccessibilityService() {
    override fun onAccessibilityEvent(event: AccessibilityEvent?) {
        event ?: return
        when (event.eventType) {
            TYPE_VIEW_CLICKED ->
                handleClick(event)
            TYPE_WINDOW_STATE_CHANGED ->
                handleWindowChange(event)
            TYPE_VIEW_TEXT_CHANGED ->
                handleTextChange(event)
        }
    }
}

iOS-da oxşar hadisələr UIAccessibility.Notification vasitəsilə işlənir: layoutChanged (düzən dəyişdi), screenChanged (tamamilə yeni ekran), announcement (ixtiyari elan), pageScrolled (səhifə sürüşdürmə). Tərtibatçı bu hadisələri UIAccessibility.post vasitəsilə göndərir ki, ekran oxuyucu dəyişikliklərə düzgün reaksiya versin. Məsələn, modal pəncərə açılarkən yeni başlıq göstərilməklə screenChanged göndərilməlidir — əks halda VoiceOver pəncərənin altındakı əvvəlki elementdə qalacaq.

Screen Reader nəzərə alınmaqla tətbiqlərin hazırlanması

Əlçatan tətbiq yaratmaq — hər elementə contentDescription əlavə etmək deyil, qeyri-vizual qarşılıqlı əlaqə üçün istifadəçi təcrübəsini düşünməkdir. Əsas qaydalar hər iki platforma üçün ümumidir, baxmayaraq ki, tətbiq fərqlənir.

Əsas əlçatanlıq qaydaları

Bütün interaktiv elementlər mənalı təsvirə malik olmalıdır: "Göndər" düyməsi "Mesaj göndər" kimi təsvir edilməli, "Düymə" kimi yox. Dekorativ elementlər (ayırıcılar, fon şəkilləri, funksional olmayan ikonlar) ekran oxuyucudan gizlədilməlidir. Naviqasiya sırası ekranın vizual düzülüşünə deyil, məntiqi axınına uyğun olmalıdır. Mətn kontrastı əsas mətn üçün ən azı 4.5:1 və böyük mətn üçün 3:1 (WCAG AA) olmalıdır.

swift
// iOS: mürəkkəb elementin düzgün konfiqurasiyası
let customControl = UIControl()
customControl.isAccessibilityElement = true
customControl.accessibilityLabel = "Səs səviyyəsi"
customControl.accessibilityValue = "75 faiz"
customControl.accessibilityTraits = [
    .adjustable,
    .button
]
customControl.accessibilityHint =
    "Səs səviyyəsini artırır və ya azaldır"

// Dəyər dəyişdikdə yeniləmə
func didChangeVolume(newValue: Float) {
    customControl.accessibilityValue =
        "\(Int(newValue)) faiz"
    UIAccessibility.post(
        notification: .layoutChanged,
        argument: customControl
    )
}

iOS-da isAccessibilityElement bayrağı fərdi elementlər üçün VoiceOver dəstəyini aktivləşdirir. Traits (.adjustable + .button) kombinasiyası VoiceOver-ə elementin yuxarı/aşağı sürüşdürmə ilə tənzimlənə biləcəyini və ikiqat toxunma ilə aktivləşdirilə biləcəyini bildirir. Dəyər dəyişdikdən sonra mütləq layoutChanged bildirişi göndərilir — əks halda VoiceOver köhnə dəyəri səsləndirməyə davam edəcək.

Hər iki platforma üçün xüsusi tövsiyələr

iOS üçün: oxu sırasını ləğv etmək üçün accessibilityElements, kontekst menyusunda əlavə hərəkətlər üçün accessibilityCustomActions və elementləri məntiqi qruplara birləşdirmək üçün shouldGroupAccessibilityChildren istifadə edin. SwiftUI üçün .accessibilityLabel(), .accessibilityAddTraits() və .accessibilityRespondsToUserInteraction() modifikatorlarını tətbiq edin. Interaktiv uşaq elementləri olan konteynerlərdə isAccessibilityElement = false istifadə etməkdən çəkinin — bu, onları VoiceOver-dən gizlədəcək.

Android üçün: naviqasiya sırası üçün accessibilityTraversalBefore və accessibilityTraversalAfter, fərdi elementlər üçün AccessibilityDelegate və dinamik yeniləmələr üçün LiveRegion (polite/assertive) istifadə edin. Compose-da .semantics {} modifikatorunu contentDescription, stateDescription və customActions ilə tətbiq edin. Qeyri-interaktiv elementlərdə focusable = true istifadə etməkdən çəkinin — bu, TalkBack üçün yalançı fokus nöqtələri yaradacaq və istifadəçini çaşdıracaq.

Test alətləri

Ekran oxuyucu ilə test mütləq fiziki cihazda aparılmalıdır. Emulyator/simulyator əsas fikir verir, lakin jestlər və cavab sürəti fərqlənir. iOS üçün Accessibility Inspector (Xcode) və Android üçün Accessibility Scanner-dan avtomatik problem axtarışı üçün istifadə edin.

Əsas test ssenariləri: qeydiyyat (formanın doldurulması, yoxlama, göndərmə), axtarış və kataloq üzrə naviqasiya, sifarişin verilməsi, parolun bərpası. Hər bir ssenari vizual nəzarət olmadan — yalnız ekran oxuyucunun səsli təlimatları vasitəsilə yerinə yetirilə bilən olmalıdır. Ekran oxuyucu istifadəçisi ssenarini adi istifadəçi ilə eyni vaxtda (±50%) tamamlaya bilmirsə, tətbiq əlçatanlıq təkmilləşdirməsi tələb edir.

Tez-tez verilən suallar

Screen Reader sadə sözlərlə nədir?

Bu, smartfon ekranında baş verən hər şeyi səsləndirən proqramdır: mətn, düymələr, bildirişlər. İstifadəçi cihazı jestlərlə idarə edir — adını eşitmək üçün elementə toxunur və aktivləşdirmək üçün iki dəfə toxunur. Screen Reader görmə qabiliyyətini səslə əvəz edir.

Mobil cihazlarda hansı ekran oxuyucuları istifadə olunur?

iOS-da — VoiceOver (Apple-dan quraşdırılmış sistem ekran oxuyucusu). Android-də — TalkBack (Google-dan Android Accessibility Suite tərkibinə daxildir). Hər ikisi jest idarəetməsini, səsli əks əlaqəni və Bluetooth vasitəsilə brail displeylərini dəstəkləyir.

Tərtibatçı tətbiqi Screen Reader-ə necə uyğunlaşdıra bilər?

Bütün interaktiv elementlər üçün contentDescription (Android) və ya accessibilityLabel (iOS) təyin edin. Dekorativ elementləri ekran oxuyucudan gizlədin. Dinamik dəyişikliklər zamanı bildirişlər göndərin. Fiziki cihazda vizual nəzarət olmadan ekran oxuyucu aktiv vəziyyətdə test edin.

VoiceOver və TalkBack arasında nə fərq var?

Əsas fərq API və jestlərdədir. VoiceOver iOS-da UIAccessibility və naviqasiya üçün rotordan (iki barmaqla fırlatma) istifadə edir. TalkBack Android-də AccessibilityService və L-formalı sürüşdürmə vasitəsilə qlobal menyudan istifadə edir. İş prinsipi — əlçatanlıq ağacının gəzilməsi — eynidir.

Screen Reader şəkilləri necə oxuyur?

Screen Reader şəkli "görə" bilməz. O, tərtibatçının contentDescription (Android) və ya accessibilityLabel (iOS) vasitəsilə təyin etdiyi mətn təsvirini oxuyur. Təsvir təyin edilməyibsə, ekran oxuyucu fayl adını oxuya və ya sadəcə "şəkil" deyə bilər — bu, istifadəçi üçün faydasızdır.

Nəticə

  • Screen Reader — interfeysi görmə qabiliyyəti olmayan istifadəçilər üçün nitqə və ya brailə çevirən köməkçi texnologiya
  • VoiceOver (iOS) və TalkBack (Android) — öz API və jestləri ilə əsas mobil ekran oxuyucuları
  • İş prinsipi əlçatanlıq ağacına (Accessibility Tree) və əlçatanlıq fokusuna əsaslanır
  • Tərtibatçılar qarşılıqlı əlaqəni contentDescription, accessibilityLabel və fokus idarəetməsi vasitəsilə konfiqurasiya edir
  • Dinamik yeniləmələr əlçatanlıq hadisələrinin göndərilməsini tələb edir: iOS-da UIAccessibility.post, Android-də LiveRegion
  • Test mütləq fiziki cihazda ekran oxuyucu aktiv və ekran sönük vəziyyətdə aparılmalıdır
  • Əlçatanlıq — dünyada görmə qabiliyyəti pozulmuş 285 milyon istifadəçi üçün seçim deyil, zərurətdir

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun