TalkBack — wat het is, bedieningsgebaren en instellen op Android

Auteur: IT Sectr Gepubliceerd: 2026-05-15 Leestijd: 8 min

TalkBack — de ingebouwde schermlezer (screen reader) van Google voor Android, onderdeel van het Android Accessibility Suite-pakket. Het spreekt interface-elementen uit en maakt het mogelijk het apparaat te bedienen met gebaren, waardoor blinde en slechtziende gebruikers volledige toegang krijgen tot smartphonefuncties. Volgens Google Accessibility Help (2025) is TalkBack voorgeïnstalleerd op de meeste Android-apparaten en ondersteunt het meer dan 30 talen met verschillende stemmotoren.

Belangrijkste punten

  • TalkBack — ingebouwde Google-schermlezer voor Android met gebarenbediening en spraakfeedback
  • Toegankelijkheidsfocus markeert het element dat TalkBack momenteel uitspreekt met een gele rand
  • Gebaren omvatten aanraken (uitspreken), dubbeltikken (activeren) en vegen met drie vingers
  • Ontwikkelaars configureren toegankelijkheid via contentDescription en AccessibilityNodeInfo
  • TalkBack integreert met Google Assistant en brailleleesregels

Wat is TalkBack?

TalkBack — is een schermlezer (screen reader) voor Android, ontwikkeld door Google en onderdeel van Android Accessibility Suite. Het biedt spraakfeedback en gebarenbediening voor gebruikers met visuele beperkingen. TalkBack kan werken op smartphones, tablets, Smart TV en draagbare apparaten met Wear OS.

TalkBack verscheen voor het eerst in Android 1.6 (Donut) in 2009. Aanvankelijk was het een apart project, maar met de release van Android 4.0 (Ice Cream Sandwich) werd het onderdeel van Android Accessibility Suite — een reeks diensten die ook Switch Access en Select to Speak omvat. Sinds Android 10 is TalkBack voorgeïnstalleerd op alle apparaten met Google Play-diensten, inclusief apparaten van partners — Samsung, Xiaomi, Oppo en anderen.

TalkBack ondersteunt meer dan 30 talen met verschillende stemmotoren: Google Text-to-Speech, Samsung TTS en externe motoren. Voor het Nederlands wordt de Google TTS-stemmotor gebruikt, die zorgt voor natuurlijke uitspraak en correcte intonatie. De gebruiker kan de spraaksnelheid, toonhoogte aanpassen en stemgeslacht kiezen in de TalkBack-instellingen.

Hoe werkt TalkBack?

TalkBack werkt op basis van de toegankelijkheidsdienst (AccessibilityService) — een systeemmechanisme van Android waarmee apps informatie over de interface-status kunnen verkrijgen en er programmatisch mee kunnen interageren. Wanneer TalkBack is ingeschakeld, onderschept het alle aanraakgebeurtenissen en zet deze om in speciale schermlezergestures.

Toegankelijkheidsfocus

Het belangrijkste element van TalkBack is de toegankelijkheidsfocus (accessibility focus). In tegenstelling tot de standaard invoerfocus, die zichtbaar is als markering van een tekstveld, wordt de toegankelijkheidsfocus weergegeven als een gele rand rond het element en is onzichtbaar voor de gebruiker zonder TalkBack. Wanneer de toegankelijkheidsfocus op een element komt, spreekt TalkBack de inhoud, het type en de status uit.

De gebruiker verplaatst de toegankelijkheidsfocus met gebaren: veeg naar rechts — volgend element, veeg naar links — vorig element. Elementen worden doorlopen in de volgorde bepaald door AccessibilityNodeInfo — de toegankelijkheidsboom die Android voor elk scherm bouwt. De ontwikkelaar kan de volgorde beïnvloeden via de eigenschappen accessibilityTraversalBefore en accessibilityTraversalAfter, wat vooral belangrijk is voor complexe schermen met aangepaste lay-out.

AccessibilityNodeInfo en de toegankelijkheidsboom

Elke View op het scherm wordt vertegenwoordigd door een knoop in de toegankelijkheidsboom — een AccessibilityNodeInfo-object. Dit object bevat: de tekst van het element (contentDescription of de tekst van de view), het type element (knop, selectievakje, invoerveld), de status (ingeschakeld/uitgeschakeld/geselecteerd), de positie op het scherm en een lijst met beschikbare acties. TalkBack doorloopt deze boom en spreekt elke knoop in de doorloopvolgorde uit.

Als een View geen tekstuele inhoud heeft (bijvoorbeeld een ImageView zonder beschrijving), wordt het onzichtbaar voor TalkBack — de gebruiker zal niet weten dat het bestaat. Om dit probleem op te lossen stelt de ontwikkelaar contentDescription in — een tekstuele beschrijving die TalkBack uitspreekt in plaats van stilte. Android ondersteunt ook stateDescription voor elementen met een wijzigbare status (geselecteerd/niet geselecteerd) en hintText voor invoervelden met een hint.

