Jetpack compose中的announceForAccessibility的替代品

问题描述 投票:0回答:2

jetpack compose 中是否有

announceForAccessibility
的替代方案,它会自动宣布事件的文本。

android android-jetpack-compose accessibility
2个回答
1
投票

我不确定你的用例,但是

announceForAccessibility
是一种极端措施

注意:该API生成的事件不带语义,仅适用于特殊情况。应用程序通常可以通过准确提供其 UI 语义来实现正确的可访问性行为。他们不需要具体说明向用户宣布的具体内容。

...

使用 View#setAccessibilityLiveRegion(int) 通知用户用户界面中关键视图的更改。这些仍应谨慎使用,因为每次更新视图时它们可能会生成公告。

在大多数情况下,您可以在视图上使用

liveRegion
属性。来自文档

实时区域向辅助服务指示,它们应自动通知用户有关节点内容描述或文本、或节点子节点的内容描述或文本(如果适用)的更改。

Text(text = "Some text view",
    modifier = Modifier.semantics {
       liveRegion = LiveRegionMode.Assertive
    }
)

0
投票

实时区域的问题是,只有文本在屏幕上可见时,它才会宣布,否则它将被忽略。另一种方法是检索视图并使用announceForAccessibility 本身。

val localView = LocalView.current
localView.announceForAccessibility("your text to be announced")
© www.soinside.com 2019 - 2024. All rights reserved.