TalkBack — ano ito, mga galaw ng kontrol at pag-setup sa Android

May-akda: IT Sectr Nai-publish: 2026-05-15 Oras ng pagbabasa: 8 min

TalkBack — ang built-in na screen reader mula sa Google para sa Android, na bahagi ng Android Accessibility Suite package. Biniboses nito ang mga elemento ng interface at pinapayagan ang pag-kontrol ng device gamit ang mga galaw, na nagbibigay sa mga bulag at may kapansanan sa paningin ng buong access sa mga function ng smartphone. Ayon sa Google Accessibility Help (2025), ang TalkBack ay naka-preinstall sa karamihan ng Android device at sumusuporta sa mahigit 30 wika na may iba’t ibang voice engine.

Mga pangunahing punto

  • TalkBack — built-in na screen reader ng Google para sa Android na may kontrol sa galaw at voice feedback
  • Accessibility focus nagha-highlight ng elementong kasalukuyang biniboses ng TalkBack gamit ang dilaw na frame
  • Mga galaw kasama ang pag-tap (pag-boses), double tap (pag-activate) at pag-swipe gamit ang tatlong daliri
  • Mga developer nagko-configure ng accessibility sa pamamagitan ng contentDescription at AccessibilityNodeInfo
  • TalkBack ay nagsasama sa Google Assistant at braille display

Ano ang TalkBack?

TalkBack — ay isang screen reader para sa Android, na binuo ng Google at bahagi ng Android Accessibility Suite. Nagbibigay ito ng voice feedback at kontrol sa galaw para sa mga user na may kapansanan sa paningin. Maaaring gumana ang TalkBack sa mga smartphone, tablet, Smart TV, at wearable device na may Wear OS.

Unang lumitaw ang TalkBack sa Android 1.6 (Donut) noong 2009. Sa simula ito ay isang hiwalay na proyekto, ngunit sa paglabas ng Android 4.0 (Ice Cream Sandwich) ito ay naging bahagi ng Android Accessibility Suite — isang set ng mga serbisyo na kinabibilangan din ng Switch Access at Select to Speak. Simula sa Android 10, ang TalkBack ay naka-preinstall sa lahat ng device na may mga serbisyo ng Google Play, kabilang ang mga device ng mga kasosyo — Samsung, Xiaomi, Oppo at iba pa.

TalkBack sumusuporta sa mahigit 30 wika na may iba’t ibang voice engine: Google Text-to-Speech, Samsung TTS, at third-party engine. Para sa Filipino ay ginagamit ang Google TTS voice engine na nagbibigay ng natural na pagbigkas at tamang intonasyon. Maaaring ayusin ng user ang bilis ng pagsasalita, tono, at pumili ng kasarian ng boses sa mga setting ng TalkBack.

Paano gumagana ang TalkBack?

Gumagana ang TalkBack batay sa accessibility service (AccessibilityService) — isang system mechanism ng Android na nagpapahintulot sa mga app na makakuha ng impormasyon tungkol sa estado ng interface at makipag-ugnayan dito nang programmatically. Kapag naka-on ang TalkBack, ini-intercept nito ang lahat ng touch event at ginagawang mga espesyal na galaw ng screen reader.

Accessibility focus

Ang pangunahing elemento ng paggana ng TalkBack — accessibility focus. Hindi tulad ng standard input focus na nakikita bilang highlight ng text field, ang accessibility focus ay ipinapakita bilang dilaw na frame sa paligid ng elemento at invisible sa user na walang TalkBack. Kapag ang accessibility focus ay napunta sa isang elemento, biniboses ng TalkBack ang nilalaman, uri at estado nito.

