TalkBack — nedir, kontrol hareketleri ve Android’de kurulum

Yazar: IT Sectr Yayınlanma: 2026-05-15 Okuma süresi: 8 dk

TalkBack, Android Accessibility Suite paketinin bir parçası olan, Google’ın Android için yerleşik ekran okuyucusudur. Arayüz öğelerini seslendirir ve hareketlerle cihazı kontrol etmeyi sağlayarak görme engelli ve az gören kullanıcılara akıllı telefon işlevlerine tam erişim sunar. Google Accessibility Help (2025)’e göre, TalkBack çoğu Android cihazda önceden yüklüdür ve farklı ses motorlarıyla 30’dan fazla dili destekler.

Anahtar noktalar

  • TalkBack, hareket kontrolü ve sesli geri bildirim ile Android için Google’ın yerleşik ekran okuyucusudur
  • Erişilebilirlik odağı, TalkBack’in şu anda seslendirdiği öğeyi sarı bir çerçeveyle vurgular
  • Hareketler dokunma (seslendirme), çift dokunma (etkinleştirme) ve üç parmakla kaydırmayı içerir
  • Geliştiriciler erişilebilirliği contentDescription ve AccessibilityNodeInfo aracılığıyla yapılandırır
  • TalkBack, Google Assistant ve braille ekranlarla entegre olur

TalkBack nedir?

TalkBack, Google tarafından geliştirilen ve Android Accessibility Suite’in bir parçası olan Android için bir ekran okuyucudur. Görme engelli kullanıcılar için sesli geri bildirim ve hareket kontrolü sağlar. TalkBack, akıllı telefonlarda, tabletlerde, Smart TV’lerde ve Wear OS çalıştıran giyilebilir cihazlarda çalışır.

TalkBack ilk olarak 2009’da Android 1.6 (Donut)’da ortaya çıktı. Başlangıçta ayrı bir projeydi, ancak Android 4.0 (Ice Cream Sandwich)’in piyasaya sürülmesiyle Android Accessibility Suite’in bir parçası haline geldi — Switch Access ve Select to Speak’i de içeren bir hizmetler seti. Android 10’dan itibaren TalkBack, Google Play hizmetlerine sahip tüm cihazlarda önceden yüklüdür; buna ortak cihazlar — Samsung, Xiaomi, Oppo ve diğerleri dahildir.

TalkBack, çeşitli ses motorlarıyla 30’dan fazla dili destekler: Google Text-to-Speech, Samsung TTS ve üçüncü taraf motorlar. Türkçe için Google TTS, doğal telaffuz ve doğru tonlama sağlar. Kullanıcı, TalkBack ayarlarında konuşma hızını, perdeyi ayarlayabilir ve ses cinsiyetini seçebilir.

TalkBack nasıl çalışır?

TalkBack, AccessibilityService — uygulamaların arayüz durumu hakkında bilgi almasına ve programlama yoluyla etkileşim kurmasına izin veren Android’deki bir sistem mekanizması — temelinde çalışır. TalkBack etkinleştirildiğinde, tüm dokunma olaylarını yakalar ve bunları özel ekran okuyucu hareketlerine dönüştürür.

Erişilebilirlik odağı

TalkBack çalışmasının anahtar unsuru erişilebilirlik odağıdır. Metin alanı vurgulaması olarak görünen standart giriş odağının aksine, erişilebilirlik odağı öğenin etrafında sarı bir çerçeve olarak görüntülenir ve TalkBack’i olmayan kullanıcılar için görünmez. Erişilebilirlik odağı bir öğeye geldiğinde, TalkBack içeriğini, türünü ve durumunu seslendirir.

Kullanıcı, erişilebilirlik odağını hareketlerle taşır: sağa kaydırma — sonraki öğe, sola kaydırma — önceki öğe. Öğeler, AccessibilityNodeInfo — Android’in her ekran için oluşturduğu erişilebilirlik ağacı — tarafından tanımlanan sırayla gözden geçirilir. Geliştirici, accessibilityTraversalBefore ve accessibilityTraversalAfter özellikleri aracılığıyla sırayı etkileyebilir; bu, özel düzenlere sahip karmaşık ekranlar için özellikle önemlidir.

