Доступность Android в текстовом поле Изменить текст не читается должным образом / Ожидать после разговора снова
Я создаю приложение для слепых людей. там, когда слепые после того, как ввели почтовый индекс на этом профиле регистрации, введите текстовое поле, например 45987. Оно читается как сорок пять тысяч девятьсот восемьдесят семь.
Но я хочу прочитать Четыре Пять Девять Восемь Семь. 4 5 9 8 7.
Примечание: когда я попробовал то же самое в TexView, его чтение так же правильно. Единственная проблема с Edit Text.
Мой пример кода: zipCode_Edit Text.setContentDescription("4 5 9 8 7");
Я сослался на эту ссылку:
Доступность для Android: как изменить текст, читаемый вслух, для представления Edit Text
Как заставить TalkBack автоматически прочитать сообщение об ошибке Text View?
Заранее спасибо
2 ответа
В общем, вы не хотите заставлять программу чтения с экрана читать что-то определенным образом. К сожалению, пользователи программы чтения с экрана привыкли к тому, как все читается. Если с вашим полем ввода правильно связана метка, такая как "почтовый индекс", то, когда они услышат "Почтовый индекс сорок четыре тысячи девятьсот восемьдесят семь", они поймут, что это такое. Пользователи программы чтения с экрана могут перемещаться по элементам по символам, чтобы при желании они могли читать каждое число отдельно.
Важной частью является то, что у вас есть метка, связанная с полем ввода. Я знаю, что вы пишете специально для Android (с которым я не знаком), но если я сравню то, что вы делаете с html, то в html вы захотите что-то вроде:
<label for="zip">zipcode:</label>
<input id="zip">
Есть способы (в html), чтобы заставить то, что говорит программа чтения с экрана, но это обычно портит вещи для пользователей Брайля. Любой "скрытый" текст, который вы добавляете, чтобы заставить программу чтения с экрана физически отображаться на устройствах Брайля.
Для HTML, autocomplete
Атрибут может использоваться в качестве "подсказки" для скрин ридера о типе информации, находящейся в поле. Программное обеспечение для чтения с экрана может использовать эту подсказку, чтобы изменить способ чтения содержимого поля (например, autocomplete="postal-code"
), но поддержка этой подсказки пока широко не поддерживается. Опять же, я знаю, что это для HTML, и вы пишете специально для Android, но, возможно, есть аналогичная концепция "подсказка" для Android.
Лучше не заставлять Talk Back делать это. Моя рекомендация была бы на самом деле просто прекратить делать это вообще. Как слепому человеку, на самом деле легче разобрать одно число, чем отдельные. 45 500 легче запомнить, чем 4, 5, 5, 0, 0. Ментальное покрытие "сорок пять тысяч девятьсот восемьдесят семь" почтовым индексом становится второй натурой. И если существует достаточно длинный номер, требующий проверки по одному номеру за раз, в TalkBack есть режимы для поддержки этого. Вы можете переключить TalkBack в символьный режим и исследовать его вручную.
Это требование действительно исходит от зрячих людей, которые думают как зрячие люди и решают проблемы, которых нет у слепых.
И поскольку другой пользователь поднял его, лучший способ кодировать текст для редактирования в Android
TextView label = ....
EditText editBox = .....
label.setLabeFor(editBox);