Описание содержимого панели инструментов не работает должным образом - PullRequest
0 голосов
/ 06 июня 2019

Я устанавливаю 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 Ответ

1 голос
/ 06 июня 2019

TalkBack имеет специальное отношение к Dialog экранам.В каждом диалоге программа чтения с экрана делает специальное объявление о своем названии.Я не думаю, что вы сможете изменить это поведение, так как оно находится не в вашей области приложения, а в самой реализации TalkBack.

...