TalkBack — шта је то, гестови управљања и подешавање на Android

Аутор: IT Sectr Објављено: 2026-05-15 Време читања: 8 мин

TalkBack — уграђени екрански читач (screen reader) компаније Google за Android, који је део пакета Android Accessibility Suite. Он изговара елементе интерфејса и омогућава управљање уређајем помоћу гестова, пружајући слепим и слабовидим корисницима пун приступ функцијама паметног телефона. Према Google Accessibility Help (2025), TalkBack је прединсталиран на већини Android уређаја и подржава више од 30 језика са различитим гласовним покретачима.

Главно

  • TalkBack — уграђени екрански читач Google-а за Android са управљањем гестовима и гласовном повратном информацијом
  • Фокус приступачности истиче елемент који TalkBack тренутно изговара жутим оквиром
  • Гестови укључују додир (изговарање), двоструки додир (активација) и превлачење са три прста
  • Програмери подешавају приступачност путем contentDescription и AccessibilityNodeInfo
  • TalkBack се интегрише са Google Assistant и Брајевим дисплејима

Шта је TalkBack?

TalkBack — је екрански читач (screen reader) за Android, развијен од стране Google-а и део Android Accessibility Suite-а. Он пружа гласовну повратну информацију и управљање гестовима за кориснике са оштећењем вида. TalkBack може да ради на паметним телефонима, таблетима, Smart TV-у и носивим уређајима са Wear OS.

TalkBack се први пут појавио у Android 1.6 (Donut) 2009. године. У почетку је то био засебан пројекат, али је изласком Android 4.0 (Ice Cream Sandwich) постао део Android Accessibility Suite — скупа услуга које такође укључују Switch Access и Select to Speak. Почевши од Android 10, TalkBack је прединсталиран на свим уређајима са Google Play услугама, укључујући уређаје партнера — Samsung, Xiaomi, Oppo и друге.

TalkBack подржава више од 30 језика са различитим гласовним покретачима: Google Text-to-Speech, Samsung TTS и независним. За српски језик користи се гласовни покретач Google TTS, који обезбеђује природан изговор и правилну интонацију. Корисник може подесити брзину говора, висину тона и изабрати пол гласа у подешавањима TalkBack-а.

Како ради TalkBack?

TalkBack ради на основу услуге приступачности (AccessibilityService) — системског механизма Android-а који омогућава апликацијама да добијају информације о стању интерфејса и програмски интерагују са њим. Када је TalkBack укључен, он пресреће све догађаје додира и трансформише их у посебне гестове екранског читача.

Фокус приступачности

Кључни елемент рада TalkBack-а — фокус приступачности (accessibility focus). За разлику од стандардног фокуса уноса, који је видљив као истицање текстуалног поља, фокус приступачности се приказује жутим оквиром око елемента и невидљив је за корисника без TalkBack-а. Када фокус приступачности дође до елемента, TalkBack изговара његов садржај, тип и стање.

Корисник помера фокус приступачности гестовима: превлачење удесно — следећи елемент, превлачење улево — претходни елемент. Елементи се обилазе редоследом који одређује AccessibilityNodeInfo — стабло приступачности које Android гради за сваки екран. Програмер може утицати на редослед кроз својства accessibilityTraversalBefore и accessibilityTraversalAfter, што је посебно важно за сложене екране са прилагођеним распоредом.

AccessibilityNodeInfo и стабло приступачности

Сваки View на екрану представљен је чвором у стаблу приступачности — објектом AccessibilityNodeInfo. Овај објекат садржи: текст елемента (contentDescription или текст view-а), тип елемента (дугме, поље за потврду, поље за унос), стање (укључено/искључено/изабрано), позицију на екрану и листу доступних радњи. TalkBack обилази ово стабло и изговара сваки чвор редом.

Ако View нема текстуални садржај (нпр. ImageView без описа), постаје невидљив за TalkBack — корисник неће сазнати за његово постојање. Да би решио овај проблем, програмер поставља contentDescription — текстуални опис који TalkBack изговара уместо празнине. Android такође подржава stateDescription за елементе са променљивим стањем (изабрано/није изабрано) и hintText за поља за унос са назнаком.

