TalkBack — mi ez, vezérlő gesztusok és beállítás Androidon

Szerző: IT Sectr Megjelenés: 2026-05-15 Olvasási idő: 8 perc

TalkBack — a Google beépített képernyőolvasója (screen reader) Androidhoz, amely az Android Accessibility Suite csomag része. Hangosítja a felület elemeit és lehetővé teszi a készülék vezérlését gesztusok segítségével, teljes hozzáférést biztosítva a vakok és gyengánlátók számára az okostelefon funkcióihoz. A Google Accessibility Help (2025) szerint a TalkBack a legtöbb Android-eszközön előre telepítve van és több mint 30 nyelvet támogat különböző hangmotorokkal.

Főbb pontok

  • TalkBack — a Google beépített képernyőolvasója Androidhoz gesztusvezérléssel és hangvisszajelzéssel
  • Akadálymentesítési fókusz sárga kerettel emeli ki az elemet, amelyet a TalkBack éppen hangosít
  • Gesztusok magukban foglalják az érintést (hangosítás), dupla érintést (aktiválás) és a három ujjal történő húzást
  • Fejlesztők az akadálymentesítést a contentDescription és AccessibilityNodeInfo segítségével konfigurálják
  • TalkBack integrálódik a Google Assistanttel és a Braille-kijelzőkkel

Mi az a TalkBack?

TalkBack — egy képernyőolvasó (screen reader) Androidhoz, amelyet a Google fejlesztett ki és az Android Accessibility Suite része. Hangvisszajelzést és gesztusvezérlést biztosít a látássérült felhasználók számára. A TalkBack működhet okostelefonokon, tableteken, Smart TV-n és Wear OS-sel ellátott viselhető eszközökön.

A TalkBack először az Android 1.6 (Donut) verzióban jelent meg 2009-ben. Kezdetben különálló projekt volt, de az Android 4.0 (Ice Cream Sandwich) megjelenésével az Android Accessibility Suite részévé vált — ez egy olyan szolgáltatáscsomag, amely a Switch Access-t és a Select to Speak-et is tartalmazza. Az Android 10-től kezdve a TalkBack előre telepítve van minden Google Play-szolgáltatásokkal rendelkező eszközön, beleértve a partnerek — Samsung, Xiaomi, Oppo és mások — eszközeit is.

A TalkBack több mint 30 nyelvet támogat különböző hangmotorokkal: Google Text-to-Speech, Samsung TTS és harmadik fél által fejlesztett motorok. A magyar nyelvhez a Google TTS hangmotort használják, amely természetes kiejtést és helyes intonációt biztosít. A felhasználó beállíthatja a beszéd sebességét, hangmagasságát és kiválaszthatja a hang nemét a TalkBack beállításaiban.

Hogyan működik a TalkBack?

A TalkBack az akadálymentesítési szolgáltatáson (AccessibilityService) alapul — ez egy Android rendszermechanizmus, amely lehetővé teszi az alkalmazások számára, hogy információkat szerezzenek a felület állapotáról és programozottan interakcióba lépjenek vele. Amikor a TalkBack be van kapcsolva, elfogja az összes érintési eseményt és átalakítja azokat a képernyőolvasó speciális gesztusaivá.

Akadálymentesítési fókusz

A TalkBack működésének kulcseleme az akadálymentesítési fókusz (accessibility focus). Ellentétben a szabványos bemeneti fókusszal, amely a szövegmező kiemelésekként látszik, az akadálymentesítési fókusz sárga keretként jelenik meg az elem körül és láthatatlan a TalkBack nélküli felhasználó számára. Amikor az akadálymentesítési fókusz egy elemre kerül, a TalkBack hangosítja annak tartalmát, típusát és állapotát.

A felhasználó gesztusokkal mozgatja az akadálymentesítési fókuszt: jobbra húzás — következő elem, balra húzás — előző elem. Az elemek bejárási sorrendjét az AccessibilityNodeInfo — az által, hogy Android minden képernyőhöz felépíti az akadálymentesítési fát — határozza meg. A fejlesztő befolyásolhatja a sorrendet a accessibilityTraversalBefore és accessibilityTraversalAfter tulajdonságokon keresztül, ami különösen fontos az egyéni elrendezésű összetett képernyők esetében.

