Screen Reader: co to je, typy čteček obrazovky a princip fungování

Autor: IT Sectr Publikováno: 2026-05-15 Doba čtení: 10 min

Screen Reader (čtečka obrazovky) — program, který převádí text a grafické prvky rozhraní na řeč nebo výstup na Braillův displej, což umožňuje nevidomým a slabozrakým uživatelům interakci se zařízením bez vizuální kontroly. Na mobilních platformách jsou hlavními čtečkami obrazovky VoiceOver na iOS a TalkBack na Androidu. Podle údajů Světové zdravotnické organizace (2023) je Screen Reader hlavním nástrojem přístupu k digitálním technologiím pro 285 milionů lidí se zrakovým postižením na světě.

Hlavní body

  • Screen Reader — program pro čtení obrazovky, převádějící rozhraní na řeč nebo Braillovo písmo pro nevidomé uživatele
  • VoiceOver — čtečka obrazovky pro iOS s ovládáním gesty a rotačním navigačním ovladačem
  • TalkBack — čtečka obrazovky pro Android v rámci Accessibility Suite s fokusem přístupnosti
  • Princip fungování je založen na stromu přístupnosti (Accessibility Tree), který se vytváří ze všech View na obrazovce
  • Vývojáři nastavují interakci pomocí contentDescription a accessibilityLabel

Co je Screen Reader?

Screen Reader (čtečka obrazovky) — je asistenční technologie (Assistive Technology, AT), která interpretuje grafické uživatelské rozhraní a prezentuje jej v neviditelné formě: prostřednictvím syntetizované řeči nebo hmatového Braillova displeje. Čtečky obrazovky jsou hlavním prostředkem přístupu k počítačům a mobilním zařízením pro osoby s úplnou nebo částečnou ztrátou zraku.

První čtečky obrazovky se objevily na konci 80. let 20. století pro MS-DOS (např. Vocal-Eyes) a později pro Windows (JAWS, NVDA). Na mobilních platformách se čtečky obrazovky začaly zabudovávat na systémové úrovni: Apple integroval VoiceOver do iPhone 3GS v roce 2009, Google integroval TalkBack do Androidu 1.6 ve stejném roce. Do roku 2025 má téměř každý moderní smartphone vestavěnou čtečku obrazovky, která nevyžaduje instalaci dalšího softwaru.

Screen Reader nejen čte text z obrazovky — analyzuje hierarchii rozhraní, určuje typy prvků (tlačítko, odkaz, nadpis, vstupní pole), jejich stav (zapnuto/vypnuto, vybráno/nevybráno) a vzájemné vztahy (rodič-dítě, skupina). Tato informace je předávána uživateli prostřednictvím hlasových pokynů nebo hmatových vjemů Braillova displeje, který aktualizuje buňky v reálném čase podle polohy fokusu.

Jak Screen Reader funguje?

Screen Reader pracuje v těsné součinnosti s operačním systémem a získává přístup k jeho vnitřní reprezentaci rozhraní — stromu přístupnosti (Accessibility Tree). Tento mechanismus je stejný na iOS i Androidu, i když názvy API se liší.

Převod textu na řeč (TTS)

Hlavním výstupním kanálem čtečky obrazovky je syntezátor řeči (Text-To-Speech, TTS). Když fokus přístupnosti dopadne na prvek, čtečka obrazovky extrahuje jeho textový obsah (nebo popis zadaný vývojářem) a odešle jej do TTS enginu. Moderní TTS enginy, jako Apple Speech Synthesis a Google Text-to-Speech, používají neuronové sítě k vytváření přirozené řeči se správnou intonací, pauzami a přízvuky v závislosti na interpunkci a typu obsahu.

Uživatel může nastavit rychlost řeči (obvykle 60–80 % maxima pro pohodlné vnímání), výšku tónu a hlasitost. Některé čtečky obrazovky podporují více hlasů a přepínání mezi nimi v závislosti na typu obsahu — například pomalejší hlas pro čtení textu a rychlý pro navigaci v rozhraní. Braillovy displeje se připojují přes Bluetooth a zobrazují 40–80 znaků najednou, přičemž řádek se aktualizuje při každé změně fokusu.

Ovádání fokusu a navigace