Гестови управљања TalkBack

TalkBack претвара стандардне Android гестове у посебне гестове екранског читача. Већина операција се изводи једним или два прста, при чему су гестови са три прста резервисани за глобалне радње.

РадњаГестРезултат
Изговори елементДодир 1 прстомИзговара назив и тип елемента
АктивирајДвоструки додирПритисак дугмета или прелаз
СледећиПревлачење удесноСледећи елемент
ПретходниПревлачење улевоПретходни елемент
Померање2 прста превлачењеПомерање листе
Мени TalkBackПревлачење горе-левоГлобални мени подешавања

Гест „превлачење горе-лево“ (L-облика превлачење) отвара глобални мени TalkBack-а, где корисник може променити брзину говора, укључити екранску завесу, покренути туторијал или отворити подешавања. TalkBack такође подржава контекстуални мени за елементе: превлачење горе-десно отвара листу доступних радњи за тренутни елемент (нпр. „копирај“, „налепи“ за текстуално поље или „избриши“ за поруку у чету).

TalkBack у мобилном развоју

Android пружа богат API за подешавање приступачности. Основни ниво је contentDescription, али за квалитетну подршку TalkBack-а потребан је рад са AccessibilityNodeInfo, AccessibilityDelegate и LiveRegion.

ContentDescription и важни атрибути

Атрибут android:contentDescription поставља текстуални опис елемента за TalkBack. Обавезан је за ImageView, ImageButton, FloatingActionButton и све прилагођене View-ове без текстуалног садржаја. За стандардне елементе (TextView, Button) contentDescription је опционалан — TalkBack ће аутоматски прочитати текст.

kotlin
val avatarView = ImageView(this)
avatarView.contentDescription = "Аватар корисника"
avatarView.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_YES

val playButton = ImageButton(this)
playButton.contentDescription = "Репродукуј видео"

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

Заставица importantForAccessibility управља видљивошћу елемента за TalkBack. Вредност NO скрива елемент из стабла приступачности — корисно за декоративне слике, индикаторе и прилагођене позадине. Вредност YES присилно укључује елемент у обилазак, чак и ако нема текст. Важно је не злоупотребљавати NO: скривање семантички важних елемената чини апликацију недоступном за кориснике TalkBack-а.

AccessibilityDelegate и прилагођене радње

За прилагођене View-ове који не користе стандардне обрађиваче кликова, потребно је премостити AccessibilityDelegate — класу која обрађује догађаје приступачности. Делегат омогућава постављање прилагођеног описа, типа елемента и листе доступних радњи које ће TalkBack понудити кориснику кроз контекстуални мени.

kotlin
class CustomButtonDelegate : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "Прилагођено дугме"
        info.className = Button::class.java.name
        info.addAction(
            AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                R.id.custom_action, "Дели"
            )
        )
    }

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

У примеру, делегат обавештава TalkBack да је елемент дугме (className = Button) и пружа прилагођену радњу „Дели“, која ће се појавити у контекстуалном менију TalkBack-а. Метод performAccessibilityAction обрађује позивање ове радње. Без делегата, TalkBack би прилагођени View доживео као обичну област без интерактивности, и корисник не би могао да интерагује са њим.

Подешавање приступачности за TalkBack

Потпуна подршка TalkBack-а укључује не само contentDescription, већ и управљање фокусом, LiveRegion за динамичка ажурирања, тестирање са укљученим екранским читачем и прилагођавање различитим верзијама Android-а.

LiveRegion за динамички садржај

Када се садржај екрана мења без експлицитне радње корисника (нпр. појави се обавештење о новој поруци или се ажурира бројач лајкова), TalkBack треба да прими обавештење. За то се користи атрибут android:accessibilityLiveRegion за View у XML-у или метод setAccessibilityLiveRegion() у коду. Вредност polite додаје објаву након завршетка тренутног изговарања, а вредност assertive је одмах прекида.

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

// При ажурирању текста TalkBack ће аутоматски
// објавити промену
statusText.text = "Нова порука од Ане"

// За критична обавештења — assertive
errorBanner.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE

