工具栏内容描述未按预期工作

Toolbar content description didn't work as expected

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

Fragmentclass中,效果很好。 (例如

  1. 聚焦在工具栏上,"toolbarContentDescription"
  2. 下次向前滑动时,"Navigation Up"
  3. 下次向后滑动时,"toolbarContentDescription")

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

  1. 聚焦在工具栏上,"Navigation Up toolbarContentDescription"
  2. 下次向前滑动时,"Navigation Up"
  3. 下次向后滑动时,"toolbarContentDescription")

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

我试图通过更改 navigationContentDescription 的位置来修复它。但它在 dialogFragment class 中不起作用。如果我删除 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)
}

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

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