AccessibilityNodeInfo és akadálymentesítési fa

A képernyőn minden View egy csomóponttal van reprezentálva az akadálymentesítési fában — egy AccessibilityNodeInfo objektummal. Ez az objektum tartalmazza: az elem szövegét (contentDescription vagy a View szövege), az elem típusát (gomb, jelölőnégyzet, beviteli mező), állapotát (bekapcsolva/kikapcsolva/kijelölve), pozícióját a képernyőn és az elérhető műveletek listáját. A TalkBack bejárja ezt a fát és hangosítja minden csomópontot a bejárás sorrendjében.

Ha egy View-nak nincs szöveges tartalma (például egy ImageView leírás nélkül), láthatatlan lesz a TalkBack számára — a felhasználó nem fog tudni a létezéséről. A probléma megoldásához a fejlesztő beállítja a contentDescription tulajdonságot — egy szöveges leírást, amelyet a TalkBack a csend helyett kimond. Az Android támogatja továbbá a stateDescription tulajdonságot a változó állapotú elemekhez (kijelölve/nincs kijelölve) és a hintText tulajdonságot a súgóval ellátott beviteli mezőkhöz.

TalkBack vezérlő gesztusok

A TalkBack átalakítja a szabványos Android gesztusokat a képernyőolvasó speciális gesztusaivá. A legtöbb művelet egy vagy két ujjal végezhető el, a három ujjal végzett gesztusok a globális műveletek számára vannak fenntartva.

MűveletGesztusEredmény
Elem hangosításaÉrintés 1 ujjalKimondja az elem nevét és típusát
AktiválásDupla érintésGomb megnyomása vagy navigálás
KövetkezőHúzás jobbraKövetkező elem
ElőzőHúzás balraElőző elem
Görgetés2 ujj húzásaLista görgetése
TalkBack menüHúzás fel-balraGlobális beállítási menü

A „húzás fel-balra“ gesztus (L alakú húzás) megnyitja a TalkBack globális menüjét, ahol a felhasználó megváltoztathatja a beszéd sebességét, bekapcsolhatja a képernyőfüggönyt, elindíthatja az oktatóanyagot vagy megnyithatja a beállításokat. A TalkBack támogatja továbbá a helyi menüt az elemekhez: a fel-jobbra húzás megnyitja az aktuális elem számára elérhető műveletek listáját (például „másolás“, „beillesztés“ egy szövegmező esetén vagy „törlés“ egy chat üzenetnél).

TalkBack a mobilfejlesztésben

Az Android gazdag API-t biztosít az akadálymentesítés konfigurálásához. Az alapszint a contentDescription, de a TalkBack minőségi támogatásához az AccessibilityNodeInfo, AccessibilityDelegate és LiveRegion használata szükséges.

ContentDescription és fontos attribútumok

Az android:contentDescription attribútum beállítja az elem szöveges leírását a TalkBack számára. Kötelező az ImageView, ImageButton, FloatingActionButton és minden olyan egyéni View esetében, amelynek nincs szöveges tartalma. A szabványos elemeknél (TextView, Button) a contentDescription opcionális — a TalkBack automatikusan beolvassa a szöveget.

kotlin
val avatarView = ImageView(this)
avatarView.contentDescription = "Felhasználói avatar"
avatarView.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_YES

val playButton = ImageButton(this)
playButton.contentDescription = "Videó lejátszása"

val progressBar = ProgressBar(this)
progressBar.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_NO

A importantForAccessibility jelző szabályozza az elem láthatóságát a TalkBack számára. A NO érték elrejti az elemet az akadálymentesítési fából — hasznos dekoratív képek, jelzők és egyéni hátterek esetén. A YES érték kényszeríti az elem beépítését a bejárásba, akkor is, ha nincs szövege. Fontos, hogy ne éljünk vissza a NO használatával: a szemantikailag fontos elemek elrejtése használhatatlanná teszi az alkalmazást a TalkBack felhasználók számára.

