İçerik etiketleri

Ekran okuyucu gibi erişilebilirlik hizmetlerinden yararlanan kullanıcılar, arayüzlerdeki öğeleri anlamak için içerik etiketlerini kullanır.

Bilginin bir öğe içinde grafik şeklinde verildiği bazı durumlarda içerik etiketleri, öğeyle ilişkilendirilen anlamın veya işlemin metin açıklamasını sağlayabilir.

Kullanıcı arayüzündeki öğelerde içerik etiketleri yoksa bazı kullanıcıların kendilerine sunulan bilgileri anlamaları veya arayüzde işlem yapmaları zorlaşabilir.

Kullanım

Görünüm

Bir arayüzde bazı View öğesi türleri kullanıldığında, bunların ilgili View öğesiyle ilişkilendirilen amacı veya işlemi açıklayan içerik etiketleri sağlaması gerekir.

İçerik etiketlerini sağlama

android:contentDescription

Bilgiyi grafik şeklinde veren ImageView, ImageButton, CheckBox veya başka bir View öğesi kullanırken android:contentDescription özelliği ile söz konusu View öğesi için bir içerik etiketi sağlayın.

İçerik etiketi bazen sadece çalışma zamanında mevcut olan bilgilere bağlı olabilir veya View öğesinin anlamı zaman içinde değişebilir. Örneğin "Çal" düğmesi, müzik çalarken "Duraklat" düğmesine dönüşebilir. Bu gibi durumlarda, içerik etiketini gerektiğinde güncellemek için View#setContentDescription(CharSequence contentDescription) öğesini kullanın.

Genellikle erişilebilirlik hizmeti bir ViewGroup tanımladığında, alt View öğelerindeki içerik etiketlerini birleştirir. Bu davranışı geçersiz kılmak ve ilgili öğe ile bu öğenin odaklanılabilir olmayan alt View öğelerine kendi açıklamanızı eklemek istediğinizi belirtmek için ViewGroup'ta bir contentDescription ayarlayın. ViewGroup üzerinde ayarlandıklarında bir contentDescription içindeki alt View öğelerinden içerik etiketleri eklemeniz gerekebilir.

android:hint

EditText veya düzenlenebilir TextView öğelerinde, metin alanının amacını belirtmek için bir android:hint özelliği kullanın. android:contentDescription, düzenlenebilir View öğeleri için içerik etiketi olarak kullanılmamalıdır.

android:labelFor

android:labelFor özelliğini kullanarak bir View öğesinin, başka bir View öğesi için içerik etiketi görevi görmesi gerektiğini belirtebilirsiniz.

İçerik etiketlerinin gerekmediği durumlar

Bazı durumlarda, içerik etiketlerinin özel olarak sağlanması gerekmez:

  • TextView öğesinde (veya alt sınıflarında) oluşturulan metin, erişilebilirlik hizmetlerine otomatik olarak sağlanır. Genellikle ek içerik etiketlerine gerek duyulmaz.
  • Süsleme amaçlı resimler veya grafik şeklinde anlamlı bilgi sunmayan resimler içerik etiketi gerektirmez. Bu durumlarda, "@null" değerine sahip bir android:contentDescription veya "no" değerine sahip bir android:importantForAccessibility özelliği ayarlayın.

Daha fazla bilgi edinmek için Android Geliştirici Eğitimi ve API Kılavuzları sayfalarındaki içerik etiketlerinin uygulanmasıyla ilgili bilgileri okuyun.

Oluşturma

Bir arayüzde bazı composable'lar kullanıldığında, bunların ilgili composable ile ilişkilendirilen amacı ya da işlemi açıklayan içerik etiketleri içermesi gerekir.

İçerik etiketlerini sağlama

İçerik açıklamaları

Grafik şeklinde bilgi sağlayan Image, Icon veya diğer düşük seviye composable'lara içerik etiketi sağlamak için içerik açıklamasını ayarlayın.

  • İçerik etiketi çalışma zamanı bilgisine bağlı olabilir ve composable'ın anlamı değişebilir. Örneğin "Çal" düğmesi, müzik çalarken "Duraklat" düğmesine dönüşebilir.
  • Bazı durumlarda öğeleri, içerik etiketlerini alt öğeleriyle birleştiren tek bir odaklanılabilir öğede birleştirmek uygun olabilir.Öğeleri birleştirmeyi öğrenin.

Etiket parametresi

TextField gibi bazı composable'lar isteğe bağlı label parametresini destekler. Etiket ayarlandığında öğe, label parametresine geçirilen composable'ı gösterir. Erişilebilirlik hizmetleri, composable'ı açıklamak için kullanılabilir.

İçerik etiketlerinin gerekmediği durumlar

Bazı durumlarda, içerik etiketleri eklenmemelidir:

  • Text olarak üretilen veya Text öğesini içeren diğer composable'lar, otomatik olarak erişilebilirlik hizmetlerine sağlanır.
  • Süsleme amaçlı resimler veya grafiksel olarak anlamlı bilgi sunmayan resimler.
    • Bu durumlarda, contentDescription parametresini veya Modifier.semantics#contentDescription özelliğini null olarak ayarlayın ya da Modifier#clearAndSetSemantics'i kullanın.

Tasarım

Kullanıcı arayüzü tasarlarken, grafiksel olarak sunulan içeriğin erişilebilirlik hizmetlerini kullananlar için nasıl etiketlenmesi gerektiğini dikkatli bir şekilde düşünün. İçerik etiketleri şu ilkelere uygun olmalıdır:

  • Bir öğeyle ilişkilendirilen anlamı veya işlemi kısa ve anlaşılır bir şekilde açıklamalıdır.
  • İçerik etiketi, öğenin türünü veya durumunu içermemelidir.
  • Öğe bir işlemle ilişkilendirilmişse grafiksel gösterim yerine işlemi açıklamalıdır.
  • Kullanıcıya ilgili öğeyle spesifik olarak nasıl etkileşimde bulunacağını bildirmemelidir.

Daha fazla bilgi edinmek için Materyal Tasarım'da Erişilebilirlikle İlgili Yazım Kılavuzu'nu okuyun.

Test

Bir uygulamanın kullanıcı arayüzünde içerik etiketlerinin eksiksiz olduğunu manuel olarak doğrulamak için:

  1. TalkBack'i açın.
  2. Uygulamayı açın.
  3. Erişilebilirlik odağını ekrandaki tüm öğelere taşımak için doğrusal gezinme hareketlerini kullanın.
  4. TalkBack odağı bir öğeye taşır ancak ilgili öğenin anlamlı bir sunumunu söylemezse veya "etiketsiz" iletisini söylerse söz konusu öğenin içerik etiketi olmayabilir.

Android'in otomatik test araçları eksik içerik etiketlerini algılayabilir. Uygulamanızı cihazda manuel olarak test etmek için Android için Erişilebilirlik Tarayıcısı'nı kullanabilirsiniz. Otomatik testler için Espresso ve Robolectric'te erişilebilirlik kontrolünü etkinleştirin.

Arama
Aramayı temizle
Aramayı kapat
Ana menü
13237859204134824875
true
Yardım Merkezinde Arayın
true
true
true
true
true
717068
false
false
false