Inililipat ng user ang accessibility focus gamit ang mga galaw: mag-swipe pakanan — susunod na elemento, mag-swipe pakaliwa — nakaraang elemento. Ang mga elemento ay binibisita sa pagkakasunod-sunod na tinutukoy ng AccessibilityNodeInfo — ang accessibility tree na binuo ng Android para sa bawat screen. Maaaring maimpluwensyahan ng developer ang pagkakasunod-sunod sa pamamagitan ng mga property na accessibilityTraversalBefore at accessibilityTraversalAfter, na mahalaga para sa mga kumplikadong screen na may custom na layout.

AccessibilityNodeInfo at accessibility tree

Ang bawat View sa screen ay kinakatawan ng isang node sa accessibility tree — isang AccessibilityNodeInfo object. Ang object na ito ay naglalaman ng: text ng elemento (contentDescription o text ng view), uri ng elemento (button, checkbox, input field), estado (naka-on/naka-off/napili), posisyon sa screen, at listahan ng mga available na aksyon. Binibisita ng TalkBack ang tree na ito at biniboses ang bawat node sa pagkakasunod-sunod ng pagbisita.

Kung ang View ay walang text content (hal. ImageView na walang paglalarawan), ito ay nagiging invisible para sa TalkBack — hindi malalaman ng user ang pagkakaroon nito. Upang malutas ang problemang ito, nagtatakda ang developer ng contentDescription — isang text description na binibigkas ng TalkBack sa halip na katahimikan. Sinusuportahan din ng Android ang stateDescription para sa mga elementong may nababagong estado (napili/hindi napili) at hintText para sa mga input field na may pahiwatig.

Mga galaw ng kontrol ng TalkBack

Ginagawang espesyal na galaw ng screen reader ng TalkBack ang mga standard Android gesture. Karamihan sa mga operasyon ay ginagawa gamit ang isa o dalawang daliri, at ang mga galaw na may tatlong daliri ay nakalaan para sa mga global na aksyon.

AksyonGalawResulta
Iboses ang elementoTap gamit ang 1 daliriBinibigkas ang pangalan at uri ng elemento
I-activateDouble tapPindutin ang button o mag-navigate
SusunodSwipe pakananSusunod na elemento
NakaraanSwipe pakaliwaNakaraang elemento
Mag-scroll2 daliri swipeMag-scroll ng listahan
Menu ng TalkBackSwipe pataas-kaliwaGlobal na menu ng mga setting

Ang galaw na “swipe pataas-kaliwa” (L-shaped swipe) ay nagbubukas ng global na menu ng TalkBack, kung saan maaaring baguhin ng user ang bilis ng pagsasalita, i-on ang screen curtain, ilunsad ang tutorial, o buksan ang mga setting. Sinusuportahan din ng TalkBack ang context menu para sa mga elemento: swipe pataas-kanan ay nagbubukas ng listahan ng mga available na aksyon para sa kasalukuyang elemento (halimbawa, “kopyahin”, “idikit” para sa text field o “burahin” para sa mensahe sa chat).

TalkBack sa mobile development

Ang Android ay nagbibigay ng mayamang API para sa pag-configure ng accessibility. Ang pangunahing antas ay contentDescription, ngunit para sa kalidad na suporta ng TalkBack ay kinakailangan ang pagtatrabaho sa AccessibilityNodeInfo, AccessibilityDelegate at LiveRegion.

ContentDescription at mahahalagang attribute

Ang attribute na android:contentDescription ay nagtatakda ng text description ng elemento para sa TalkBack. Ito ay kinakailangan para sa ImageView, ImageButton, FloatingActionButton at anumang custom na View na walang text content. Para sa mga standard na elemento (TextView, Button) ang contentDescription ay opsiyonal — awtomatikong babasahin ng TalkBack ang text.

kotlin
val avatarView = ImageView(this)
avatarView.contentDescription = "Avatar ng user"
avatarView.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_YES

val playButton = ImageButton(this)
playButton.contentDescription = "I-play ang video"

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

