דרך חיונית לבדיקת נגישות היא בדיקה ידנית: מפעילים שירותי נגישות, כמו TalkBack או "גישה באמצעות מתג", ובודקים אם הכול פועל כמו שצריך. כך תוכלו להבין איך משתמשים עם צורכי נגישות חווים את האפליקציה שלכם.
בנוסף לאימות ידני, כדאי גם להשתמש בבדיקות אוטומטיות כדי לסמן בעיות פוטנציאליות שיכולות להשפיע על חוויית המשתמש כשמבצעים שינויים באפליקציה באופן קבוע.
ממשקי API קיימים לבדיקות של פיתוח נייטיב מאפשרים לכם לכתוב בדיקות אוטומטיות שמקיימות אינטראקציה עם רכיבים סמנטיים ולאמת את המאפיינים שמוגדרים בממשק המשתמש.
בדיקות נגישות
כדי לבצע בדיקות נגישות אוטומטיות, אתם יכולים להשתמש גם ב-Accessibility Test Framework – אותה מסגרת בסיסית שמפעילה את Accessibility Scanner ואת בדיקות הנגישות ב-Espresso – כדי לבצע בדיקות מסוימות שקשורות לנגישות באופן אוטומטי, החל מגרסה 1.8.0 של Compose.
כדי להפעיל את הבדיקות, מוסיפים את התלות 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() }
הבדיקה הספציפית הזו נכשלת עם חריגה והודעה על כך שיכול להיות שלפריט אין תווית ששירותי הנגישות יכולים לקרוא.
בדיקות אחרות מחפשות בעיות נגישות שקשורות לניגודיות צבעים, גודל קטן של יעד מגע או סדר המעבר בין רכיבים.
אם אתם משלבים תצוגות עם 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() }
בשילוב עם בדיקה ידנית, בדיקות אוטומטיות באמצעות ממשקי ה-API של Compose וגם Accessibility Test Framework יכולות לעזור לכם לזהות בעיות אפשריות בשלב מוקדם בתהליך הפיתוח.
מומלץ בשבילך
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- נגישות ב-Compose
- [Material Design 2 ב-Compose][19]
- בדיקת הפריסה של Compose