工具栏内容描述未按预期运行

时间:2019-06-06 09:45:29

标签: android accessibility talkback android-accessibility

我正在将contentDescription设置为Fragment和DialogFragment类中的工具栏。

Fragment类中,它可以正常工作。 (例如

  1. 专注于工具栏,"toolbarContentDescription"
  2. 在下一次向前滑动时,"Navigation Up"
  3. 在下一次向后滑动时,“ toolbarContentDescription”)

DialogFragment类中,它首先读取导航。 (例如

  1. 针对工具栏,"Navigation Up toolbarContentDescription"
  2. 在下一次向前滑动时,"Navigation Up"
  3. 在下一次向后轻扫时,"toolbarContentDescription"

我使用相同的代码在两个类中设置工具栏。

我试图通过更改navigationContentDescription的位置来修复它。但是在dialogFragment类中不起作用。并且如果我删除navigationContentDescription,则在后退箭头上将显示"Unlabeled Botton"

fun setToolBar(toolbar: Toolbar, title: String) {
    getMainActivity().setSupportActionBar(toolbar)
    toolbar.title = title
    toolbar.contentDescription = "toolbar content description here"
    toolbar.setTitleTextAppearance(context, R.style.white_toolbar_text)
    toolbar.setBackgroundColor(ContextCompat.getColor(context, R.color.white))

    toolbar.setNavigationIcon(R.drawable.ic_back_arrow)
    // set back arrow content description.
    toolbar.navigationContentDescription  = "Navigation Up"
    toolbar.setNavigationOnClickListener {
                getMainActivity().onBackPressed()
        }

    toolbar.requestFocus()
toolbar.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
}

我不明白这种不同行为的原因。它应读取与对话框片段中的片段类相同的工具栏描述。

1 个答案:

答案 0 :(得分:1)

TalkBackDialog屏幕有特殊待遇。在每个对话框中,屏幕阅读器都会特别声明其标题。我认为您无法更改此行为,因为它不在您的应用范围内,而是在TalkBack实现本身中。

相关问题