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 nhìn toàn bộ cơ sở người dùng của bạn, bao gồm cả những người dùng có nhu cầu về hỗ trợ tiếp cận. Biểu mẫu này của thử nghiệm có thể mở ra cơ hội làm cho ứ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 chế độ kiểm tra khả năng hỗ trợ tiếp cận vào Espresso hiện có kiểm thử. Để 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ỗ trợ tiếp cận hướng dẫ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:
- 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.
- 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))));