Čtečka obrazovky používá koncept fokusu přístupnosti (Accessibility Focus), který se liší od standardního vstupního fokusu. Uživatel přesouvá fokus přístupnosti pomocí gest (dotyk, tažení) a čtečka obrazovky vysloví prvek pod fokusem. Pořadí navigace ve výchozím nastavení sleduje vizuální pořadí: zleva doprava, shora dolů. Vývojář může toto pořadí přepsat pro složitá rozvržení.

Čtečka obrazovky také podporuje různé režimy navigace, které uživatel přepíná pomocí rotoru (VoiceOver) nebo menu (TalkBack): podle nadpisů, odkazů, znaků, slov, formulářů. V režimu nadpisů se čtečka obrazovky pohybuje pouze mezi H1-H6 — to je kriticky důležité pro efektivní navigaci na dlouhých stránkách a v dokumentech. Režim znaků pomáhá při zadávání potvrzovacích kódů nebo složitých hesel tím, že každý znak vyslovuje samostatně.

Hlavní čtečky obrazovky pro mobilní platformy

Na mobilních platformách dominují dvě čtečky obrazovky: VoiceOver na iOS a TalkBack na Androidu. Mají různá API, gesta a možnosti, ale společný princip fungování — čtení stromu přístupnosti a ovládání gesty.

VoiceOver (iOS)

VoiceOver — čtečka obrazovky od Apple, zabudovaná do iOS, iPadOS a macOS. Používá API UIAccessibility k získávání informací o prvcích a podporuje rotor pro přepínání režimů navigace. VoiceOver je integrován s iCloud (nastavení se synchronizují mezi zařízeními), Apple Pay (potvrzení platby přes Touch ID nebo Face ID) a dynamickým textem (písmo se přizpůsobuje uživatelským nastavením).

Gesta VoiceOver se liší od TalkBack: používá se rotace dvěma prsty (rotor), trojité klepnutí pro Screen Curtain a dvojité klepnutí dvěma prsty pro zrušení akce. VoiceOver podporuje vlastní rotory, které vývojář přidává prostřednictvím UIAccessibilityCustomRotor — například pro rychlou navigaci po sekcích aplikace obcházející standardní pořadí.

TalkBack (Android)

TalkBack — čtečka obrazovky od Google, součást Android Accessibility Suite. Používá AccessibilityService a AccessibilityNodeInfo pro přístup k rozhraní. TalkBack podporuje globální menu pomocí tažení ve tvaru písmene L, vlastní akce pro prvky a LiveRegion pro dynamické aktualizace. Počínaje Androidem 14 získal TalkBack podporu gest jednou rukou a vylepšenou integraci s Google Assistant.

TalkBack má flexibilnější systém gest než VoiceOver: uživatel může přiřadit téměř jakékoli gesto k jakékoli akci. TalkBack také podporuje Braillovo zadávání na obrazovce (BrailleBack) — uživatel zadává text Braillovými znaky přímo na dotykové obrazovce ve speciálním rozložení 3×2 pro každý prst, což výrazně zrychluje psaní ve srovnání s obrazovkovou klávesnicí.

VlastnostVoiceOver (iOS)TalkBack (Android)
APIUIAccessibilityAccessibilityService
NavigaceRotor (2 prsty)Globální menu (L-tažení)
Jazyky40+30+
Vlastní akceUIAccessibilityCustomRotorAccessibilityDelegate
Braillovo písmoExterní displejeBrailleBack + externí
Dynamické aktualizaceUIAccessibility.postaccessibilityLiveRegion

Kromě VoiceOver a TalkBack existují méně rozšířené mobilní čtečky obrazovky: Select to Speak (Android, předčítání vybrané oblasti), Samsung Voice Assistant (náhrada TalkBack na zařízeních Samsung s One UI) a řešení třetích stran pro specifické niky — například pro uživatele čínských smartphonů bez služeb Google.

Jak Screen Reader komunikuje s aplikací

Screen Reader nemá přímý přístup ke komponentám UI aplikace. Místo toho pracuje přes mezivrstvu — API přístupnosti operačního systému. Operační systém vytváří strom přístupnosti (Accessibility Tree), který čtečka obrazovky prochází a analyzuje.

Accessibility Tree na iOS a Androidu

