Kiểm thử khả năng hỗ trợ tiếp cận

Việc kiểm thử khả năng hỗ trợ tiếp cận cho phép bạn trải nghiệm ứng dụng từ góc độ của toàn bộ cơ sở người dùng, bao gồm cả những người dùng có nhu cầu hỗ trợ tiếp cận. Hình thức kiểm thử này có thể mở ra cơ hội giúp ứng dụng của bạn mạnh mẽ và linh hoạt hơn.

Trang này mô tả cách thêm quy trình kiểm tra khả năng hỗ trợ tiếp cận vào các quy trình kiểm thử Espresso hiện có. Để biết thêm thông tin về tính năng hỗ trợ tiếp cận, hãy xem bài viết Hướng dẫn về tính năng hỗ trợ tiếp cận.

Bật tính năng kiểm tra

Bạn có thể bật và định cấu hình kiểm thử chức năng hỗ trợ tiếp cận bằng lớp 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();
    }
}

Theo mặc định, các bước kiểm tra sẽ chạy khi bạn thực hiện bất kỳ hành động xem nào được xác định trong ViewActions. Mỗi lượt kiểm tra bao gồm thành phần hiển thị mà hành động được thực hiện, cũng như tất cả các thành phần hiển thị con. Bạn có thể đánh giá toàn bộ hệ thống phân cấp thành phần hiển thị của một màn hình trong mỗi lần kiểm tra bằng cách chuyển true vào setRunChecksFromRootView(), như minh hoạ trong đoạn mã sau:

Kotlin

AccessibilityChecks.enable().setRunChecksFromRootView(true)

Java

AccessibilityChecks.enable().setRunChecksFromRootView(true);

Đình chỉ các tập hợp con của kết quả

Sau khi Espresso chạy quy trình kiểm thử hỗ trợ tiếp cận trên ứng dụng, bạn có thể tìm thấy một số cơ hội cải thiện chức năng hỗ trợ tiếp cận của ứng dụng chưa thể được giải quyết ngay lập tức. Để việc kiểm thử Espresso không tiếp tục thất bại vì những kết quả này, bạn có thể tạm thời bỏ qua những kết quả đó. Khung kiểm thử chức năng hỗ trợ tiếp cận (ATF) cung cấp chức năng này bằng cách sử dụng phương thức setSuppressingResultMatcher(), hướng dẫn Espresso đình chỉ tất cả kết quả đáp ứng biểu thức so khớp nhất định đã đề ra.

Khi thực hiện các thay đổi trên ứng dụng để giải quyết một khía cạnh về khả năng hỗ trợ tiếp cận, bạn sẽ nhận được lợi ích từ việc Espresso hiển thị kết quả cho nhiều khía cạnh khác về khả năng hỗ trợ tiếp cận. Vì lý do này, tốt nhất là bạn chỉ nên đình chỉ các cơ hội cải thiện đã biết.

Khi bạn tạm thời đình chỉ các phát hiện từ việc kiểm thử chức năng hỗ trợ tiếp cận (mà bạn dự định sẽ giải quyết sau này), điều quan trọng là không vô tình đình chỉ các phát hiện tương tự. Vì lý do này, hãy sử dụng trình so khớp có phạm vi hẹp. Để thực hiện, hãy chọn một trình so khớp để Espresso chỉ đình chỉ một kết quả nhất định nếu kết quả đó đáp ứng mỗi bước kiểm tra chức năng hỗ trợ tiếp cận sau đây:

  1. Các bước kiểm tra khả năng hỗ trợ tiếp cận thuộc một loại nhất định, chẳng hạn như kiểm tra kích thước đích chạm.
  2. Các bước kiểm tra khả năng hỗ trợ tiếp cận để đánh giá một phần tử trên giao diện người dùng cụ thể, chẳng hạn như một nút.

ATF xác định một số trình so khớp, giúp bạn xác định kết quả sẽ hiển thị khi kiểm thử Espresso. Ví dụ sau đây đình chỉ các kết quả kiểm tra liên quan đến độ tương phản màu sắc của một phần tử TextView. Giá trị định danh của phần tử là 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))));