# androidx.compose.ui.test.junit4.accessibility

## Extension functions summary

|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 34) <R : https://junit.org/junit4/javadoc/latest/org/junit/rules/TestRule.html, A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity> https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/AndroidComposeTestRule<R, A>.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).disableAccessibilityChecks()( )` Disables accessibility checks. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 34) https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.ComposeTestRule).disableAccessibilityChecks()()` Disables accessibility checks. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 34) <R : https://junit.org/junit4/javadoc/latest/org/junit/rules/TestRule.html, A : https://developer.android.com/reference/kotlin/androidx/activity/ComponentActivity> https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/AndroidComposeTestRule<R, A>.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).enableAccessibilityChecks(com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator)( accessibilityValidator: com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator )` Enables accessibility checks using an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).enableAccessibilityChecks(com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator)` that will be run before every action that is expected to change the UI. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/annotation/RequiresApi(value = 34) https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/ComposeTestRule.https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.ComposeTestRule).enableAccessibilityChecks(com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator)( accessibilityValidator: com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator )` Enables accessibility checks that will be run before every action that is expected to change the UI. |

## Extension functions

### AndroidComposeTestRule.disableAccessibilityChecks

Artifact: [androidx.compose.ui:ui-test-junit4-accessibility](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/junit4/accessibility/AndroidComposeTestRuleExt.android.kt+function:disableAccessibilityChecks)

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

): Unit
```

Disables accessibility checks.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).enableAccessibilityChecks(com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator)` |   |

### ComposeTestRule.disableAccessibilityChecks

Artifact: [androidx.compose.ui:ui-test-junit4-accessibility](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/junit4/accessibility/ComposeTestRuleExt.android.kt+function:disableAccessibilityChecks)

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

Disables accessibility checks.

```kotlin
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)
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).enableAccessibilityChecks(com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator)` |   |

### AndroidComposeTestRule.enableAccessibilityChecks

Artifact: [androidx.compose.ui:ui-test-junit4-accessibility](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/junit4/accessibility/AndroidComposeTestRuleExt.android.kt+function:enableAccessibilityChecks)

```
@RequiresApi(value = 34)
fun <R : TestRule, A : ComponentActivity> AndroidComposeTestRule<R, A>.enableAccessibilityChecks(
    accessibilityValidator: com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.AccessibilityValidator = AccessibilityValidator().setRunChecksFromRootView(true)
): Unit
```

Enables accessibility checks using an `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).enableAccessibilityChecks(com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.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.

```kotlin
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:

```kotlin
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)
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).disableAccessibilityChecks()` |   |

### ComposeTestRule.enableAccessibilityChecks

Artifact: [androidx.compose.ui:ui-test-junit4-accessibility](https://developer.android.com/jetpack/androidx/releases/compose-ui) [View Source](https://cs.android.com/search?q=file:androidx/compose/ui/test/junit4/accessibility/ComposeTestRuleExt.android.kt+function:enableAccessibilityChecks)

```
@RequiresApi(value = 34)
fun ComposeTestRule.enableAccessibilityChecks(
    accessibilityValidator: com.google.android.apps.common.testing.accessibility.framework.integrations.espresso.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.

```kotlin
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)
```

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/ui/test/junit4/accessibility/package-summary#(androidx.compose.ui.test.junit4.AndroidComposeTestRule).disableAccessibilityChecks()` |   |