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