Kinjal Rathod
Kinjal Rathod

Reputation: 549

Send accessibility events not linked to any composable in Jetpack compose

Trying to announce accessibility when showing a pop up/Dialog. After hours of searching found the following code but this does not work for jetpack compose.

Looking for something similar to the code given below but in Jetpack Compose

if (manager.isEnabled) {
    val e = AccessibilityEvent.obtain()
    e.eventType = AccessibilityEvent.TYPE_ANNOUNCEMENT
    e.className = ChangePassword::class.java.name
    e.packageName = context.packageName
    e.text.add(errorMessage)
    manager.sendAccessibilityEvent(e)
}

Upvotes: 5

Views: 2826

Answers (1)

Kinjal Rathod
Kinjal Rathod

Reputation: 549

For all those looking for an answer, there's one simple property in Jetpack Compose that will work. Which is liveRegion

You can find the documentation here: https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/LiveRegionMode

and it can be used as follow;

Text(modifier = Text(
                text = "Page Title,
                color = White,
                modifier = Modifier
                    .focusable()
                    .clearAndSetSemantics {
                        this.contentDescription = accSkipPermission
                        liveRegion = LiveRegionMode.Assertive
                    }
            ))

Upvotes: 9

Related Questions