การทดสอบ

วิธีสําคัญในการทดสอบการช่วยเหลือพิเศษคือการทดสอบด้วยตนเอง ซึ่งทำได้โดยการเปิดบริการการช่วยเหลือพิเศษ เช่น TalkBack หรือการเข้าถึงด้วยสวิตช์ และตรวจสอบว่าทุกอย่างทํางานตามที่คาดไว้หรือไม่ ข้อมูลนี้ให้ข้อมูลเชิงลึกโดยตรงเกี่ยวกับประสบการณ์การใช้งานแอปพลิเคชันของผู้ที่มีความต้องการด้านการช่วยเหลือพิเศษ

นอกเหนือจากการยืนยันด้วยตนเองแล้ว คุณควรใช้การทดสอบอัตโนมัติเพื่อแจ้งปัญหาที่อาจเกิดขึ้นซึ่งอาจส่งผลต่อประสบการณ์ของผู้ใช้ขณะที่คุณทำการเปลี่ยนแปลงแอปอย่างต่อเนื่อง

Compose Testing API ที่มีอยู่ช่วยให้คุณเขียนการทดสอบอัตโนมัติที่โต้ตอบกับองค์ประกอบเชิงความหมายและยืนยันพร็อพเพอร์ตี้ที่กําหนดไว้ใน UI ได้

การตรวจสอบการช่วยเหลือพิเศษ

สําหรับการทดสอบการช่วยเหลือพิเศษอัตโนมัติ คุณยังใช้เฟรมเวิร์กการทดสอบการช่วยเหลือพิเศษ ซึ่งเป็นเฟรมเวิร์กพื้นฐานเดียวกับที่ขับเคลื่อนเครื่องมือสแกนและการตรวจสอบการช่วยเหลือพิเศษใน Espresso ได้ด้วย เพื่อดําเนินการตรวจสอบที่เกี่ยวข้องกับการช่วยเหลือพิเศษบางอย่างโดยอัตโนมัติ โดยเริ่มตั้งแต่ Compose 1.8.0

หากต้องการเปิดใช้การตรวจสอบ ให้เพิ่ม ui-test-junit4-accessibility dependency, เรียกใช้ enableAccessibilityChecks() ใน AndroidComposeTestRule, และทริกเกอร์การดำเนินการหรือ 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()
}

การทดสอบที่เฉพาะเจาะจงนี้ดำเนินการไม่สำเร็จโดยมีข้อยกเว้นและข้อความระบุว่ารายการอาจไม่มีป้ายกำกับที่บริการการช่วยเหลือพิเศษอ่านได้

การตรวจสอบอื่นๆ ที่มีให้จะตรวจหาปัญหาการช่วยเหลือพิเศษเกี่ยวกับคอนทราสต์ของสี ขนาดเป้าหมายการสัมผัสขนาดเล็ก หรือลําดับการไปยังส่วนต่างๆ ขององค์ประกอบ

หากคุณใช้ทั้งมุมมองและคอมโพซและกำลังใช้ AccessibilityValidator อยู่แล้ว หรือต้องการกําหนดค่า AccessibilityValidator ให้ตั้งค่าในกฎ ดังนี้

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

การทดสอบอัตโนมัติโดยใช้ทั้ง Compose API และเฟรมเวิร์กการทดสอบการช่วยเหลือพิเศษร่วมกับการทดสอบด้วยตนเองจะช่วยให้คุณตรวจพบปัญหาที่อาจเกิดขึ้นได้ตั้งแต่เนิ่นๆ ในกระบวนการพัฒนา