Talkback не сообщает, когда мы используем TAB для перехода к следующему полю - PullRequest
0 голосов
/ 07 февраля 2019

Предположим, что у меня есть TextView между двумя EditText.

TextView получает VISIBLE, только когда проходят определенные условия после оценки текста EditText в FocusChange.

И когда я делаю его ВИДИМЫМ с помощью пользовательского динамического текста, я вызываю textView.announceForAccessibility (динамическая строка), чтобы объявить содержимое.

Это прекрасно работает, когда я использую жест TAP или жест SWIPE для перемещениядалеко от editTextUnderEvaluation к другому другомуEditText.announceForAccessibility объявляет мою динамическую строку.

Но когда я использую клавиатуру и использую TAB для перехода от editTextUnderEvaluation к другомуEditText, он не объявляет мою динамическую строку.

Я пытался использовать

  1. accessibilityLiveRegion
  2. accessibilityTraversalAfter / Before
  3. Создание и отправка нового события доступности ANNOUNCE

Ничего из этого не сработало.

Мое предположение - Когда я использую TAB для перехода от editTextUnderEvaluation к другомуEditText, разговор по виртуальной клавиатуре Android прерывает мое объявление.Есть ли способ, которым я могу переключить разговорную клавиатуру в вежливый режим.

1 Ответ

0 голосов
/ 12 февраля 2019

Я нашел проблему и решение.Ответ на него для справки.

Когда вы используете TAB для перехода от одного текста редактирования к другому тексту редактирования, компонент EditText имеет объявление типа TYPE_VIEW_FOCUSED, которое считывает «Редактирование текста редактирования ...».Это высокоприоритетное объявление, которое прерывает все объявления, которые должны произойти до него.Поскольку мое объявление о просмотре текста предшествовало TYPE_VIEW_FOCUSED для второго текста редактирования, это также было прервано.

Так что не клавиатура прервала речь, как я и предполагал.

Что я сделал, чтобы решитьэто было переопределить метод onInitializeAccessibilityEvent () в EditText, пропустить событие для TYPE_VIEW_FOCUSED и отправить свое собственное объявление для этого события.

...