วิธีสำคัญในการทดสอบการช่วยเหลือพิเศษคือการทดสอบด้วยตนเอง โดยเปิดบริการการช่วยเหลือพิเศษ เช่น TalkBack หรือการเข้าถึงด้วยสวิตช์ แล้วตรวจสอบว่าทุกอย่างทำงานตามที่คาดไว้หรือไม่ ซึ่งจะให้ข้อมูลเชิงลึกโดยตรงเกี่ยวกับวิธีที่ผู้ใช้ที่มีความต้องการด้านการช่วยเหลือพิเศษอาจได้รับประสบการณ์การใช้งานแอปพลิเคชันของคุณ
นอกจากการตรวจสอบด้วยตนเองแล้ว คุณควรใช้การทดสอบอัตโนมัติเพื่อแจ้งปัญหาที่อาจเกิดขึ้นซึ่งอาจส่งผลต่อประสบการณ์ของผู้ใช้เมื่อคุณทำการเปลี่ยนแปลงแอปอย่างต่อเนื่อง
Compose Testing API ที่มีอยู่ช่วยให้คุณเขียนการทดสอบอัตโนมัติที่โต้ตอบกับองค์ประกอบเชิงความหมายและยืนยันพร็อพเพอร์ตี้ที่กำหนดไว้ใน UI ได้
การตรวจสอบการช่วยเหลือพิเศษ
สำหรับการทดสอบการช่วยเหลือพิเศษแบบอัตโนมัติ คุณยังใช้เฟรมเวิร์กการทดสอบการช่วยเหลือพิเศษ ซึ่งเป็นเฟรมเวิร์กพื้นฐานเดียวกันกับที่ขับเคลื่อนเครื่องตรวจการเข้าถึงและการตรวจสอบการช่วยเหลือพิเศษใน Espresso เพื่อทำการตรวจสอบที่เกี่ยวข้องกับการช่วยเหลือพิเศษบางอย่างโดยอัตโนมัติได้ด้วย โดยเริ่มตั้งแต่ Compose 1.8.0
หากต้องการเปิดใช้การตรวจสอบ ให้เพิ่มทรัพยากร Dependency ui-test-junit4-accessibility, เรียกใช้ 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() }
การทดสอบนี้ไม่สำเร็จโดยมีข้อยกเว้นและข้อความที่ระบุว่ารายการอาจไม่มีป้ายกำกับที่บริการการช่วยเหลือพิเศษอ่านได้
การตรวจสอบอื่นๆ ที่มีจะมองหาปัญหาการช่วยเหลือพิเศษเกี่ยวกับคอนทราสต์ของสี ขนาดเป้าหมายการสัมผัสที่เล็ก หรือลำดับการส่งผ่านขององค์ประกอบ
หากคุณใช้ Views ร่วมกับ Compose และใช้ 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 ปิดอยู่
- การช่วยเหลือพิเศษใน Compose
- [Material Design 2 ใน Compose][19]
- การทดสอบเลย์เอาต์ Compose