Na iOS se strom přístupnosti vytváří z objektů UIAccessibilityElement, které odpovídají každému View na obrazovce. Každý prvek obsahuje label (hlavní text), traits (typ prvku: tlačítko, nadpis, odkaz), hint (nápověda), value (aktuální hodnota pro posuvníky a indikátory) a frame (oblast dotyku). Systém automaticky vytváří prvky pro standardní UI komponenty, ale vývojář je může přidávat a konfigurovat.

Na Androidu se strom přístupnosti vytváří z objektů AccessibilityNodeInfo. Každý uzel obsahuje: text (text nebo contentDescription), className (typ prvku), contentDescription (popis), stateDescription (stav), isEnabled, isChecked, isClickable a další příznaky. Android také podporuje AccessibilityAction — seznam akcí, které může čtečka obrazovky provést jménem uživatele: kliknutí, dlouhé stisknutí, posouvání, nastavení fokusu, nastavení textu.

Události přístupnosti (Accessibility Events)

Když dojde ke změně v rozhraní (objevil se nový prvek, změnil se text, prvek se stal viditelným nebo neviditelným), operační systém odešle AccessibilityEvent. Čtečka obrazovky je na tyto události přihlášena a reaguje na ně: například při zobrazení dialogového okna čtečka obrazovky automaticky přesune fokus na jeho nadpis a přečte obsah.

kotlin
// Naslouchání událostem přístupnosti na Androidu
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)
        }
    }
}

Na iOS jsou podobné události zpracovávány prostřednictvím UIAccessibility.Notification: layoutChanged (změnilo se rozvržení), screenChanged (zcela nová obrazovka), announcement (libovolné oznámení), pageScrolled (posouvání stránky). Vývojář odesílá tyto události pomocí UIAccessibility.post, aby čtečka obrazovky správně reagovala na změny. Například při otevření modálního okna je třeba odeslat screenChanged s novým nadpisem — jinak VoiceOver zůstane na předchozím prvku pod oknem.

Vývoj aplikací s ohledem na Screen Reader

Vytvoření přístupné aplikace není jen o přidávání contentDescription ke každému prvku, ale o promyšlení uživatelského zážitku pro neviditelnou interakci. Základní pravidla jsou společná pro obě platformy, i když implementace se liší.

Základní pravidla přístupnosti

Všechny interaktivní prvky by měly mít smysluplný popis: tlačítko „Odeslat" by mělo být popsáno jako „Odeslat zprávu", nikoli „Tlačítko". Dekorativní prvky (oddělovače, obrázky na pozadí, ikony bez funkčnosti) by měly být skryté před čtečkou obrazovky. Pořadí navigace by mělo odpovídat logickému toku obrazovky, nikoli vizuálnímu rozvržení. Kontrast textu by měl být alespoň 4.5:1 pro hlavní text a 3:1 pro velký text (WCAG AA).

swift
// iOS: správná konfigurace složitého prvku
let customControl = UIControl()
customControl.isAccessibilityElement = true
customControl.accessibilityLabel = "Hlasitost zvuku"
customControl.accessibilityValue = "75 procent"
customControl.accessibilityTraits = [
    .adjustable,
    .button
]
customControl.accessibilityHint =
    "Zvyšuje nebo snižuje hlasitost"

// Aktualizace při změně hodnoty
func didChangeVolume(newValue: Float) {
    customControl.accessibilityValue =
        "\(Int(newValue)) procent"
    UIAccessibility.post(
        notification: .layoutChanged,
        argument: customControl
    )
}

Na iOS příznak isAccessibilityElement zapíná podporu VoiceOver pro vlastní prvky. Kombinace traits (.adjustable + .button) informuje VoiceOver, že prvek lze nastavit tažením nahoru/dolů a aktivovat dvojitým klepnutím. Po změně hodnoty je povinně odesláno oznámení layoutChanged — jinak bude VoiceOver nadále vyslovovat starou hodnotu.

Specifická doporučení pro obě platformy

Pro iOS: používejte accessibilityElements pro přepsání pořadí čtení, accessibilityCustomActions pro další akce v kontextové nabídce a shouldGroupAccessibilityChildren pro seskupování prvků do logických skupin. Pro SwiftUI aplikujte modifikátory .accessibilityLabel(), .accessibilityAddTraits() a .accessibilityRespondsToUserInteraction(). Vyhněte se použití isAccessibilityElement = false na kontejnerech obsahujících interaktivní podřízené prvky — skryje je to před VoiceOver.