AccessibilityNodeInfo ve erişilebilirlik ağacı

Ekrandaki her View, erişilebilirlik ağacında bir düğümle temsil edilir — bir AccessibilityNodeInfo nesnesi. Bu nesne şunları içerir: öğenin metni (contentDescription veya görünüm metni), öğe türü (düğme, onay kutusu, giriş alanı), durum (etkin/devre dışı/seçili), ekrandaki konum ve mevcut eylemlerin listesi. TalkBack bu ağacı dolaşır ve her düğümü geçiş sırasına göre seslendirir.

Bir View’in metin içeriği yoksa (örneğin, açıklaması olmayan bir ImageView), TalkBack için görünmez hale gelir — kullanıcı varlığından haberdar olmaz. Bu sorunu çözmek için geliştirici contentDescription ayarlar — TalkBack’in sessizlik yerine söylediği bir metin açıklaması. Android ayrıca değişebilir durumdaki (İşaretli/işaretli değil) öğeler için stateDescription ve ipuçlu giriş alanları için hintText’i destekler.

TalkBack kontrol hareketleri

TalkBack, standart Android hareketlerini özel ekran okuyucu hareketlerine dönüştürür. Çoğu işlem bir veya iki parmakla gerçekleştirilirken, üç parmak hareketleri genel eylemler için ayrılmıştır.

EylemHareketSonuç
Öğeyi seslendirTek dokunmaÖğenin adını ve türünü söyler
EtkinleştirÇift dokunmaDüğmeye basma veya gezinme
SonrakiSağa kaydırmaSonraki öğe
ÖncekiSola kaydırmaÖnceki öğe
Kaydır2 parmak kaydırmaListe kaydırma
TalkBack menüsüYukarı-sola kaydırmaGenel ayarlar menüsü

Yukarı-sola kaydırma hareketi (L şeklinde kaydırma), kullanıcının konuşma hızını değiştirebileceği, ekran perdesini etkinleştirebileceği, bir eğitim başlatabileceği veya ayarları açabileceği genel TalkBack menüsünü açar. TalkBack ayrıca öğeler için bir bağlam menüsünü destekler: yukarı-sağa kaydırma, geçerli öğe için mevcut eylemlerin bir listesini açar (örneğin, bir metin alanı için “Kopyala”, “Yapıştır” veya bir sohbet mesajı için “Sil”).

Mobil geliştirmede TalkBack

Android, erişilebilirlik yapılandırması için zengin bir API sağlar. Temel seviye contentDescription’dır, ancak kaliteli TalkBack desteği için AccessibilityNodeInfo, AccessibilityDelegate ve LiveRegion ile çalışmak gerekir.

ContentDescription ve önemli özellikler

android:contentDescription özelliği, TalkBack için öğenin metin açıklamasını belirler. ImageView, ImageButton, FloatingActionButton ve metin içeriği olmayan herhangi bir özel View için zorunludur. Standart öğeler (TextView, Button) için contentDescription isteğe bağlıdır — TalkBack metni otomatik olarak okuyacaktır.

kotlin
val avatarView = ImageView(this)
avatarView.contentDescription = "Kullanıcı avatarı"
avatarView.importantForAccessibility =
    IMPORTANT_FOR_ACCESSIBILITY_YES

val playButton = ImageButton(this)
playButton.contentDescription = "Videoyu oynat"

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

importantForAccessibility bayrağı, öğenin TalkBack için görünürlüğünü kontrol eder. NO değeri, öğeyi erişilebilirlik ağacından gizler — dekoratif görseller, göstergeler ve özel arka planlar için kullanışlıdır. YES değeri, metni olmasa bile öğeyi zorla geçişe dahil eder. NO’yu aşırı kullanmamak önemlidir: anlamsal olarak önemli öğeleri gizlemek, uygulamayı TalkBack kullanıcıları için erişilemez hale getirir.

