Kiểm thử

Một cách thiết yếu để kiểm thử khả năng hỗ trợ tiếp cận là kiểm thử thủ công: bằng cách bật các dịch vụ hỗ trợ tiếp cận (như TalkBack hoặc Tiếp cận bằng công tắc) và kiểm tra xem mọi thứ có hoạt động như mong đợi hay không. Điều này cung cấp thông tin chi tiết trực tiếp về cách người dùng có nhu cầu hỗ trợ tiếp cận có thể trải nghiệm ứng dụng của bạn.

Cùng với việc xác minh thủ công, bạn cũng nên sử dụng tính năng kiểm thử tự động để gắn cờ mọi vấn đề tiềm ẩn có thể ảnh hưởng đến trải nghiệm người dùng khi bạn liên tục thay đổi ứng dụng.

Các API kiểm thử Compose hiện có cho phép bạn viết các chương trình kiểm thử tự động tương tác với các phần tử ngữ nghĩa và xác nhận các thuộc tính được xác định trong giao diện người dùng.

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

Để kiểm thử chức năng hỗ trợ tiếp cận tự động, bạn cũng có thể sử dụng Khung kiểm thử chức năng hỗ trợ tiếp cận (cùng một khung cơ bản hỗ trợ Trình quét hỗ trợ tiếp cận và các bước kiểm tra chức năng hỗ trợ tiếp cận trong Espresso) để tự động thực hiện một số bước kiểm tra liên quan đến chức năng hỗ trợ tiếp cận, bắt đầu từ Compose 1.8.0.

Để bật các bước kiểm tra, hãy thêm ui-test-junit4-accessibility dependency, gọi enableAccessibilityChecks() trong AndroidComposeTestRule và kích hoạt một hành động hoặc tryPerformAccessibilityChecks:

@Rule
@JvmField
val composeTestRule = createAndroidComposeRule<ComponentActivity>()

@Test
fun noAccessibilityLabel() {
    composeTestRule.setContent {
        Box(
            modifier = Modifier
                .size(50.dp, 50.dp)
                .background(color = Color.Gray)
                .clickable { }
                .semantics {
                    contentDescription = ""
                }
        )
    }

    composeTestRule.enableAccessibilityChecks()

    // Any action (such as performClick) will perform accessibility checks too:
    composeTestRule.onRoot().tryPerformAccessibilityChecks()
}

Kiểm thử cụ thể này không thành công với một ngoại lệ và thông báo rằng mục có thể không có nhãn mà các dịch vụ hỗ trợ tiếp cận có thể đọc được.

Các bước kiểm tra khác có sẵn sẽ tìm vấn đề về khả năng hỗ trợ tiếp cận liên quan đến độ tương phản màu, kích thước mục tiêu chạm nhỏ hoặc thứ tự di chuyển của các phần tử.

Nếu đang kết hợp Khung hiển thị với Compose và bạn đang sử dụng AccessibilityValidator hoặc cần định cấu hình một AccessibilityValidator, bạn có thể đặt AccessibilityValidator đó trong quy tắc:

@Test
fun lowContrastScreen() {
    composeTestRule.setContent {
        Box(
            modifier = Modifier
                .fillMaxSize()
                .background(color = Color(0xFFFAFBFC)),
            contentAlignment = Alignment.Center
        ) {
            Text(text = "Hello", color = Color(0xFFB0B1B2))
        }
    }

    // Optionally, set AccessibilityValidator manually
    val accessibilityValidator = AccessibilityValidator()
        .setThrowExceptionFor(
            AccessibilityCheckResult.AccessibilityCheckResultType.WARNING
        )

    composeTestRule.enableAccessibilityChecks(accessibilityValidator)

    composeTestRule.onRoot().tryPerformAccessibilityChecks()
}

Khi kết hợp với kiểm thử thủ công, các kiểm thử tự động sử dụng cả API Compose và Khung kiểm thử khả năng hỗ trợ tiếp cận có thể giúp bạn phát hiện sớm các vấn đề có thể xảy ra trong quá trình phát triển.