Проверка доступности

Тестирование доступности позволяет вам оценить свое приложение с точки зрения всей вашей пользовательской базы, включая пользователей с потребностями в специальных возможностях. Эта форма тестирования может выявить возможности сделать ваше приложение более мощным и универсальным.

На этой странице описано, как добавить проверки доступности к существующим тестам Espresso. Дополнительную информацию о специальных возможностях см. в руководствах по специальным возможностям .

Включить проверки

Вы можете включить и настроить тестирование доступности с помощью класса AccessibilityChecks :

Котлин

import androidx.test.espresso.accessibility.AccessibilityChecks

@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
    init {
        AccessibilityChecks.enable()
    }
}

Ява

import androidx.test.espresso.accessibility.AccessibilityChecks;

@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
    @BeforeClass
    public void enableAccessibilityChecks() {
        AccessibilityChecks.enable();
    }
}

По умолчанию проверки запускаются при выполнении любого действия просмотра, определенного в ViewActions . Каждая проверка включает представление, над которым выполняется действие, а также все дочерние представления. Вы можете оценить всю иерархию представлений экрана во время каждой проверки, передав true в setRunChecksFromRootView() , как показано в следующем фрагменте кода:

Котлин

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Ява

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Подавить подмножества результатов

После того, как Espresso выполнит проверку доступности вашего приложения, вы можете найти несколько возможностей улучшить доступность вашего приложения, которые вы не сможете реализовать немедленно. Чтобы предотвратить постоянные сбои тестов Espresso из-за этих результатов, вы можете временно их игнорировать. Платформа тестирования доступности (ATF) предоставляет эту функциональность с помощью метода setSuppressingResultMatcher() , который инструктирует Espresso подавлять все результаты, удовлетворяющие данному выражению сопоставления.

Когда вы вносите в свое приложение изменения, направленные на один аспект доступности, для Espresso полезно показывать результаты для как можно большего количества других аспектов доступности. По этой причине лучше всего подавлять только конкретные известные возможности для улучшения.

Когда вы временно подавляете результаты теста доступности, которые планируете использовать позже, важно не скрыть случайно аналогичные результаты. По этой причине используйте средства сопоставления с узкой областью действия. Для этого выберите сопоставитель , чтобы Espresso подавлял заданный результат только в том случае, если он удовлетворяет каждой из следующих проверок доступности:

  1. Проверки доступности определенного типа, например те, которые проверяют размер сенсорной цели.
  2. Проверки доступности, которые оценивают конкретный элемент пользовательского интерфейса, например кнопку.

ATF определяет несколько сопоставителей , которые помогут вам определить, какие результаты показывать в ваших тестах Espresso. В следующем примере подавляются результаты проверок, связанных с цветовым контрастом одного элемента TextView . Идентификатор элемента — countTV .

Котлин

AccessibilityChecks.enable().apply {
        setSuppressingResultMatcher(
                allOf(
                    matchesCheck(TextContrastCheck::class.java),
                    matchesViews(withId(R.id.countTV))
                )
        )
}

Ява

AccessibilityValidator myChecksValidator =
    AccessibilityChecks.enable()
        .setSuppressingResultMatcher(
            allOf(
                matchesCheck(TextContrastCheck.class),
                matchesViews(withId(R.id.countTV))));