AccessibilityDelegate ve özel eylemler

Standart tıklama işleyicilerini kullanmayan özel View’ler için, erişilebilirlik olaylarını işleyen bir sınıf olan AccessibilityDelegate’in geçersiz kılınması gerekir. Temsilci, TalkBack’in bağlam menüsü aracılığıyla kullanıcıya sunacağı özel açıklamalar, öğe türleri ve mevcut eylem listelerini ayarlamaya izin verir.

kotlin
class CustomButtonDelegate : View.AccessibilityDelegate() {
    override fun onInitializeAccessibilityNodeInfo(
        host: View, info: AccessibilityNodeInfoCompat
    ) {
        super.onInitializeAccessibilityNodeInfo(host, info)
        info.text = "Özel düğme"
        info.className = Button::class.java.name
        info.addAction(
            AccessibilityNodeInfoCompat.AccessibilityActionCompat(
                R.id.custom_action, "Paylaş"
            )
        )
    }

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

Örnekte, temsilci TalkBack’e öğenin bir düğme (className = Button) olduğunu bildirir ve TalkBack bağlam menüsünde görünecek özel bir “Paylaş” eylemi sağlar. performAccessibilityAction yöntemi, bu eylemin çağrılmasını işler. Bir temsilci olmadan, TalkBack özel View’i basit, etkileşimli olmayan bir alan olarak ele alır ve kullanıcı onunla etkileşime giremez.

TalkBack için erişilebilirlik ayarlama

Tam TalkBack desteği yalnızca contentDescription’u değil, aynı zamanda odak yönetimini, dinamik güncellemeler için LiveRegion’u, ekran okuyucu etkinken test etmeyi ve farklı Android sürümlerine uyarlamayı da içerir.

Dinamik içerik için LiveRegion

Ekran içeriği, kullanıcının açık bir eylemi olmadan değiştiğinde (örneğin, yeni bir mesaj bildirimi görünür veya bir beğeni sayacı güncellenir), TalkBack bir bildirim almalıdır. Bunun için, XML’de bir View için android:accessibilityLiveRegion özelliği veya kodda setAccessibilityLiveRegion() yöntemi kullanılır. polite değeri, duyuruyu mevcut seslendirme bittikten sonra eklerken, assertive hemen keser.

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

// Metin güncellendiğinde TalkBack otomatik olarak
// değişikliği duyuracaktır
statusText.text = "Anna’dan yeni mesaj"

// Kritik bildirimler için — assertive
errorBanner.accessibilityLiveRegion =
    View.ACCESSIBILITY_LIVE_REGION_ASSERTIVE

LiveRegion, iOS’taki UIAccessibility.post’un Android karşılığıdır. Çoğu güncelleme için (yeni mesajlar, durum güncellemeleri) polite kullanın ve assertive’i yalnızca kritik hatalar için (başarısız ödeme, bağlantı kaybı) kullanın. Assertive’in aşırı kullanımı olumsuz bir kullanıcı deneyimi yaratır — TalkBack sürekli olarak mevcut seslendirmeyi kesecektir.

Gruplama ve erişilebilirlik sağlayıcıları

Birden çok View’in tek bir mantıksal birim oluşturduğu karmaşık ekranlar için, gezinmeyi geçersiz kılmak üzere AccessibilityNodeProvider veya focusSearch kullanılır. Örneğin, 42 hücreli (6 hafta × 7 gün) özel bir takvim, kullanıcıyı sonraki bloğa ulaşmak için 42 öğenin tamamını kaydırmaya zorlamamalıdır. Geliştirici, hücreleri mantıksal birimler halinde gruplayabilir: ay → hafta → gün.

Jetpack Compose için .semantics {} değiştiricisi benzer bir API sağlar: contentDescription, liveRegion, stateDescription, disabled ve customActions. Compose ayrıca alt anlamları tek bir anlamda birleştirmek için mergeDescendants’ı destekler ve her View için manuel accessibilityDelegate yapılandırması olmadan öğe gruplamayı basitleştirir.

kotlin
Button(
    onClick = { sendMessage() },
    modifier = Modifier.semantics {
        contentDescription("Mesaj gönder")
        stateDescription("Göndermeye hazır")
    }
) {
    Icon(Icons.Filled.Send, "Gönder")
}

TalkBack testi, hizmet etkinken fiziksel bir cihaz veya öykünücü kullanılarak yapılır. Ekran kapalıyken (Screen Curtain) temel kullanıcı senaryolarının gözden geçirilmesi önerilir — bu, görsel geri bildirimin tamamen yokluğunu simüle eder. Android ayrıca Accessibility Scanner sağlar — contentDescription’ı olmayan öğeleri, çok küçük dokunma hedeflerini ve düşük kontrastı vurgulayan, erişilebilirlik sorunlarını otomatik olarak algılayan bir araç.

Sıkça sorulan sorular

Android’de TalkBack nasıl açılır?

Ayarlar → Erişilebilirlik → TalkBack → Aç. Hızlı açma için, her iki ses düğmesine aynı anda 3 saniye basın. Google Assistant ayrıca “TalkBack’i aç” sesli komutuyla TalkBack’i açabilir.”

TalkBack, VoiceOver’dan nasıl farklıdır?

TalkBack Android için bir ekran okuyucudur, VoiceOver iOS içindir. TalkBack AccessibilityService ve sarı çerçeveli erişilebilirlik odağını kullanırken, VoiceOver UIAccessibility ve döner tekerleği kullanır. Hareketler ve menüler farklılık gösterir: TalkBack’in genel menü için L şeklinde kaydırmaları vardır.

Uygulamamı TalkBack ile uyumlu nasıl yapabilirim?

Tüm ImageView ve özel öğeler için contentDescription ayarlayın. Dekoratif öğeleri gizlemek için importantForAccessibility kullanın. Dinamik güncellemeler için accessibilityLiveRegion yapılandırın ve Accessibility Scanner ile kontrol edin. Compose’da .semantics{} değiştiricisini kullanın.

AccessibilityNodeInfo nedir?

Erişilebilirlik ağacındaki bir arayüz öğesini temsil eden bir nesnedir. Metin, tür, durum, konum ve bir eylem listesi içerir. TalkBack gezinme için bu ağacı dolaşır. Geliştirici, AccessibilityDelegate veya XML özellikleri aracılığıyla bunu değiştirebilir.

TalkBack düğmemi neden seslendirmiyor?

importantForAccessibility’i kontrol edin — NO olarak ayarlanmış olabilir. Metni olmayan öğeler için contentDescription’ın ayarlandığından emin olun. Özel View’ler için, onInitializeAccessibilityNodeInfo ile AccessibilityDelegate uygulayın. Teşhis için Accessibility Scanner kullanın.

Özet

  • TalkBack, hareket kontrolü ile Android Accessibility Suite’te yerleşik bir Android ekran okuyucusudur
  • Erişilebilirlik odağı sarı bir çerçeveyle ekranda şu anda seslendirilen öğeyi işaretler
  • AccessibilityService dokunma olaylarını yakalar ve bunları ekran okuyucu hareketlerine dönüştürür
  • Hareketler dokunma (seslendirme), çift dokunma (etkinleştirme) ve L şeklinde kaydırmaları (menü) içerir
  • Geliştirme contentDescription, AccessibilityDelegate, LiveRegion ve Compose’da semantics aracılığıyla
  • Dinamik güncellemeler, değişikliklerin otomatik olarak duyurulması için android:accessibilityLiveRegion gerektirir
  • Test, kaliteli destek için Accessibility Scanner ve Screen Curtain ile şarttır

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun