发送未链接到 Jetpack compose 中任何可组合项的辅助功能事件

Kin*_*hod 4 android accessibility talkback android-jetpack android-jetpack-compose

尝试在显示弹出窗口/对话框时宣布可访问性。经过几个小时的搜索后发现以下代码,但这不适用于 jetpack compose。

寻找类似于下面给出的代码但在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)
}
Run Code Online (Sandbox Code Playgroud)

Kin*_*hod 8

对于所有寻求答案的人来说,Jetpack Compose中有一个简单的属性可以发挥作用。这是liveRegion

您可以在这里找到文档:https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/LiveRegionMode

它可以如下使用;

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