androidx.compose.ui.test.junit4.accessibility

Extension functions summary

Unit

Disables accessibility checks.

Unit

Disables accessibility checks.

Unit
@RequiresApi(value = 34)
<R : TestRule, A : ComponentActivity> AndroidComposeTestRule<R, A>.enableAccessibilityChecks(
    accessibilityValidator: AccessibilityValidator
)

Enables accessibility checks using an accessibilityValidator that will be run before every action that is expected to change the UI.

Unit
@RequiresApi(value = 34)
ComposeTestRule.enableAccessibilityChecks(
    accessibilityValidator: AccessibilityValidator
)

Enables accessibility checks that will be run before every action that is expected to change the UI.

Extension functions

disableAccessibilityChecks

@RequiresApi(value = 34)
fun <R : TestRule, A : ComponentActivity> AndroidComposeTestRule<R, A>.disableAccessibilityChecks(

): Unit

Disables accessibility checks.

disableAccessibilityChecks

@RequiresApi(value = 34)
fun ComposeTestRule.disableAccessibilityChecks(): Unit

Disables accessibility checks.

import androidx.compose.ui.test.junit4.accessibility.disableAccessibilityChecks import androidx.compose.ui.test.junit4.accessibility.enableAccessibilityChecks import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.onRoot import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollToIndex import androidx.compose.ui.test.tryPerformAccessibilityChecks import androidx.test.espresso.accessibility.AccessibilityChecks // Enable accessibility checks with default configuration: composeTestRule.enableAccessibilityChecks() // Accessibility checks are run automatically when performing an action: composeTestRule.onNodeWithText("Submit").performClick() // You can also manually run accessibility checks: composeTestRule.onRoot().tryPerformAccessibilityChecks() // When disabling accessibility checks.. composeTestRule.disableAccessibilityChecks() // .. they no longer run when performing an action: composeTestRule.onNodeWithTag("list").performScrollToIndex(15)
@RequiresApi(value = 34)
fun <R : TestRule, A : ComponentActivity> AndroidComposeTestRule<R, A>.enableAccessibilityChecks(
    accessibilityValidator: AccessibilityValidator = AccessibilityValidator().setRunChecksFromRootView(true)
): Unit

Enables accessibility checks using an accessibilityValidator that will be run before every action that is expected to change the UI.

This requires API 34+ (Android U), and currently does not work on Robolectric.

import androidx.compose.ui.test.junit4.accessibility.enableAccessibilityChecks import androidx.test.espresso.accessibility.AccessibilityChecks // Configure your own AccessibilityValidator val accessibilityValidator =  AccessibilityValidator().also {  it.setThrowExceptionFor(AccessibilityCheckResultType.ERROR)  } // Enable accessibility checks with your own AccessibilityValidator: androidComposeTestRule.enableAccessibilityChecks(accessibilityValidator)

If you have a hybrid application with both Compose and Views, and you use both Compose Test and Espresso, then you should set up accessibility checks in both frameworks and share the configuration in the following way:

import androidx.compose.ui.test.junit4.accessibility.enableAccessibilityChecks import androidx.test.espresso.accessibility.AccessibilityChecks // Enable accessibility checks in both Espresso and Compose, and share the configuration val accessibilityValidator = AccessibilityChecks.enable() androidComposeTestRule.enableAccessibilityChecks(accessibilityValidator)
@RequiresApi(value = 34)
fun ComposeTestRule.enableAccessibilityChecks(
    accessibilityValidator: AccessibilityValidator = AccessibilityValidator().setRunChecksFromRootView(true)
): Unit

Enables accessibility checks that will be run before every action that is expected to change the UI.

This requires API 34+ (Android U), and currently does not work on Robolectric.

Enabling accessibility checks is currently only supported for AndroidComposeTestRule. If you have a custom ComposeTestRule implementation that delegates to AndroidComposeTestRule, make sure to call this function on the AndroidComposeTestRule instead.

import androidx.compose.ui.test.junit4.accessibility.disableAccessibilityChecks import androidx.compose.ui.test.junit4.accessibility.enableAccessibilityChecks import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.onRoot import androidx.compose.ui.test.performClick import androidx.compose.ui.test.performScrollToIndex import androidx.compose.ui.test.tryPerformAccessibilityChecks import androidx.test.espresso.accessibility.AccessibilityChecks // Enable accessibility checks with default configuration: composeTestRule.enableAccessibilityChecks() // Accessibility checks are run automatically when performing an action: composeTestRule.onNodeWithText("Submit").performClick() // You can also manually run accessibility checks: composeTestRule.onRoot().tryPerformAccessibilityChecks() // When disabling accessibility checks.. composeTestRule.disableAccessibilityChecks() // .. they no longer run when performing an action: composeTestRule.onNodeWithTag("list").performScrollToIndex(15)