Label konten

Pengguna layanan aksesibilitas, seperti pembaca layar, bergantung pada label konten untuk memahami arti elemen pada antarmuka.

Dalam beberapa kasus, seperti ketika informasi disampaikan dalam elemen secara grafis, label konten dapat memberikan deskripsi teks tentang arti atau tindakan yang berkaitan dengan elemen.

Jika elemen di antarmuka pengguna tidak menyediakan label konten, pengguna mungkin kesulitan memahami informasi yang ada atau melakukan suatu tindakan di antarmuka.

Penerapan

View

Ketika beberapa jenis elemen View digunakan dalam antarmuka, label konten yang menjelaskan tujuan atau tindakan yang terkait dengan elemen View harus disertakan.

Cara memberikan label konten

android:contentDescription

Saat menggunakan ImageView, ImageButton, CheckBox, atau elemen View lain yang menyampaikan informasi secara grafis, gunakan atribut android:contentDescription untuk memberi label konten pada elemen View tersebut.

Label konten terkadang bergantung pada informasi yang hanya tersedia saat runtime, atau arti elemen View dapat berubah dari waktu ke waktu. Misalnya, tombol Putar dapat berubah menjadi tombol Jeda saat pemutaran musik. Dalam kasus ini, gunakan View#setContentDescription(CharSequence contentDescription) untuk memperbarui label konten di waktu yang tepat.

Biasanya, ketika menjelaskan ViewGroup, layanan aksesibilitas menggabungkan label konten dari elemen Views turunannya. Untuk mengganti perilaku ini dan menunjukkan bahwa Anda ingin memberikan deskripsi sendiri untuk item tersebut dan elemen Views turunannya yang tidak dapat difokuskan, setel contentDescription di ViewGroup. Anda mungkin perlu menyertakan label konten dari elemen Views turunan dalam contentDescription ketika ditetapkan pada ViewGroup.

android:hint

Untuk EditTexts atau TextViews yang dapat diedit, gunakan atribut android:hint untuk menunjukkan tujuan bidang teks. Atribut android:contentDescription sebaiknya tidak digunakan sebagai label konten untuk elemen Views yang dapat diedit.

android:labelFor

Gunakan atribut android:labelFor untuk menunjukkan bahwa elemen View seharusnya bertindak sebagai label konten untuk elemen View lainnya.

Kasus yang tidak memerlukan label konten

Pada kasus tertentu, label konten sebaiknya tidak diberikan secara spesifik:

  • Teks yang dirender di TextView (atau subclassnya) otomatis diberikan untuk layanan aksesibilitas. Label konten tambahan biasanya tidak diperlukan.
  • Gambar dekoratif atau gambar yang tidak menyampaikan informasi grafis yang penting tidak memerlukan label konten. Dalam kasus ini, setel atribut android:contentDescription ke "@null" atau atribut android:importantForAccessibility ke "no".

Untuk mempelajari lebih lanjut, baca artikel tentang menerapkan label konten di Pelatihan Developer Android dan Panduan API.

Compose

Ketika beberapa jenis elemen composable digunakan dalam antarmuka, label konten yang menjelaskan tujuan atau tindakan yang terkait dengan composable tersebut harus disertakan.

Cara memberikan label konten

Deskripsi konten

Untuk memberikan label konten pada Image, Icon, atau composable level rendah lain yang menyampaikan informasi secara grafis, tetapkan deskripsi kontennya.

  • Label konten mungkin tergantung pada informasi runtime dan arti composable dapat berubah-ubah. Misalnya, saat pemutaran musik, tombol Putar dapat berubah menjadi tombol Jeda.
  • Dalam beberapa kasus, sebaiknya gabungkan beberapa elemen menjadi satu elemen yang dapat difokuskan dan menggabungkan label konten dari elemen turunannya. Pelajari cara menggabungkan elemen.

Parameter label

Beberapa composable, seperti TextField, mendukung parameter label opsional. Saat label ditetapkan, elemen menunjukkan composable yang diteruskan ke label. Layanan aksesibilitas dapat digunakan untuk menjelaskan composable.

Kasus yang tidak memerlukan label konten

Dalam beberapa kasus, label konten sebaiknya tidak ditambahkan:

  • Teks yang dirender di Text, atau composable lain yang berisi Text, otomatis diberikan ke layanan aksesibilitas.
  • Gambar dekoratif atau gambar yang tidak menyampaikan informasi grafis yang penting.
    • Dalam kasus ini, setel parameter contentDescription atau properti Modifier.semantics#contentDescription ke null atau panggil Modifier#clearAndSetSemantics.

Desain

Ketika mendesain antarmuka pengguna, pertimbangkan baik-baik cara pelabelan konten yang direpresentasikan secara grafis untuk pengguna layanan aksesibilitas. Label konten harus mengikuti prinsip berikut:

  • Menjelaskan arti atau tindakan yang terkait dengan elemen secara singkat dan jelas.
  • Tidak menyertakan jenis atau status elemen di label kontennya.
  • Menjelaskan tindakannya, bukan representasi grafisnya, jika elemen berkaitan dengan suatu tindakan.
  • Tidak menginstruksikan pengguna cara berinteraksi dengan elemen secara spesifik.

Untuk mempelajari lebih lanjut, baca Panduan Penulisan Aksesibilitas Desain Material.

Pengujian

Untuk memverifikasi secara manual bahwa antarmuka pengguna aplikasi memiliki label konten:

  1. Aktifkan TalkBack.
  2. Buka aplikasi.
  3. Gunakan gestur navigasi linier untuk memindahkan fokus aksesibilitas ke setiap elemen di layar.
  4. Jika TalkBack memindahkan fokus ke beberapa elemen, tetapi tidak menyebutkan representasi yang berarti dari elemen tersebut, atau menyebutkan pesan "tidak berlabel", elemen tersebut mungkin tidak memiliki label konten.

Alat pengujian otomatis Android dapat mendeteksi label konten yang tidak ada. Pertimbangkan untuk menggunakan Accessibility Scanner untuk Android guna menguji aplikasi di perangkat secara manual. Untuk pengujian otomatis, aktifkan pemeriksaan aksesibilitas di Espresso dan Robolectric.

Telusuri
Hapus penelusuran
Tutup penelusuran
Menu utama
11754163700416308753
true
Pusat Bantuan Penelusuran
true
true
true
true
true
717068
false
false