جارٍ التحقق من إمكانية الوصول
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يتيح لك الاختبار للتأكد من إمكانية الوصول تجربة تطبيقك من منظور
قاعدة مستخدميك بالكامل، بما في ذلك المستخدمين ذوي الاحتياجات الخاصة بإمكانية الوصول. يُعد هذا الشكل من
يمكن أن تكشف الاختبارات عن فرص لجعل تطبيقك أكثر قوة وتنوّعًا.
توضّح هذه الصفحة كيفية إضافة عمليات تحقّق من إمكانية الوصول إلى مقهى قهوة الإسبريسو الحالي.
الاختبار. لمزيد من المعلومات حول إمكانية الوصول، راجع إمكانية الوصول
الدليل.
تفعيل عمليات التحقّق
يمكنك تفعيل اختبار تسهيل الاستخدام وضبطه باستخدام
AccessibilityChecks
الفئة:
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 عمليات تحقُّق لتسهيل الاستخدام على تطبيقك، قد تجد العديد من
الفرص التي لا يمكنك معالجتها لتحسين تسهيل استخدام تطبيقك
فورًا. لمنع الفشل المستمر لاختبارات قهوة الإسبريسو بسبب
من هذه النتائج، يمكنك تجاهلها مؤقتًا. اختبار إمكانية الوصول
ويوفر إطار العمل (ATF) هذه الوظيفة باستخدام
setSuppressingResultMatcher()
التي توجِّه الإسبريسو لقمع جميع النتائج التي تلبي
تعبير المطابق.
عندما تجري تغييرات على تطبيقك تتناول جانبًا واحدًا من إمكانية الوصول، فإن
ومفيد للإسبريسو لعرض نتائج لأكبر عدد ممكن من الجوانب الأخرى
سهولة الوصول قدر الإمكان. لهذا السبب، من الأفضل منع حزم بيانات
فرص التحسين المعروفة.
عند إجراء إيقاف مؤقت لنتائج اختبار تسهيل الاستخدام التي تخطط
ومعالجتها لاحقًا، من المهم عدم منع النتائج المماثلة عن طريق الخطأ. بالنسبة
لهذا السبب، استخدم المطابقات ذات النطاق المحدود. للقيام بذلك، اختر
مطابق
بحيث يقمع 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 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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```"]]