בדיקת נגישות
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
בדיקת הנגישות מאפשרת לכם לחוות את האפליקציה שלכם מנקודת המבט של
כל בסיס המשתמשים שלך, כולל משתמשים בעלי צורכי נגישות. הטופס הזה של
בדיקה יכולה לחשוף הזדמנויות להפוך את האפליקציה לחזקה ומגוונת יותר.
דף זה מתאר כיצד להוסיף בדיקות נגישות לאספרסו הקיים
בדיקות. למידע נוסף על נגישות, עיינו בדף נגישות
מדריכים.
הפעלת הבדיקות
אפשר להפעיל ולהגדיר בדיקות נגישות באמצעות
AccessibilityChecks
class:
Kotlin
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
Java
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
כברירת מחדל, הבדיקות פועלות בכל פעם שמבצעים פעולה של תצוגה מפורטת שמוגדרת
ViewActions
כל אחד
כולל את התצוגה שבה הפעולה מתבצעת וגם את כל
וצפיות צאצא. אפשר לבדוק את היררכיית הצפיות המלאה של מסך במהלך
כל בדיקה על ידי העברת true
אל
setRunChecksFromRootView()
,
כפי שמוצג בקטע הקוד הבא:
Kotlin
AccessibilityChecks.enable().setRunChecksFromRootView(true)
Java
AccessibilityChecks.enable().setRunChecksFromRootView(true);
הסתרת קבוצות משנה של תוצאות
אחרי ש-Espresso יפעיל את בדיקות הנגישות באפליקציה, יכול להיות שיופיעו
הזדמנויות לשיפור הנגישות של האפליקציה שאי אפשר לטפל בהן
באופן מיידי. כדי למנוע מצבים שבהם בדיקות אספרסו נכשלות,
של תוצאות אלה, ניתן להתעלם מהן באופן זמני. בדיקת הנגישות
Framework (ATF) מספק את הפונקציונליות הזו באמצעות
setSuppressingResultMatcher()
שמנחה את Espresso לדכא את כל התוצאות שעומדות
ביטוי תואם.
כשמבצעים שינויים באפליקציה שמבוססים על היבט אחד של נגישות,
ל-Espresso יכולות להופיע תוצאות לגבי היבטים רבים אחרים
נגישות. לכן עדיף להסתיר רק נתונים ספציפיים
הזדמנויות ידועות לשיפור.
כשמסתירים באופן זמני את הממצאים של בדיקות הנגישות,
חשוב לא להסתיר בטעות ממצאים דומים. עבור
מהסיבה הזו, השתמשו בהתאמות עם היקף מצומצם. כדי לעשות את זה, בוחרים
matcher
כך ש-Espresso מסתירה תוצאה נתונה רק אם היא עומדת בכל
את בדיקות הנגישות הבאות:
- בדיקות נגישות מסוג מסוים, כמו בדיקות לצורך בדיקת מגע
גודל היעד.
- בדיקות נגישות שבודקות רכיב מסוים בממשק המשתמש, כמו לחצן.
ATF מגדיר כמה התאמות
כדי לעזור לך להגדיר אילו תוצאות יוצגו בבדיקות האספרסו שלך. הבאים
דוגמה שמבטלת את התוצאות של בדיקות שקשורות למאפיין TextView
יחיד
לניגודיות של הצבעים של אלמנט מסוים. מזהה הרכיב הוא countTV
.
Kotlin
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
Java
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Accessibility checking\n\nTesting for accessibility lets you experience your app from the perspective of\nyour entire user base, including users with accessibility needs. This form of\ntesting can reveal opportunities to make your app more powerful and versatile.\n\nThis page describes how to add accessibility checks to your existing Espresso\ntests. For more information about accessibility, see the [Accessibility\nguides](/guide/topics/ui/accessibility).\n\nEnable checks\n-------------\n\nYou can enable and configure accessibility testing using the\n[`AccessibilityChecks`](/reference/androidx/test/espresso/accessibility/AccessibilityChecks)\nclass: \n\n### Kotlin\n\n```kotlin\nimport androidx.test.espresso.accessibility.AccessibilityChecks\n\n@RunWith(AndroidJUnit4::class)\n@LargeTest\nclass MyWelcomeWorkflowIntegrationTest {\n init {\n AccessibilityChecks.enable()\n }\n}\n```\n\n### Java\n\n```java\nimport androidx.test.espresso.accessibility.AccessibilityChecks;\n\n@RunWith(AndroidJUnit4.class)\n@LargeTest\npublic class MyWelcomeWorkflowIntegrationTest {\n @BeforeClass\n public void enableAccessibilityChecks() {\n AccessibilityChecks.enable();\n }\n}\n```\n\nBy default, the checks run when you perform any view action defined in\n[`ViewActions`](/reference/androidx/test/espresso/action/ViewActions). Each\ncheck includes the view on which the action is performed as well as all\ndescendant views. You can evaluate the entire view hierarchy of a screen during\neach check by passing `true` into\n[`setRunChecksFromRootView()`](https://github.com/google/Accessibility-Test-Framework-for-Android/blob/a6117fe0059c82dd764fa628d3817d724570f69e/src/main/java/com/google/android/apps/common/testing/accessibility/framework/integrations/espresso/AccessibilityValidator.java#L82),\nas shown in the following code snippet: \n\n### Kotlin\n\n```kotlin\nAccessibilityChecks.enable().setRunChecksFromRootView(true)\n```\n\n### Java\n\n```java\nAccessibilityChecks.enable().setRunChecksFromRootView(true);\n```\n\nSuppress subsets of results\n---------------------------\n\nAfter Espresso runs accessibility checks on your app, you might find several\nopportunities to improve your app's accessibility that you cannot address\nimmediately. In order to stop Espresso tests from continually failing because\nof these results, you can ignore them temporarily. The Accessibility Test\nFramework (ATF) provides this functionality using the\n[`setSuppressingResultMatcher()`](https://github.com/google/Accessibility-Test-Framework-for-Android/blob/a6117fe0059c82dd764fa628d3817d724570f69e/src/main/java/com/google/android/apps/common/testing/accessibility/framework/integrations/espresso/AccessibilityValidator.java#L95)\nmethod, which instructs Espresso to suppress all results that satisfy the given\nmatcher expression.\n\nWhen you make changes to your app that address one aspect of accessibility, it's\nbeneficial for Espresso to show results for as many other aspects of\naccessibility as possible. For this reason, it's best to suppress only specific\nknown opportunities for improvement.\n\nWhen you temporarily suppress accessibility test findings that you plan to\naddress later, it's important to not accidentally suppress similar findings. For\nthis reason, use matchers that are narrowly scoped. To do so, choose a\n[matcher](http://hamcrest.org/JavaHamcrest/tutorial#a-tour-of-common-matchers)\nso that Espresso suppresses a given result only if it satisfies **each** of the\nfollowing accessibility checks:\n\n1. Accessibility checks of a certain type, such as those that check for touch target size.\n2. Accessibility checks that evaluate a particular UI element, such as a button.\n\nThe [ATF defines several matchers](https://github.com/google/Accessibility-Test-Framework-for-Android/blob/a6117fe0059c82dd764fa628d3817d724570f69e/src/main/java/com/google/android/apps/common/testing/accessibility/framework/AccessibilityCheckResultUtils.java)\nto help you define which results to show in your Espresso tests. The following\nexample suppresses the results of checks that relate to a single `TextView`\nelement's color contrast. The element's ID is `countTV`. \n\n### Kotlin\n\n```kotlin\nAccessibilityChecks.enable().apply {\n setSuppressingResultMatcher(\n allOf(\n matchesCheck(TextContrastCheck::class.java),\n matchesViews(withId(R.id.countTV))\n )\n )\n}\n```\n\n### Java\n\n```java\nAccessibilityValidator myChecksValidator =\n AccessibilityChecks.enable()\n .setSuppressingResultMatcher(\n allOf(\n matchesCheck(TextContrastCheck.class),\n matchesViews(withId(R.id.countTV))));\n```"]]