TalkBack-bedieningsgebaren

TalkBack zet standaard Android-gebaren om in speciale schermlezergestures. De meeste bewerkingen worden uitgevoerd met een of twee vingers, waarbij gebaren met drie vingers zijn gereserveerd voor globale acties.

ActieGeberResultaat
Element uitsprekenAanraken met 1 vingerSpreekt naam en type element uit
ActiverenDubbeltikkenKnop indrukken of navigeren
VolgendeVeeg naar rechtsVolgend element
VorigeVeeg naar linksVorig element
Scrollen2 vingers vegenLijst scrollen
TalkBack-menuVeeg omhoog-linksGlobaal instellingenmenu

De „veeg omhoog-links“-gesture (L-vormig vegen) opent het globale TalkBack-menu, waar de gebruiker de spraaksnelheid kan wijzigen, het schermgordijn kan inschakelen, de tutorial kan starten of instellingen kan openen. TalkBack ondersteunt ook contextmenu’s voor elementen: veeg omhoog-rechts opent een lijst met beschikbare acties voor het huidige element (bijvoorbeeld „kopiëren“, „plakken“ voor een tekstveld of „verwijderen“ voor een chatbericht).

TalkBack in mobiele ontwikkeling

Android biedt een rijke API voor het configureren van toegankelijkheid. Het basisniveau is contentDescription, maar voor kwalitatieve ondersteuning van TalkBack is werk met AccessibilityNodeInfo, AccessibilityDelegate en LiveRegion vereist.

ContentDescription en belangrijke attributen

Het attribuut android:contentDescription stelt de tekstuele beschrijving van het element in voor TalkBack. Het is verplicht voor ImageView, ImageButton, FloatingActionButton en elke aangepaste View zonder tekstuele inhoud. Voor standaard elementen (TextView, Button) is contentDescription optioneel — TalkBack leest de tekst automatisch.

kotlin
val avatarView = ImageView(this)
avatarView.contentDescription = "Gebruikersavatar"
avatarView.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_YES

val playButton = ImageButton(this)
playButton.contentDescription = "Video afspelen"

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

De vlag importantForAccessibility bepaalt de zichtbaarheid van het element voor TalkBack. De waarde NO verbergt het element uit de toegankelijkheidsboom — handig voor decoratieve afbeeldingen, indicatoren en aangepaste achtergronden. De waarde YES dwingt het element in de doorloop, zelfs als het geen tekst heeft. Het is belangrijk om NO niet te misbruiken: het verbergen van semantisch belangrijke elementen maakt de app ontoegankelijk voor TalkBack-gebruikers.

AccessibilityDelegate en aangepaste acties

Voor aangepaste Views die geen standaard klikafhandelaars gebruiken, moet AccessibilityDelegate worden overschreven — de klasse die toegankelijkheidsgebeurtenissen verwerkt. De delegate maakt het mogelijk een aangepaste beschrijving, elementtype en lijst met beschikbare acties in te stellen die TalkBack aan de gebruiker zal aanbieden via het contextmenu.

kotlin
class CustomButtonDelegate : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "Aangepaste knop"
        info.className = Button::class.java.name
        info.addAction(
            AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                R.id.custom_action, "Delen"
            )
        )
    }

    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)
    }
}

In het voorbeeld informeert de delegate TalkBack dat het element een knop is (className = Button) en biedt de aangepaste actie „Delen“, die verschijnt in het contextmenu van TalkBack. De methode performAccessibilityAction verwerkt het aanroepen van deze actie. Zonder delegate zou TalkBack de aangepaste View beschouwen als een eenvoudig gebied zonder interactiviteit, en de gebruiker zou er niet mee kunnen interageren.

Toegankelijkheid instellen voor TalkBack

Volledige ondersteuning van TalkBack omvat niet alleen contentDescription, maar ook focusbeheer, LiveRegion voor dynamische updates, testen met ingeschakelde schermlezer en aanpassing aan verschillende Android-versies.

LiveRegion voor dynamische inhoud

Wanneer de scherminhoud verandert zonder expliciete actie van de gebruiker (bijvoorbeeld een melding van een nieuw bericht verschijnt of de teller wordt bijgewerkt), moet TalkBack een melding ontvangen. Hiervoor wordt het attribuut android:accessibilityLiveRegion voor View in XML of de methode setAccessibilityLiveRegion() in code gebruikt. De waarde polite voegt een aankondiging toe na het beëindigen van de huidige uitspraak, terwijl de waarde assertive deze onmiddellijk onderbreekt.

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

// Bij het bijwerken van tekst zal TalkBack automatisch
// de wijziging aankondigen
statusText.text = "Nieuw bericht van Anna"