AccessibilityDelegate és egyéni műveletek

Az egyéni View-k esetében, amelyek nem használnak szabványos kattintáskezelőket, felül kell írni az AccessibilityDelegate osztályt — amely az akadálymentesítési eseményeket dolgozza fel. A delegált lehetővé teszi egyéni leírás, elem típus és az elérhető műveletek listájának beállítását, amelyeket a TalkBack a helyi menün keresztül ajánl fel a felhasználónak.

kotlin
class CustomButtonDelegate : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "Egyéni gomb"
        info.className = Button::class.java.name
        info.addAction(
            AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                R.id.custom_action, "Megosztás"
            )
        )
    }

    override fun performAccessibilityAction(
        host: View, action: Int, args: Bundle?
    ): Boolean {
        if (action == R.id.custom_action) {
            shareContent()
            return true
        }
        return super.performAccessibilityAction(host, action, args)
    }
}

A példában a delegált tájékoztatja a TalkBacket, hogy az elem egy gomb (className = Button), és biztosítja a „Megosztás“ egyéni műveletet, amely megjelenik a TalkBack helyi menüjében. A performAccessibilityAction metódus dolgozza fel a művelet meghívását. Delegált nélkül a TalkBack egy egyszerű, interaktivitás nélküli területként érzékelné az egyéni View-t, és a felhasználó nem tudna interakcióba lépni vele.

Akadálymentesítés beállítása TalkBackhez

A TalkBack teljes támogatása nemcsak a contentDescription-t foglalja magában, hanem a fókusz kezelését, a LiveRegion-t a dinamikus frissítésekhez, a tesztelést bekapcsolt képernyőolvasóval és az alkalmazkodást a különböző Android verziókhoz.

LiveRegion dinamikus tartalomhoz

Amikor a képernyő tartalma a felhasználó explicit művelete nélkül változik (például megjelenik egy új üzenet értesítése vagy frissül a like-ok számlálója), a TalkBacknek értesítést kell kapnia. Ehhez az android:accessibilityLiveRegion attribútumot használják a View számára XML-ben vagy a setAccessibilityLiveRegion() metódust kódban. A polite érték a jelenlegi hangosítás befejezése után adja hozzá a bejelentést, míg az assertive érték azonnal megszakítja azt.

kotlin
val statusText = TextView(this)
statusText.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_POLITE

// A szöveg frissítésekor a TalkBack automatikusan
// bejelenti a változást
statusText.text = "Új üzenet Annától"

// Kritikus értesítésekhez — assertive
errorBanner.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE

A LiveRegion az UIAccessibility.post megfelelője iOS-en. Használja a polite értéket a legtöbb frissítéshez (új üzenetek, állapot frissítése) és az assertive értéket csak kritikus hibákhoz (sikertelen fizetés, kapcsolat megszakadása). Az assertive túlzott használata negatív felhasználói élményt eredményez — a TalkBack folyamatosan megszakítja a jelenlegi hangosítást.

Csoportosítés és akadálymentesítési szolgáltatók

Az összetett képernyőkhöz, ahol több View alkot egy logikai egységet, az AccessibilityNodeProvider vagy a focusSearch használata javasolt a navigáció felülírásához. Például egy 42 cellából álló egyéni naptár (6 hét × 7 nap) nem kényszerítheti a felhasználót arra, hogy mind a 42 elemet végiggörgetve jusson el a következő blokkhoz. A fejlesztő logikai csoportokba rendezheti a cellákat: hónap → hét → nap.

A Jetpack Compose esetében a .semantics {} módosító használható, amely hasonló API-t biztosít: contentDescription, liveRegion, stateDescription, disabled és customActions. A Compose támogatja továbbá a mergeDescendants funkciót a gyermek szemantikák egyetlen egységbe vonásához, ami leegyszerűsíti az elemek csoportosítását anélkül, hogy minden View-hoz kézzel kellene konfigurálni az accessibilityDelegate-t.