LiveRegion — је аналог UIAccessibility.post на iOS-у. Користите polite за већину ажурирања (нове поруке, ажурирање статуса) и assertive само за критичне грешке (неуспешно плаћање, губитак везе). Прекомерна употреба assertive ствара негативно корисничко искуство — TalkBack ће стално прекидати тренутно изговарање.

Груписање и провајдери приступачности

За сложене екране где више View-ова чини једну логичку целину, користи се AccessibilityNodeProvider или focusSearch за премошћивање навигације. На пример, прилагођени календар са 42 ћелије (6 недеља × 7 дана) не би требало да приморава корисника да прелиста свих 42 елемента да би прешао на следећи блок. Програмер може спојити ћелије у логичке групе: месец → недеља → дан.

За Jetpack Compose користи се модификатор .semantics {}, који пружа сличан API: contentDescription, liveRegion, stateDescription, disabled и customActions. Compose такође подржава mergeDescendants за спајање подређених семантика у једну, што поједностављује груписање елемената без ручног подешавања accessibilityDelegate за сваки View.

kotlin
Button(
    onClick = { sendMessage() },
    modifier = Modifier.semantics {
        contentDescription("Пошаљи поруку")
        stateDescription("Спремно за слање")
    }
) {
    Icon(Icons.Filled.Send, "Пошаљи")
}

Тестирање TalkBack-а се врши путем физичког уређаја или емулатора са укљученом услугом. Препоручује се пролазак кључних корисничких сценарија са искљученим екраном (Screen Curtain) — то симулира потпуни недостатак визуелне повратне информације. Android такође пружа Accessibility Scanner — алат за аутоматско откривање проблема приступачности, који истиче елементе без contentDescription, премале области додира и низак контраст.

Често постављана питања

Како укључити TalkBack на Android-у?

Подешавања → Приступачност → TalkBack → Укључи. За брзо укључивање користи се истовремено притискање обе тастере јачине звука на 3 секунде. Google Assistant такође може укључити TalkBack гласовном командом „Укључи TalkBack“.

Чим се TalkBack разликује од VoiceOver-а?

TalkBack — екрански читач за Android, VoiceOver — за iOS. TalkBack користи AccessibilityService и фокус приступачности са жутим оквиром, а VoiceOver — UIAccessibility и ротор. Гестови и менији се разликују: TalkBack има L-облика превлачења за глобални мени.

Како учинити апликацију компатибилном са TalkBack?

Поставите contentDescription за све ImageView и прилагођене елементе. Користите importantForAccessibility за скривање декоративних елемената. Подесите accessibilityLiveRegion за динамичка ажурирања и проверите путем Accessibility Scanner-а. У Compose-у примењујте модификатор .semantics{}.

Шта је AccessibilityNodeInfo?

То је објекат који представља елемент интерфејса у стаблу приступачности. Садржи текст, тип, стање, позицију и листу радњи. TalkBack обилази ово стабло за навигацију. Програмер га може мењати путем AccessibilityDelegate или атрибута у XML-у.

Зашто TalkBack не изговара моје дугме?

Проверите importantForAccessibility — могуће да је постављен на NO. Уверите се да је contentDescription постављен за елементе без текста. За прилагођене View-ове имплементирајте AccessibilityDelegate са onInitializeAccessibilityNodeInfo. Користите Accessibility Scanner за дијагностику.

Резиме

  • TalkBack — уграђени екрански читач Android-а у Android Accessibility Suite-у са управљањем гестовима
  • Фокус приступачности са жутим оквиром означава тренутни изговорени елеменат на екрану
  • AccessibilityService пресреће догађаје додира и трансформише их у гестове екранског читача
  • Гестови TalkBack-а укључују додир (изговарање), двоструки додир (активација) и L-облика превлачења (мени)
  • Развој кроз contentDescription, AccessibilityDelegate, LiveRegion и semantics у Compose-у
  • Динамичка ажурирања захтевају android:accessibilityLiveRegion за аутоматско објављивање промена
  • Тестирање са Accessibility Scanner и Screen Curtain је обавезно за квалитетну подршку

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође