Доступность «максимального числа символов» в текстовом поле - PullRequest
0 голосов
/ 02 октября 2018

У меня есть текстовое поле, которое может содержать не более 15 символов.Я включил aria-label, чтобы сказать «Имя (максимум 15 символов)».Я также хочу предупредить пользователей, когда максимальный символ будет достигнут, и они не могут печатать дальше.

Какой лучший способ сделать это?

Считыватели экрана не поддерживают maxlength.

1 Ответ

0 голосов
/ 03 октября 2018

К сожалению, вы должны обойти это.Программы чтения с экрана должны учитывать атрибут maxlength, объявлять для вас ограничение и периодически сообщать пользователю, сколько осталось символов.Но наличие максимума на этикетке - хорошая практика для всех пользователей.

Программы чтения с экрана будут радостно давать обратную связь, когда вы печатаете, даже если вы достигнете максимума.Это довольно плохо, и я думаю, что это ошибка в программном обеспечении для чтения с экрана.

Поскольку в вашем поле всего 15 символов, вам, вероятно, не нужно оставлять отзывы, пока они не достигнут конца.Если у вас есть 100 символов, тогда под полем, которое обновляет, скажем, будет полезно иметь метку «X символов осталось», скажем, каждые 20 нажатий клавиш.

На данный момент вы можете иметь aria-live регион, когда при достижении вашего максимума вы можете либо ввести в него текст о том, что предел достигнут, либо вы можете показать дочерний элемент DOM этого региона.В любом случае текст будет объявлен.

<span aria-live="polite" id="myid"> 
  <!-- insert text here from javascript when max reached --> 
</span>

или

<span aria-live="polite" id="myid"> 
  <!-- unhide me when max reached -->
  <span style="display:none">You've reached the max</span>
</span>
...