android-fragments Android无障碍对讲说片段的标题

twh00eeo  于 2022-11-14  发布在  Android
关注(0)|答案(3)|浏览(177)

有没有办法让安卓无障碍中的talkback功能在片段交易后说些什么?我基本上是希望talkback在切换后说片段的名称/标题。这些标题被设置为操作栏的标题,可以在那里访问吗?用户可以在操作栏的文本上移动手指来知道他们在哪个屏幕上,但用户不会知道,除非他们已经熟悉了应用程序。

3gtaxfhh

3gtaxfhh1#

你可以从decor视图强制WINDOW_STATE_CHANGED事件来宣布ActionBar标题。这也会导致TalkBack清除辅助功能焦点,因此你应该只在应用的主要内容发生变化时调用它。

getWindow().getDecorView()
        .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
efzxgjgh

efzxgjgh2#

自Android 9以来,推荐的方法是在Fragment的根视图上设置一个辅助功能窗格标题。以下是一个向后兼容的方法,适用于API 19+:

ViewCompat.setAccessibilityPaneTitle(view, "My fragment title")

如果您使用AppCompat,还可以在XML布局中以向后兼容的方式提供标题:

android:accessibilityPaneTitle="@string/fragment_title"

当新片段被换入时,标题将自动宣布。
如需了解更多信息,请阅读Android官方文档中的辅助功能窗格标题。

6ovsh4lw

6ovsh4lw3#

您也可以使用

binding.rootView.announceForAccessibility("My fragment title")

在片段的onViewCreated()函数中。
如果您没有使用viewBinding,则只需使用片段布局的根视图来调用函数announceForAccessibility()

相关问题