Konsep dan penerapan Jetpack Compose
Pengujian aksesibilitas memungkinkan Anda merasakan pengalaman menggunakan aplikasi dari perspektif pengguna dan menemukan masalah kegunaan yang mungkin terlewatkan. Pengujian aksesibilitas dapat mengungkap peluang untuk membuat aplikasi Anda lebih andal dan serbaguna bagi semua pengguna, termasuk yang menyandang disabilitas.
Dokumen ini menjelaskan pendekatan berikut:
- Menguji dengan alat analisis: gunakan alat untuk menemukan peluang untuk meningkatkan aksesibilitas aplikasi Anda.
- Pengujian otomatis: aktifkan pengujian aksesibilitas di Espresso dan Robolectric.
Menguji menggunakan alat analisis
Alat analisis dapat membuka peluang untuk meningkatkan aksesibilitas yang mungkin Anda lewatkan dengan pengujian manual.
Accessibility Scanner
Aplikasi Accessibility Scanner memindai layar Anda dan memberikan saran untuk meningkatkan aksesibilitas aplikasi Anda. Accessibility Scanner menggunakan Framework Pengujian Aksesibilitas dan memberikan saran spesifik setelah melihat label konten, item yang dapat diklik, kontras, dan sebagainya.
Framework Pengujian Aksesibilitas Android terintegrasi di Android Studio untuk membantu Anda menemukan masalah aksesibilitas di tata letak. Untuk meluncurkan panel, klik tombol laporan error ! di Layout Editor.
Gambar 1. Demo Accessibility Scanner.
Untuk mempelajari lebih lanjut, lihat referensi berikut:
UI Automator Viewer
Alat uiautomatorviewer menyediakan GUI yang mudah digunakan untuk memindai dan menganalisis
komponen UI yang sedang ditampilkan di perangkat yang didukung Android. Anda dapat menggunakan UI
Automator untuk memeriksa hierarki tata letak dan menampilkan properti komponen UI
yang terlihat di latar depan perangkat. Informasi ini
memungkinkan Anda membuat pengujian yang lebih mendetail, misalnya dengan membuat pemilih UI
yang cocok dengan properti tertentu yang dapat dilihat. Alat ini berada di direktori tools
Android SDK.
Dalam pengujian aksesibilitas, alat ini berguna untuk men-debug masalah yang ditemukan melalui metode pengujian lainnya. Misalnya, jika pengujian manual mengungkapkan bahwa tampilan tidak memiliki teks lisan yang semestinya ada, atau tampilan menerima fokus padahal semestinya tidak, Anda dapat menggunakan alat ini untuk membantu menemukan sumber masalah.
Untuk mempelajari UI Automator Viewer lebih lanjut, lihat Menulis pengujian otomatis dengan UI Automator.
Lint
Android Studio menampilkan peringatan lint untuk berbagai masalah aksesibilitas dan menyediakan
link ke tempat yang relevan dalam kode sumber. Dalam contoh berikut ini,
gambar tidak memiliki atribut contentDescription. Deskripsi konten yang hilang akan menghasilkan pesan berikut:
[Accessibility] Missing 'contentDescription' attribute on image
Gambar 2 menunjukkan contoh tampilan pesan ini di Android Studio:
contentDescriptionPengujian otomatis
Platform Android mendukung beberapa framework pengujian, seperti Espresso, yang memungkinkan Anda membuat dan menjalankan pengujian otomatis yang mengevaluasi aksesibilitas aplikasi Anda.
Espresso
Espresso adalah library pengujian Android yang didesain untuk menjadikan pengujian UI cepat dan mudah. Hal ini memungkinkan Anda berinteraksi dengan komponen UI yang sedang diuji di aplikasi Anda dan menegaskan bahwa perilaku tertentu terjadi atau kondisi tertentu terpenuhi.
Untuk melihat video ringkasan pengujian aksesibilitas dengan Espresso, tonton video berikut dari menit 31.54 sampai 34.19: Desain dan pengujian inklusif: Menjadikan aplikasi Anda lebih mudah diakses - Google I/O 2016.
Bagian ini akan menjelaskan cara menjalankan pemeriksaan aksesibilitas menggunakan Espresso.
Mengaktifkan pemeriksaan
Anda dapat mengaktifkan dan mengonfigurasi pengujian aksesibilitas menggunakan
class
AccessibilityChecks:
Kotlin
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
Java
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
Secara default, pemeriksaan berjalan saat Anda melakukan tindakan tampilan apa pun yang ditentukan dalam
ViewActions. Setiap
pemeriksaan mencakup tampilan tempat tindakan dilakukan serta semua
tampilan turunannya. Anda dapat mengevaluasi seluruh hierarki tampilan layar selama
setiap pemeriksaan dengan meneruskan true ke
setRunChecksFromRootView(),
seperti ditunjukkan dalam cuplikan kode berikut:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
Menyembunyikan subkumpulan hasil
Setelah Espresso menjalankan pemeriksaan aksesibilitas di aplikasi, Anda mungkin menemukan beberapa
peluang untuk meningkatkan aksesibilitas aplikasi yang tidak dapat segera
Anda tangani. Agar pengujian Espresso tidak terus-menerus gagal karena
hasil ini, Anda dapat mengabaikannya untuk sementara. Framework Pengujian
Aksesibilitas (ATF) menyediakan fungsionalitas ini menggunakan
metode setSuppressingResultMatcher(),
yang menginstruksikan Espresso untuk menahan semua hasil yang memenuhi ekspresi matcher
yang diberikan.
Saat Anda melakukan perubahan pada aplikasi yang menangani satu aspek aksesibilitas, sebaiknya Espresso menampilkan hasil untuk sebanyak mungkin aspek aksesibilitas lainnya. Oleh karena itu, sebaiknya hanya sembunyikan peluang tertentu yang diketahui untuk peningkatan.
Saat Anda menyembunyikan sementara temuan pengujian aksesibilitas yang akan Anda coba nanti, penting untuk tidak menyembunyikan temuan serupa secara tidak sengaja. Oleh karena itu, gunakan matcher yang terbatas cakupannya. Untuk melakukannya, pilih matcher sehingga Espresso menyembunyikan hasil yang diberikan, hanya jika memenuhi setiap pemeriksaan aksesibilitas berikut:
- Pemeriksaan aksesibilitas jenis tertentu, seperti pemeriksaan ukuran target sentuh.
- Pemeriksaan aksesibilitas yang mengevaluasi elemen UI tertentu, seperti tombol.
ATF menentukan beberapa matcher
untuk membantu Anda menentukan hasil yang akan ditampilkan dalam pengujian Espresso Anda. Contoh
berikut ini akan menyembunyikan hasil pemeriksaan yang berhubungan dengan satu
kontras warna elemen TextView. ID elemennya adalah countTV.
Kotlin
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
Java
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));