// Voor kritieke meldingen — assertive
errorBanner.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE

LiveRegion — is het equivalent van UIAccessibility.post op iOS. Gebruik polite voor de meeste updates (nieuwe berichten, statusupdate) en assertive alleen voor kritieke fouten (mislukte betaling, verbindingsverlies). Overmatig gebruik van assertive creëert een negatieve gebruikerservaring — TalkBack zal voortdurend de huidige uitspraak onderbreken.

Groepering en toegankelijkheidsproviders

Voor complexe schermen waar meerdere Views één logische eenheid vormen, wordt AccessibilityNodeProvider of focusSearch gebruikt voor het overschrijven van navigatie. Een aangepaste kalender met 42 cellen (6 weken × 7 dagen) mag de gebruiker bijvoorbeeld niet dwingen om alle 42 elementen te doorlopen om naar het volgende blok te gaan. De ontwikkelaar kan cellen in logische groepen combineren: maand → week → dag.

Voor Jetpack Compose wordt de modificator .semantics {} gebruikt, die een vergelijkbare API biedt: contentDescription, liveRegion, stateDescription, disabled en customActions. Compose ondersteunt ook mergeDescendants voor het samenvoegen van kind-semantiek in één, wat het groeperen van elementen vereenvoudigt zonder handmatige configuratie van accessibilityDelegate voor elke View.

kotlin
Button(
    onClick = { sendMessage() },
    modifier = Modifier.semantics {
        contentDescription("Bericht verzenden")
        stateDescription("Klaar om te verzenden")
    }
) {
    Icon(Icons.Filled.Send, "Verzenden")
}

Het testen van TalkBack gebeurt via een fysiek apparaat of emulator met ingeschakelde dienst. Het wordt aanbevolen om de belangrijkste gebruikersscenario’s te doorlopen met het scherm uitgeschakeld (Screen Curtain) — dit simuleert de volledige afwezigheid van visuele feedback. Android biedt ook Accessibility Scanner — een hulpmiddel voor het automatisch detecteren van toegankelijkheidsproblemen, die elementen zonder contentDescription, te kleine aanraakgebieden en laag contrast markeert.

Veelgestelde vragen

Hoe schakel ik TalkBack in op Android?

Instellingen → Toegankelijkheid → TalkBack → Inschakelen. Voor snel inschakelen wordt gelijktijdig indrukken van beide volumetoetsen gedurende 3 seconden gebruikt. Google Assistant kan TalkBack ook inschakelen via de spraakopdracht „Zet TalkBack aan“.

Wat is het verschil tussen TalkBack en VoiceOver?

TalkBack — schermlezer voor Android, VoiceOver — voor iOS. TalkBack gebruikt AccessibilityService en toegankelijkheidsfocus met gele rand, terwijl VoiceOver UIAccessibility en rotor gebruikt. Gebaren en menu’s verschillen: TalkBack heeft L-vormige veegbewegingen voor het globale menu.

Hoe maak ik een app compatibel met TalkBack?

Stel contentDescription in voor alle ImageViews en aangepaste elementen. Gebruik importantForAccessibility om decoratieve elementen te verbergen. Configureer accessibilityLiveRegion voor dynamische updates en controleer via Accessibility Scanner. Gebruik in Compose de modificator .semantics{}.

Wat is AccessibilityNodeInfo?

Het is een object dat een interface-element vertegenwoordigt in de toegankelijkheidsboom. Bevat tekst, type, status, positie en een lijst met acties. TalkBack doorloopt deze boom voor navigatie. De ontwikkelaar kan het wijzigen via AccessibilityDelegate of attributen in XML.

Waarom spreekt TalkBack mijn knop niet uit?

Controleer importantForAccessibility — mogelijk staat het op NO. Zorg ervoor dat contentDescription is ingesteld voor elementen zonder tekst. Voor aangepaste Views implementeer AccessibilityDelegate met onInitializeAccessibilityNodeInfo. Gebruik Accessibility Scanner voor diagnose.

Samenvatting

  • TalkBack — ingebouwde Android-schermlezer in Android Accessibility Suite met gebarenbediening
  • Toegankelijkheidsfocus met gele rand markeert het huidige uitgesproken element op het scherm
  • AccessibilityService onderschept aanraakgebeurtenissen en zet ze om in schermlezergestures
  • TalkBack-gebaren omvatten aanraken (uitspreken), dubbeltikken (activeren) en L-vormig vegen (menu)
  • Ontwikkeling via contentDescription, AccessibilityDelegate, LiveRegion en semantics in Compose
  • Dynamische updates vereisen android:accessibilityLiveRegion voor automatische aankondiging van wijzigingen
  • Testen met Accessibility Scanner en Screen Curtain is verplicht voor kwalitatieve ondersteuning

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook