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

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

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

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

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

Котлин

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

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

Котлин

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

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

Java

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