بررسی دسترسی
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
آزمایش دسترسپذیری به شما امکان میدهد برنامه خود را از دیدگاه کل پایگاه کاربر خود، از جمله کاربرانی که نیازهای دسترسی دارند، تجربه کنید. این شکل از آزمایش می تواند فرصت هایی را برای قدرتمندتر و همه کاره کردن برنامه شما نشان دهد.
این صفحه نحوه افزودن بررسی های دسترسی به تست های موجود اسپرسو را شرح می دهد. برای اطلاعات بیشتر در مورد دسترسپذیری، به راهنمای دسترسپذیری مراجعه کنید.
فعال کردن چک ها
با استفاده از کلاس AccessibilityChecks
میتوانید تست دسترسی را فعال و پیکربندی کنید:
کاتلین
import androidx.test.espresso.accessibility.AccessibilityChecks
@RunWith(AndroidJUnit4::class)
@LargeTest
class MyWelcomeWorkflowIntegrationTest {
init {
AccessibilityChecks.enable()
}
}
جاوا
import androidx.test.espresso.accessibility.AccessibilityChecks;
@RunWith(AndroidJUnit4.class)
@LargeTest
public class MyWelcomeWorkflowIntegrationTest {
@BeforeClass
public void enableAccessibilityChecks() {
AccessibilityChecks.enable();
}
}
بهطور پیشفرض، بررسیها زمانی انجام میشوند که هر گونه عملکرد view تعریف شده در ViewActions
را انجام میدهید. هر بررسی شامل نمایه ای است که عمل بر روی آن انجام می شود و همچنین تمام نماهای فرعی. همانطور که در قطعه کد زیر نشان داده شده است، می توانید کل سلسله مراتب نمای یک صفحه را در طول هر بررسی با ارسال true
به setRunChecksFromRootView()
ارزیابی کنید:
کاتلین
AccessibilityChecks.enable().setRunChecksFromRootView(true)
جاوا
AccessibilityChecks.enable().setRunChecksFromRootView(true);
زیرمجموعه های نتایج را سرکوب کنید
پس از اینکه Espresso بررسی های دسترسی را روی برنامه شما انجام داد، ممکن است چندین فرصت برای بهبود دسترسی به برنامه خود پیدا کنید که نمی توانید فوراً به آنها رسیدگی کنید. به منظور جلوگیری از شکست مداوم تست های اسپرسو به دلیل این نتایج، می توانید به طور موقت آنها را نادیده بگیرید. چارچوب تست دسترسپذیری (ATF) این قابلیت را با استفاده از متد setSuppressingResultMatcher()
فراهم میکند که به Espresso دستور میدهد تمام نتایجی را که عبارت تطبیق داده شده را برآورده میکنند، سرکوب کند.
وقتی تغییراتی در برنامه خود ایجاد میکنید که به یک جنبه از دسترسپذیری میپردازد، برای اسپرسو سودمند است که نتایج را برای بسیاری از جنبههای دسترسی تا حد ممکن نشان دهد. به همین دلیل، بهتر است فقط فرصتهای خاص شناخته شده برای بهبود را سرکوب کنید.
هنگامی که به طور موقت یافته های تست دسترسی را که می خواهید بعداً به آنها رسیدگی کنید، سرکوب می کنید، مهم است که به طور تصادفی یافته های مشابه را سرکوب نکنید. به همین دلیل، از تطبیقهایی استفاده کنید که محدوده محدودی دارند. برای انجام این کار، یک تطابق را انتخاب کنید تا اسپرسو تنها در صورتی نتیجه معین را متوقف کند که هر یک از بررسی های دسترسی زیر را برآورده کند:
- بررسیهای دسترسپذیری از نوع خاصی، مانند آنهایی که اندازه هدف لمسی را بررسی میکنند.
- بررسیهای دسترسپذیری که یک عنصر رابط کاربری خاص، مانند یک دکمه را ارزیابی میکند.
ATF چندین تطبیق تعریف می کند تا به شما کمک کند تا مشخص کنید کدام نتایج در تست های اسپرسو شما نمایش داده می شود. مثال زیر نتایج بررسیهایی را که به کنتراست رنگ یک عنصر TextView
مربوط میشوند، سرکوب میکند. شناسه عنصر countTV
است.
کاتلین
AccessibilityChecks.enable().apply {
setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck::class.java),
matchesViews(withId(R.id.countTV))
)
)
}
جاوا
AccessibilityValidator myChecksValidator =
AccessibilityChecks.enable()
.setSuppressingResultMatcher(
allOf(
matchesCheck(TextContrastCheck.class),
matchesViews(withId(R.id.countTV))));
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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```"]]