Erişilebilirlik kontrolü

Erişilebilirliği test etmek, uygulamanızı erişilebilirlik gereksinimleri olan kullanıcılar da dahil olmak üzere tüm kullanıcı tabanınız açısından değerlendirmenizi sağlar. Bu test biçimi, uygulamanızı daha güçlü ve çok yönlü hale getirme fırsatlarını ortaya çıkarabilir.

Bu sayfada, mevcut Espresso testlerinize erişilebilirlik kontrollerini nasıl ekleyeceğiniz açıklanmaktadır. Erişilebilirlik hakkında daha fazla bilgi için Erişilebilirlik kılavuzlarına bakın.

Kontrolleri etkinleştir

AccessibilityChecks sınıfını kullanarak erişilebilirlik testini etkinleştirebilir ve yapılandırabilirsiniz:

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();
    }
}

Kontroller varsayılan olarak, ViewActions içinde tanımlanan herhangi bir görüntüleme işlemi gerçekleştirildiğinde çalıştırılır. Her kontrol, işlemin gerçekleştirildiği görünümün yanı sıra tüm alt görünümleri içerir. Aşağıdaki kod snippet'inde gösterildiği gibi, true öğesini setRunChecksFromRootView() öğesine geçirerek her kontrol sırasında ekranın tüm görünüm hiyerarşisini değerlendirebilirsiniz:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Sonuç alt kümelerini gizle

Espresso, uygulamanızda erişilebilirlik kontrolleri çalıştırdıktan sonra, uygulamanızın erişilebilirliğini iyileştirmek için hemen ele yapamayacağınız çeşitli fırsatlar bulabilirsiniz. Espresso testlerinin bu sonuçlar nedeniyle sürekli başarısız olmasını engellemek için testleri geçici olarak göz ardı edebilirsiniz. Erişilebilirlik Testi Çerçevesi (ATF), bu işlevi Espresso'ya belirtilen eşleştirici ifadesini karşılayan tüm sonuçları engellemesi talimatını veren setSuppressingResultMatcher() yöntemini kullanarak sağlar.

Uygulamanızda erişilebilirliğin belirli bir yönünü ele alan değişiklikler yaptığınızda, Espresso'nun erişilebilirlikle ilgili mümkün olduğunca fazla farklı açıdan sonuç göstermesi faydalı olur. Bu nedenle, yalnızca bilinen iyileştirme fırsatlarını elemek en iyisidir.

Daha sonra ele almayı planladığınız erişilebilirlik testi bulgularını geçici olarak gizlediğinizde, benzer bulguları yanlışlıkla gizlememeniz önemlidir. Bu nedenle, dar kapsamlı olan eşleştiriciler kullanın. Espresso'nun belirli bir sonucu yalnızca aşağıdaki erişilebilirlik kontrollerinin her birini karşıladığında engellemesi için bir eşleştirici seçin:

  1. Dokunma hedefi boyutunu kontrol edenler gibi belirli bir türdeki erişilebilirlik kontrolleri.
  2. Düğme gibi belirli bir kullanıcı arayüzü öğesini değerlendiren erişilebilirlik kontrolleri.

ATF, Espresso testlerinizde hangi sonuçların gösterileceğini tanımlamanıza yardımcı olmak için çeşitli eşleştiriciler tanımlar. Aşağıdaki örnekte, tek bir TextView öğesinin renk kontrastıyla ilgili kontrollerin sonuçları sınırlandırılmıştır. Öğenin kimliği: 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))));