Kiểm thử khả năng hỗ trợ tiếp cận của ứng dụng (Khung hiển thị)

Các khái niệm và cách triển khai Jetpack Compose

Quá trình kiểm thử khả năng hỗ trợ tiếp cận giúp bạn trải nghiệm ứng dụng dưới góc độ của người dùng để tìm ra các vấn đề về khả năng hữu dụng mà có thể bạn chưa phát hiện ra. Việc kiểm thử khả năng hỗ trợ tiếp cận mang lại cơ hội cải tiến và hoàn thiện ứng dụng, giúp ứng dụng của bạn trở nên thân thiện hơn cho mọi đối tượng người dùng, kể cả với người khuyết tật.

Tài liệu này mô tả các phương pháp sau:

  • Kiểm thử bằng công cụ phân tích: sử dụng các công cụ để khám phá những cơ hội giúp cải thiện khả năng hỗ trợ tiếp cận của ứng dụng.
  • Kiểm thử tự động: bật tính năng kiểm thử khả năng hỗ trợ tiếp cận trong Espresso và Robolectric.

Kiểm thử bằng công cụ phân tích

Các công cụ phân tích có thể mở ra cơ hội cải thiện khả năng hỗ trợ tiếp cận mà bạn có thể bỏ lỡ khi kiểm thử thủ công.

Trình quét hỗ trợ tiếp cận

Ứng dụng Trình quét hỗ trợ tiếp cận sẽ quét màn hình rồi đề xuất các cách cải thiện khả năng hỗ trợ tiếp cận của ứng dụng. Trình quét hỗ trợ tiếp cận sử dụng Khung kiểm thử khả năng hỗ trợ tiếp cận để đưa ra nội dung đề xuất cụ thể sau khi xem xét nhãn nội dung, các mục có thể nhấp, độ tương phản, v.v.

Chúng tôi đã tích hợp Khung kiểm thử khả năng hỗ trợ tiếp cận trên Android trong Android Studio để giúp bạn tìm các vấn đề về hỗ trợ tiếp cận trong bố cục. Để khởi chạy bảng điều khiển, hãy nhấp vào nút báo cáo lỗi ! trong Layout Editor.

Bản minh hoạ Trình quét hỗ trợ tiếp cận Hình 1. Bản minh hoạ Trình quét hỗ trợ tiếp cận.

Để tìm hiểu thêm, hãy tham khảo các tài nguyên sau:

UI Automator Viewer

Công cụ uiautomatorviewer cung cấp một GUI tiện lợi để quét và phân tích các thành phần trên giao diện người dùng hiện đang hiển thị trên thiết bị chạy Android. Bạn có thể sử dụng Automator trên giao diện người dùng để kiểm tra hệ thống phân cấp bố cục và xem những thuộc tính của các thành phần trên giao diện người dùng có thể quan sát được trên nền trước của thiết bị. Dựa trên thông tin này, bạn có thể tạo thêm nhiều chương trình kiểm thử chi tiết, chẳng hạn như bằng cách tạo bộ chọn giao diện người dùng khớp với một thuộc tính hiển thị cụ thể. Công cụ này nằm trong thư mục tools của SDK Android.

Trong hoạt động kiểm thử khả năng hỗ trợ tiếp cận, công cụ này sẽ hữu ích khi khắc phục các sự cố phát hiện thấy bằng những phương thức kiểm thử khác. Ví dụ: nếu quy trình kiểm thử thủ công cho kết quả là một khung hiển thị không có văn bản có thể đọc to theo yêu cầu hoặc một khung hiển thị đáng ra không phải là tâm điểm nhưng lại đang là tâm điểm, bạn có thể sử dụng công cụ này để hỗ trợ xác định nguồn gây ra sự cố.

Để tìm hiểu thêm về Trình xem Automator trên giao diện người dùng, hãy xem phần Viết phép kiểm thử tự động bằng Automator trên giao diện người dùng.

Tìm lỗi mã nguồn

Android Studio hiện các cảnh báo tìm lỗi mã nguồn cho nhiều vấn đề về hỗ trợ tiếp cận và cung cấp đường liên kết đến những vị trí liên quan trong mã nguồn của bạn. Trong ví dụ sau, một hình ảnh bị thiếu thuộc tính contentDescription. Nội dung mô tả bị thiếu sẽ dẫn đến thông báo sau:

[Accessibility] Missing 'contentDescription' attribute on image

Hình 2 đưa ra ví dụ về việc thông báo này xuất hiện trong Android Studio:

Một hình ảnh cho thấy Android Studio báo cáo nội dung mô tả bị thiếu trên một số hình ảnh.
Hình 2. Thông báo trong Android Studio cho biết thuộc tính contentDescription bị thiếu.

Kiểm thử tự động

Nền tảng Android hỗ trợ một số khung kiểm thử, chẳng hạn như Espresso, cho phép bạn tạo và chạy các quy trình kiểm thử tự động giúp đánh giá khả năng hỗ trợ tiếp cận của ứng dụng.

Espresso

Espresso là một thư viện kiểm thử trên Android được thiết kế nhằm giúp bạn kiểm thử giao diện người dùng một cách nhanh chóng và dễ dàng. Thư viện này cho phép bạn tương tác với các thành phần trên giao diện người dùng đang kiểm thử trong ứng dụng của bạn và khẳng định rằng một số hành vi nhất định xảy ra hoặc các điều kiện cụ thể được đáp ứng.

Để xem video tổng quan về quá trình kiểm thử khả năng hỗ trợ tiếp cận bằng Espresso, hãy xem video sau đây từ phút 31:54 đến phút 34:19: Thiết kế và kiểm thử toàn diện: Giúp ứng dụng của bạn dễ tiếp cận hơn – Google I/O 2016.

Phần này mô tả cách chạy hoạt động kiểm tra khả năng hỗ trợ tiếp cận bằng Espresso.

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