วิธีสําคัญในการทดสอบการช่วยเหลือพิเศษคือการทดสอบด้วยตนเอง ซึ่งทำได้โดยการเปิดบริการการช่วยเหลือพิเศษ เช่น 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 และเฟรมเวิร์กการทดสอบการช่วยเหลือพิเศษร่วมกับการทดสอบด้วยตนเองจะช่วยให้คุณตรวจพบปัญหาที่อาจเกิดขึ้นได้ตั้งแต่เนิ่นๆ ในกระบวนการพัฒนา
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- การช่วยเหลือพิเศษในเครื่องมือเขียน
- [Material Design 2 ใน Compose][19]
- การทดสอบเลย์เอาต์การเขียน