Urutan traversal

Latar Belakang

Seseorang yang menggunakan pembaca layar TalkBack dapat mengakses aplikasi dengan 2 cara:

  • Klik untuk info: Seret 1 jari di atas layar untuk mempelajari susunan elemen secara fisik.
  • Navigasi linier: Geser ke kanan dan kiri untuk maju dan mundur yang dapat dilakukan untuk tiap item. 

Aplikasi Android harus mendukung akses klik untuk info dan navigasi linier. Urutan traversal selama navigasi linier umumnya harus sesuai dengan urutan visual, atau urutan traversal harus dioptimalkan dengan cara lain agar pengurutan tetap logis bagi pengguna pembaca layar.  

Secara default, TalkBack menggunakan hierarki tampilan aplikasi untuk menentukan urutan traversal item selama navigasi linier.

Penerapan

Jika hierarki tampilan aplikasi tidak mencerminkan struktur logis aplikasi, developer dapat memengaruhi traversal aksesibilitas dengan menetapkan android:accessibilityTraversalBefore atau android:accessibilityTraversalAfter. Properti ini menunjukkan bahwa pembaca layar harus mengunjungi konten dari 1 tampilan sebelum (atau setelah) konten yang lain. Tampilan tanpa hubungan sebelum/setelah dilalui dalam urutan yang ditentukan pembaca layar.

Urutan traversal aksesibilitas berbeda dengan urutan "fokus masukan" yang digunakan untuk navigasi keyboard. Perintah navigasi keyboard ditentukan oleh android:nextFocusDown, android:nextFocusLeft, android:nextFocusRight, dan android:nextFocusUp.

Saat menggunakan accessibilityTraversalBefore dan accessibilityTraversalAfter, pertimbangkan tips berikut untuk menghindari urutan traversal yang terlalu membatasi:

  • Gunakan atribut ini saja di tempat pengurutan logis yang berbeda dengan pengurutan hierarki tampilan.
  • Setiap elemen yang dapat difokuskan pengguna dengan penjelajahan sentuh juga harus dapat difokuskan saat navigasi linier.
  • Urutan traversal harus sesuai dengan navigasi linier tanpa memperhatikan arahnya. Misalnya, gestur untuk memindahkan fokus ke elemen "berikutnya" yang langsung diikuti dengan gestur untuk memindahkan fokus ke elemen "sebelumnya" harus selalu menghasilkan fokus yang kembali ke elemen semula.
  • Siklus tidak boleh ditetapkan saat menentukan accessibilityTraversalBefore dan accessibilityTraversalAfter, atau pengguna mungkin akan menghadapi situasi ketika elemen tertentu tidak terjangkau saat menggunakan navigasi linier.

Desain

Saat merancang aplikasi, pertimbangkan cara yang Anda inginkan agar orang yang menggunakan pembaca layar memasukkan informasi secara linier yang disajikan di antarmuka. Idealnya, urutan traversal sesuai dengan presentasi visual informasi. Namun, jika tidak sesuai, Anda dapat menentukan urutan traversal yang menunjukkan struktur logis atau intent antarmuka.

Pelajari lebih lanjut tentang cara membuat navigasi yang mudah diikuti.

Pengujian

Untuk mengevaluasi urutan traversal aksesibilitas sebuah aplikasi secara manual:

  1. Aktifkan TalkBack.
  2. Buka aplikasi.
  3. Gunakan gestur navigasi linier untuk memindahkan fokus aksesibilitas ke setiap elemen di layar.
  4. Pastikan bahwa TalkBack memindahkan fokusnya melalui elemen pada layar dengan urutan logis, dan mengucapkan representasi yang berarti dari setiap elemen yang dikunjunginya.
  5. Pastikan bahwa TalkBack memindahkan fokus ke belakang dan ke depan melalui elemen pada layar secara konsisten, terlepas dari arah navigasi.

Fitur pengujian otomatis Android dapat mendeteksi beberapa masalah urutan traversal. Pertimbangkan untuk menggunakan Accessibility Scanner untuk Android guna menguji aplikasi di perangkat secara manual. Untuk pengujian otomatis, aktifkan pemeriksaan aksesibilitas di Espresso dan Robolectric.