Ang flag na importantForAccessibility ay kumokontrol sa visibility ng elemento para sa TalkBack. Ang value na NO ay nagtatago ng elemento mula sa accessibility tree — kapaki-pakinabang para sa mga decorative na larawan, indicator, at custom na background. Ang value na YES ay puwersahang isinasama ang elemento sa pagbisita, kahit na wala itong text. Mahalagang huwag abusuhin ang NO: ang pagtatago ng semantically importanteng elemento ay ginagawang hindi accessible ang app para sa mga user ng TalkBack.

AccessibilityDelegate at custom na aksyon

Para sa mga custom na View na hindi gumagamit ng standard click handler, kailangang i-override ang AccessibilityDelegate — ang klase na nagpro-process ng accessibility events. Ang delegate ay nagpapahintulot ng pag-set ng custom na paglalarawan, uri ng elemento, at listahan ng mga available na aksyon na iaalok ng TalkBack sa user sa pamamagitan ng context menu.

kotlin
class CustomButtonDelegate : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "Custom na button"
        info.className = Button::class.java.name
        info.addAction(
            AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                R.id.custom_action, "I-share"
            )
        )
    }

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

Sa halimbawa, ang delegate ay nagpapaalam sa TalkBack na ang elemento ay isang button (className = Button) at nagbibigay ng custom na aksyon na “I-share” na lalabas sa context menu ng TalkBack. Ang method na performAccessibilityAction ay nagpro-process ng pagtawag sa aksyong ito. Kung walang delegate, ituturing ng TalkBack ang custom na View bilang simpleng lugar na walang interaktibidad, at hindi makakapag-interact ang user dito.

Pag-setup ng accessibility para sa TalkBack

Ang buong suporta ng TalkBack ay hindi lamang contentDescription, kundi pati na rin ang pamamahala ng focus, LiveRegion para sa dynamic na updates, pag-test gamit ang naka-on na screen reader, at adaptasyon sa iba’t ibang bersyon ng Android.

LiveRegion para sa dynamic na content

Kapag nagbago ang content ng screen nang walang malinaw na aksyon ng user (hal. lumitaw ang notification ng bagong mensahe o nag-update ang counter ng likes), dapat makatanggap ng notification ang TalkBack. Para dito ginagamit ang attribute na android:accessibilityLiveRegion para sa View sa XML o ang method na setAccessibilityLiveRegion() sa code. Ang value na polite ay nagdaragdag ng anunsyo pagkatapos matapos ang kasalukuyang pagboses, habang ang value na assertive ay agad itong pinuputol.

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

// Kapag nag-update ang text, awtomatikong iaanunsyo ng TalkBack
// ang pagbabago
statusText.text = "Bagong mensahe mula kay Anna"

// Para sa kritikal na notification — assertive
errorBanner.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE

LiveRegion — ay katumbas ng UIAccessibility.post sa iOS. Gamitin ang polite para sa karamihan ng updates (bagong mensahe, update ng status) at assertive lamang para sa mga kritikal na error (failed payment, pagkawala ng koneksyon). Ang labis na paggamit ng assertive ay lumilikha ng negatibong karanasan ng user — palaging puputulin ng TalkBack ang kasalukuyang pagboses.

Pag-grupo at accessibility providers

Para sa mga kumplikadong screen kung saan maraming View ang bumubuo ng isang lohikal na yunit, ginagamit ang AccessibilityNodeProvider o focusSearch para i-override ang navigation. Halimbawa, ang custom na kalendaryo na may 42 cell (6 linggo × 7 araw) ay hindi dapat pilitin ang user na i-scroll ang lahat ng 42 elemento para pumunta sa susunod na block. Maaaring pagsamahin ng developer ang mga cell sa lohikal na grupo: buwan → linggo → araw.

Para sa Jetpack Compose ginagamit ang modifier na .semantics {}, na nagbibigay ng katulad na API: contentDescription, liveRegion, stateDescription, disabled at customActions. Sinusuportahan din ng Compose ang mergeDescendants para pagsamahin ang child semantics sa isa, na nagpapadali sa pag-grupo ng mga elemento nang walang manual na configuration ng accessibilityDelegate para sa bawat View.