kotlin
Button(
    onClick = { sendMessage() },
    modifier = Modifier.semantics {
        contentDescription("Üzenet küldése")
        stateDescription("Küldésre kész")
    }
) {
    Icon(Icons.Filled.Send, "Küldés")
}

A TalkBack tesztelése fizikai eszközzel vagy emulátorral történik, bekapcsolt szolgáltatás mellett. Javasolt a legfontosabb felhasználói forgatókönyvek átfutása kikapcsolt képernyővel (Screen Curtain) — ez szimulálja a vizuális visszajelzés teljes hiányát. Az Android emellett Accessibility Scannert is biztosít — egy eszközt az akadálymentesítési problémák automatikus észlelésére, amely kiemeli a contentDescription nélküli elemeket, a túl kicsi érintési területeket és az alacsony kontrasztot.

Gyakran ismételt kérdések

Hogyan kapcsoljam be a TalkBacket Androidon?

Beállítások → Akadálymentesítés → TalkBack → Bekapcsolás. A gyors bekapcsoláshoz mindkét hangerőgomb egyidejű lenyomását kell használni 3 másodpercig. A Google Assistant szintén bekapcsolhatja a TalkBacket a „Kapcsold be a TalkBacket“ hangparanccsal.

Miben különbözik a TalkBack a VoiceOvertől?

A TalkBack képernyőolvasó Androidhoz, a VoiceOver iOS-hez. TalkBack az AccessibilityService-t és a sárga kerettel rendelkező akadálymentesítési fókuszt használja, míg a VoiceOver az UIAccessibility-t és a rotort. A gesztusok és a menük különböznek: a TalkBack L alakú húzásokat használ a globális menü megnyitásához.

Hogyan tehetem az alkalmazást kompatibilissé a TalkBackkel?

Állítson be contentDescription tulajdonságot az összes ImageView és egyéni elem számára. Használja az importantForAccessibility-t a dekoratív elemek elrejtéséhez. Konfigurálja az accessibilityLiveRegion-t a dinamikus frissítésekhez és ellenőrizze az Accessibility Scanner segítségével. A Compose-ban használja a .semantics{} módosítót.

Mi az az AccessibilityNodeInfo?

Ez egy objektum, amely egy felületi elemet reprezentál az akadálymentesítési fában. Tartalmazza a szöveget, típust, állapotot, pozíciót és a műveletek listáját. A TalkBack ezt a fát járja be a navigációhoz. A fejlesztő módosíthatja azt az AccessibilityDelegate vagy az XML attribútumain keresztül.

Miért nem hangosítja a TalkBack a gombomat?

Ellenőrizze az importantForAccessibility tulajdonságot — lehet, hogy NO értékre van állítva. Győződjön meg arról, hogy a contentDescription be van állítva a szöveg nélküli elemekhez. Az egyéni View-khoz implementálja az AccessibilityDelegate-t onInitializeAccessibilityNodeInfo-val. Használja az Accessibility Scannert a diagnosztizáláshoz.

Összefoglaló

  • TalkBack — beépített Android képernyőolvasó az Android Accessibility Suite-ban gesztusvezérléssel
  • Akadálymentesítési fókusz sárga kerettel jelöli az aktuálisan hangosított elemet a képernyőn
  • AccessibilityService elfogja az érintési eseményeket és átalakítja azokat képernyőolvasó gesztusokba
  • TalkBack gesztusok magukban foglalják az érintést (hangosítás), dupla érintést (aktiválás) és L alakú húzást (menü)
  • Fejlesztés contentDescription, AccessibilityDelegate, LiveRegion és semantics segítségével a Compose-ban
  • Dinamikus frissítések android:accessibilityLiveRegion tulajdonságot igényelnek a változások automatikus bejelentéséhez
  • Tesztelés Accessibility Scannerrel és Screen Curtain-nel kötelező a minőségi támogatáshoz

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is