Pengujian untuk aksesibilitas memungkinkan Anda merasakan pengalaman menggunakan aplikasi dari perspektif seluruh basis pengguna, termasuk pengguna dengan kebutuhan aksesibilitas. Bentuk pengujian ini dapat membuka peluang untuk membuat aplikasi Anda lebih canggih dan serbaguna.
Halaman ini menjelaskan cara menambahkan pemeriksaan aksesibilitas ke pengujian Espresso yang ada. Untuk informasi selengkapnya tentang aksesibilitas, lihat Panduan aksesibilitas.
Mengaktifkan pemeriksaan
Anda dapat mengaktifkan dan mengonfigurasi pengujian aksesibilitas menggunakan class AccessibilityChecks
:
Kotlin
import androidx.test.espresso.contrib.AccessibilityChecks @RunWith(AndroidJUnit4::class) @LargeTest class MyWelcomeWorkflowIntegrationTest { companion object { @Before @JvmStatic fun enableAccessibilityChecks() { AccessibilityChecks.enable() } } }
Java
import androidx.test.espresso.contrib.AccessibilityChecks; @RunWith(AndroidJUnit4.class) @LargeTest public class MyWelcomeWorkflowIntegrationTest { @Before public static 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 yang 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 langsung 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 yang diketahui tertentu untuk penyempurnaan.
Saat Anda menyembunyikan sementara temuan pengujian aksesibilitas yang akan Anda coba nanti, penting untuk tidak menyembunyikan temuan serupa secara tidak sengaja. Karena alasan ini, gunakan matcher yang terbatas cakupannya. Untuk melakukannya, pilih matcher sehingga Espresso menyembunyikan hasil yang diberikan hanya jika memenuhi setiap dari 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 menyembunyikan hasil pemeriksaan yang berhubungan dengan satu kontras warna elemen TextView
. ID elemennya adalah countTV
.
Kotlin
AccessibilityChecks.enable().apply { setSuppressingResultMatcher( allOf( matchesCheckNames(`is`("TextContrastViewCheck")), matchesViews(withId(R.id.countTV)) ) ) }
Java
AccessibilityValidator myChecksValidator = AccessibilityChecks.enable(); Matcher<? super AccessibilityViewCheckResult> myChecksMatcher = Matchers.allOf(matchesCheckNames(is("TextContrastViewCheck")), matchesViews(withId(R.id.countTV))); myChecksValidator.setSuppressingResultMatcher(myChecksMatcher);