Как я могу заставить программу чтения с экрана правильно читать двузначное/трехзначное число?

Я пишу код специальных возможностей в свое приложение. Проблема в том, что когда у меня есть число (например: 21), напечатанное в div для чтения с экрана:

<div id="screenReaderBox" aria-show=true tabindex=0> I have 21 cookies</div>

Средство чтения с экрана читает элемент div следующим образом: «У меня два файла cookie», а не «У меня двадцать один файл cookie».

Как я могу изменить div для программы чтения с экрана, чтобы правильно подобрать html-контент? Будет ли какое-нибудь обходное решение?

Я пробовал parseInt(); тот же результат


person Kode_12    schedule 18.04.2016    source источник
comment
Это похоже на то, что программа чтения с экрана должна сделать/исправить. Это нормальное поведение для всех программ чтения с экрана?   -  person Pekka    schedule 18.04.2016
comment
Каждое средство чтения с экрана отличается синтаксисом, который оно может подобрать. Как правило, они хорошо расшифровывают содержимое HTML, но я не уверен, что они могут правильно читать числа, я новичок в работе с программами чтения с экрана.   -  person Kode_12    schedule 18.04.2016
comment
Если они не могут этого сделать, то они бесполезны для большей части контента в Интернете - трудно представить, что это современное состояние...   -  person Pekka    schedule 18.04.2016
comment
Связанные/интересные: stackoverflow.com/questions/21832888/ может быть даже хорошим дубликатом.   -  person Pekka    schedule 18.04.2016


Ответы (1)


Вы можете использовать aria-label, чтобы помочь программе чтения с экрана:

<div id="screenReaderBox" aria-show=true tabindex=0>
       I have <span aria-label="twenty one">21</span> cookies</div>

Но вы должны отметить, что если вы используете дисплей Брайля (или любую вспомогательную технологию, не предназначенную для преобразования текста в речь), это может привести к обратным результатам с большими числами (например, 123456789):

У меня сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять печенюшек.

На мой взгляд, у вашего скринридера плохая реализация чтения чисел (или это какая-то настройка?), и вам следует игнорировать эту проблему, так как он не реализует правильный способ интерпретации чисел.

person Adam    schedule 19.04.2016
comment
Проблема с VoiceOver, он отлично работает с Jaws и другими сторонними программами чтения с экрана. - person Kode_12; 21.04.2016