Когда использовать атрибут disabled vs атрибут Aria-disabled для HTML-элементов?

Я пытаюсь сделать форму доступной. Должен ли я сделать мои входные данные обоими disabled и aria-disabled атрибуты, или только один?

<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" disabled>

или такой?

<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" aria-disabled="true">

или такой?

<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" aria-disabled="true" disabled>

3 ответов


Я могу взять ваш пример, положить его в CodePen, и проверьте его в JAWS и NVDA (извините, сегодня нет VoiceOver):

<label for="textbox1">Input</label>
<input id="textbox1" type="text" name="Text Box" disabled>

вы будете рады узнать, что оба NVDA и JAWS пропускают поле (или, если явно сосредоточены, объявляют, что отключено).

короче, вы не нужно aria-disabled больше. Просто используйте disabled.

вы можете прочитать немного больше об атрибутах ARIA, которые вы можете сбросить в этой статье Стива Фолкнера (один из редакторов спецификации ARIA) с 2015 года (хотя aria-disabled явно не указан, понятие то же самое):http://html5doctor.com/on-html-belts-and-aria-braces/

если мой ответ похож на ваш вопрос о required и aria-required, потому что это по сути один и тот же ответ.


короче говоря, вам больше не нужна Aria-disabled. Просто используйте отключены.

для завершения ответа @aardrian.

при использовании элемента управления HTML, который поддерживает изначально , вам не нужен .

если вы используете пользовательский элемент управления, то вы можете использовать aria-disabled атрибут. Например, в следующем коде кнопка "пауза" будет отключена до тех пор, пока не будет нажата кнопка "воспроизведение" (наша затем javascript изменится tabindex и aria-disabled атрибуты).

<img src="controls/play.png"
  id="audio-start"
  alt="Start"
  role="button"
  aria-disabled="false"
  tabindex="0" />

<img src="controls/pause.png"
  id="audio-pause"
  alt="Pause"
  role="button"
  aria-disabled="true"
  tabindex="-1" />

обратите внимание, что в соответствии с W3C:

отключенные элементы могут не получать фокус из порядка вкладок. [...] В дополнение к настройке атрибута Aria-disabled авторы должны изменить внешний вид (серый и т. д.), чтобы указать, что элемент был отключен.


важным отличием является то, что при использовании voice-over элемент только с "отключенным" свойством не будет вкладок. Однако элемент с Aria-disabled= "true" все равно сможет получать фокус и сообщать читателю экрана как затемненный.