kotlin
Button(
    onClick = { sendMessage() },
    modifier = Modifier.semantics {
        contentDescription("Magpadala ng mensahe")
        stateDescription("Handa nang ipadala")
    }
) {
    Icon(Icons.Filled.Send, "Ipadala")
}

Ang pag-test ng TalkBack ay ginagawa sa pamamagitan ng physical device o emulator na may naka-on na serbisyo. Inirerekomenda na dumaan sa mga pangunahing user scenario na naka-off ang screen (Screen Curtain) — ito ay nag-simulate ng kumpletong kawalan ng visual feedback. Nagbibigay din ang Android ng Accessibility Scanner — isang tool para sa awtomatikong pag-detect ng mga problema sa accessibility, na nagha-highlight ng mga elementong walang contentDescription, masyadong maliit na touch area, at mababang contrast.

Mga madalas itanong

Paano i-on ang TalkBack sa Android?

Settings → Accessibility → TalkBack → I-on. Para sa mabilis na pag-on, ginagamit ang sabayang pagpindot ng parehong volume button sa loob ng 3 segundo. Maaari ring i-on ng Google Assistant ang TalkBack sa pamamagitan ng voice command na “I-on ang TalkBack”.

Ano ang pagkakaiba ng TalkBack sa VoiceOver?

TalkBack — screen reader para sa Android, VoiceOver — para sa iOS. TalkBack ay gumagamit ng AccessibilityService at accessibility focus na may dilaw na frame, habang ang VoiceOver ay gumagamit ng UIAccessibility at rotor. Ang mga galaw at menu ay magkaiba: ang TalkBack ay may L-shaped swipe para sa global menu.

Paano gawing compatible ang app sa TalkBack?

Magtakda ng contentDescription para sa lahat ng ImageView at custom na elemento. Gamitin ang importantForAccessibility para itago ang decorative na elemento. I-configure ang accessibilityLiveRegion para sa dynamic na updates at suriin sa pamamagitan ng Accessibility Scanner. Sa Compose, gamitin ang modifier na .semantics{}.

Ano ang AccessibilityNodeInfo?

Ito ay isang object na kumakatawan sa interface element sa accessibility tree. Naglalaman ng text, uri, estado, posisyon, at listahan ng mga aksyon. TalkBack ay bumibisita sa tree na ito para sa navigation. Maaaring baguhin ito ng developer sa pamamagitan ng AccessibilityDelegate o attribute sa XML.

Bakit hindi biniboses ng TalkBack ang aking button?

Suriin ang importantForAccessibility — maaaring naka-set ito sa NO. Tiyakin na ang contentDescription ay naka-set para sa mga elementong walang text. Para sa custom na View, i-implement ang AccessibilityDelegate na may onInitializeAccessibilityNodeInfo. Gamitin ang Accessibility Scanner para sa diagnosis.

Buod

  • TalkBack — built-in na screen reader ng Android sa Android Accessibility Suite na may kontrol sa galaw
  • Accessibility focus na may dilaw na frame ay nagmamarka ng kasalukuyang biniboses na elemento sa screen
  • AccessibilityService ay ini-intercept ang touch event at ginagawang galaw ng screen reader
  • Mga galaw ng TalkBack ay kinabibilangan ng tap (pagboses), double tap (pag-activate) at L-shaped swipe (menu)
  • Development sa pamamagitan ng contentDescription, AccessibilityDelegate, LiveRegion at semantics sa Compose
  • Dynamic na updates ay nangangailangan ng android:accessibilityLiveRegion para sa awtomatikong anunsyo ng mga pagbabago
  • Pag-test gamit ang Accessibility Scanner at Screen Curtain ay kinakailangan para sa kalidad na suporta

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din