การตรวจสอบการช่วยเหลือพิเศษ
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
การทดสอบการช่วยเหลือพิเศษช่วยให้คุณใช้งานแอปจากมุมมองของ
ฐานผู้ใช้ทั้งหมด รวมถึงผู้ใช้ที่ต้องการการช่วยเหลือพิเศษ แบบฟอร์มนี้
การทดสอบจะแสดงโอกาสในการทำให้แอปมีประสิทธิภาพและใช้งานได้หลากหลายมากขึ้น
หน้านี้อธิบายวิธีเพิ่มการตรวจสอบการช่วยเหลือพิเศษไปยัง Espresso ที่มีอยู่
การทดสอบ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการช่วยเหลือพิเศษ โปรดดูที่หัวข้อการเข้าถึง
เปิดใช้การตรวจสอบ
คุณเปิดใช้และกำหนดค่าการทดสอบการช่วยเหลือพิเศษได้โดยใช้
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 เรียกใช้การตรวจสอบการเข้าถึงในแอป คุณอาจเห็น
โอกาสในการปรับปรุงการช่วยเหลือพิเศษของแอปที่คุณแก้ไขไม่ได้
ทันที เพื่อหยุดการทดสอบ Espresso ล้มเหลวอย่างต่อเนื่องเนื่องจาก
ผลลัพธ์เหล่านี้ทั้งหมด คุณสามารถละเว้นผลลัพธ์ชั่วคราวได้ การทดสอบการช่วยเหลือพิเศษ
Framework (ATF) มีฟังก์ชันการทำงานนี้โดยใช้
setSuppressingResultMatcher()
ซึ่งจะสั่งให้ Espresso ระงับผลการค้นหาทั้งหมดที่ตอบสนอง
ของตัวจับคู่
เมื่อคุณทำการเปลี่ยนแปลงในแอปที่กล่าวถึงการช่วยเหลือพิเศษด้านหนึ่ง
เป็นประโยชน์สำหรับ Espresso ในการแสดงผลลัพธ์สำหรับด้านอื่นๆ
การเข้าถึงได้ง่ายที่สุด ด้วยเหตุนี้ จึงควรระงับไว้เพียง
ที่ควรปรับปรุง
เมื่อคุณระงับผลการทดสอบการช่วยเหลือพิเศษไว้ชั่วคราว
ในภายหลัง คุณควรไม่ระงับผลการค้นหาที่คล้ายกันโดยไม่ตั้งใจ สำหรับ
ด้วยเหตุนี้ ให้ใช้เครื่องมือจับคู่ที่มีขอบเขตแคบ โดยเลือก
ตัวจับคู่
เพื่อให้ Espresso ระงับผลลัพธ์ที่ระบุ เฉพาะเมื่อเป็นไปตามแต่ละรายการ
การตรวจสอบความสามารถเข้าถึงได้ง่ายดังต่อไปนี้
- การตรวจสอบการเข้าถึงบางประเภท เช่น การตรวจสอบเพื่อการสัมผัส
ขนาดเป้าหมาย
- การช่วยเหลือพิเศษจะตรวจสอบการช่วยเหลือพิเศษซึ่งประเมินองค์ประกอบ UI ที่เฉพาะเจาะจง เช่น ปุ่ม
ATF กำหนดตัวจับคู่หลายรายการ
เพื่อช่วยกำหนดผลลัพธ์ที่จะแสดงในการทดสอบ Espresso ของคุณ ดังต่อไปนี้
ตัวอย่างระงับผลลัพธ์ของการตรวจสอบที่เกี่ยวข้องกับ 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```"]]