有没有办法让安卓无障碍中的talkback功能在片段交易后说些什么?我基本上是希望talkback在切换后说片段的名称/标题。这些标题被设置为操作栏的标题,可以在那里访问吗?用户可以在操作栏的文本上移动手指来知道他们在哪个屏幕上,但用户不会知道,除非他们已经熟悉了应用程序。
3gtaxfhh1#
你可以从decor视图强制WINDOW_STATE_CHANGED事件来宣布ActionBar标题。这也会导致TalkBack清除辅助功能焦点,因此你应该只在应用的主要内容发生变化时调用它。
WINDOW_STATE_CHANGED
ActionBar
TalkBack
getWindow().getDecorView() .sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED);
efzxgjgh2#
自Android 9以来,推荐的方法是在Fragment的根视图上设置一个辅助功能窗格标题。以下是一个向后兼容的方法,适用于API 19+:
ViewCompat.setAccessibilityPaneTitle(view, "My fragment title")
如果您使用AppCompat,还可以在XML布局中以向后兼容的方式提供标题:
android:accessibilityPaneTitle="@string/fragment_title"
当新片段被换入时,标题将自动宣布。如需了解更多信息,请阅读Android官方文档中的辅助功能窗格标题。
6ovsh4lw3#
您也可以使用
binding.rootView.announceForAccessibility("My fragment title")
在片段的onViewCreated()函数中。如果您没有使用viewBinding,则只需使用片段布局的根视图来调用函数announceForAccessibility()
3条答案
按热度按时间3gtaxfhh1#
你可以从decor视图强制
WINDOW_STATE_CHANGED
事件来宣布ActionBar
标题。这也会导致TalkBack
清除辅助功能焦点,因此你应该只在应用的主要内容发生变化时调用它。efzxgjgh2#
自Android 9以来,推荐的方法是在Fragment的根视图上设置一个辅助功能窗格标题。以下是一个向后兼容的方法,适用于API 19+:
如果您使用AppCompat,还可以在XML布局中以向后兼容的方式提供标题:
当新片段被换入时,标题将自动宣布。
如需了解更多信息,请阅读Android官方文档中的辅助功能窗格标题。
6ovsh4lw3#
您也可以使用
在片段的onViewCreated()函数中。
如果您没有使用viewBinding,则只需使用片段布局的根视图来调用函数announceForAccessibility()