Pro Android: používejte accessibilityTraversalBefore a accessibilityTraversalAfter pro pořadí navigace, AccessibilityDelegate pro vlastní prvky a LiveRegion (polite/assertive) pro dynamické aktualizace. V Compose aplikujte modifikátor .semantics {} s contentDescription, stateDescription a customActions. Vyhněte se použití focusable = true na neinteraktivních prvcích — vytvoří to falešné fokusační body pro TalkBack a zmate uživatele.

Testovací nástroje

Testování se čtečkou obrazovky je povinné na fyzickém zařízení. Emulátor/simulátor poskytuje základní představu, ale gesta a rychlost odezvy se liší. Používejte Accessibility Inspector (Xcode) pro iOS a Accessibility Scanner pro Android pro automatické vyhledávání problémů.

Hlavní testovací scénáře: registrace (vyplnění formuláře, validace, odeslání), vyhledávání a navigace v katalogu, objednávka, obnovení hesla. Každý scénář by měl být proveditelný bez vizuální kontroly — pouze prostřednictvím hlasových pokynů čtečky obrazovky. Pokud uživatel čtečky obrazovky nemůže dokončit scénář ve stejném čase jako běžný uživatel (±50%), — aplikace vyžaduje vylepšení přístupnosti.

Často kladené otázky

Co je Screen Reader jednoduchými slovy?

Je to program, který vyslovuje vše, co se děje na obrazovce smartphonu: text, tlačítka, oznámení. Uživatel ovládá zařízení gesty — dotkne se prvku, aby slyšel jeho název, a dvakrát se dotkne, aby jej aktivoval. Screen Reader nahrazuje zrak hlasem.

Jaké čtečky obrazovky se používají na mobilních zařízeních?

Na iOS — VoiceOver (vestavěná systémová čtečka obrazovky od Apple). Na Androidu — TalkBack (součást Android Accessibility Suite od Google). Obě podporují ovládání gesty, hlasovou zpětnou vazbu a Braillovy displeje přes Bluetooth.

Jak může vývojář přizpůsobit aplikaci pro Screen Reader?

Nastavte contentDescription (Android) nebo accessibilityLabel (iOS) pro všechny interaktivní prvky. Skryjte dekorativní prvky před čtečkou obrazovky. Odesílejte oznámení při dynamických změnách. Testujte se zapnutou čtečkou obrazovky na fyzickém zařízení bez vizuální kontroly.

Jaký je rozdíl mezi VoiceOver a TalkBack?

Hlavní rozdíl je v API a gestech. VoiceOver používá UIAccessibility na iOS a rotor pro navigaci (rotace dvěma prsty). TalkBack používá AccessibilityService na Androidu a globální menu pomocí tažení ve tvaru L. Princip fungování — procházení stromu přístupnosti — je stejný.

Jak Screen Reader čte obrázky?

Screen Reader nemůže obrázek „vidět". Čte textový popis, který vývojář nastaví prostřednictvím contentDescription (Android) nebo accessibilityLabel (iOS). Pokud popis není nastaven, čtečka obrazovky může přečíst název souboru nebo jednoduše říci „obrázek" — což je pro uživatele k ničemu.

Shrnutí

  • Screen Reader — asistenční technologie převádějící rozhraní na řeč nebo Braillovo písmo pro nevidomé uživatele
  • VoiceOver (iOS) a TalkBack (Android) — hlavní mobilní čtečky obrazovky s vlastními API a gesty
  • Princip fungování je založen na stromu přístupnosti (Accessibility Tree) a fokusu přístupnosti
  • Vývojáři nastavují interakci pomocí contentDescription, accessibilityLabel a správy fokusu
  • Dynamické aktualizace vyžadují odesílání událostí přístupnosti: UIAccessibility.post na iOS, LiveRegion na Androidu
  • Testování povinně na fyzickém zařízení se zapnutou čtečkou obrazovky a vypnutým displejem
  • Přístupnost — není volba, ale nezbytnost pro 285 milionů uživatelů se zrakovým postižením na světě

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také