Aria-label против ярлыков форм

Существуют ли какие-либо различия между этими двумя методами чтения с экрана в формах, и один из них рекомендуется больше, чем другой:

<label for = "titleInput">Title</label>
<input type = "text" id = "titleInput" name = "title" value = "">


<div>Title</div>
<input type = "text" aria-label = "Title" name = "title" value = "">

Первый способ всегда был способом настроить это, но с тех пор, как был представлен WAI-ARIA, я задумался, лучше ли использовать aria-label с формами, чем использовать <label for = "x">.

почему бы не использовать оба? если вы используете правильную метку, это также позволяет пользователю щелкнуть метку, чтобы сфокусироваться на вводе

Pete 23.04.2019 17:11
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
5
1
2 679
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Aria-label для доступности. Если добавлена ​​метка Aria, то при озвучивании, т.е. (cmd +F5 на MAC или JAWS на машине Windows, будет прочитан все, что введено внутри атрибута aria-label тега HTML. Эта функция очень полезна для пользователей с нарушениями зрения. Читать здесь https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute

Метка — это HTML-тег, как и теги <form> or <h1>..<h6> и т. д. Когда тег используется, он отображает метку в пользовательском интерфейсе. Например: <Label>ENTER NAME</Label>

Пайель, хотя это правильно, так как label имеет встроенную семантику доступности, поэтому в случаях, когда вы должны использовать метку (например, почти или во всех случаях, когда у вас есть ввод), это лучше, чем aria-label, потому что aria-label будет не поможет зрячим пользователям, которые могли бы извлечь выгоду из визуальных аспектов доступности/удобства использования, которые также могут обеспечить собственные элементы HTML.

Anup 06.12.2019 12:29
Ответ принят как подходящий

Эмпирическое правило: если реальный элемент может выполнить эту работу, используйте настоящий элемент. ARIA — это то, к чему вы возвращаетесь, когда нет реального элемента, выражающего семантику, или когда вы делаете что-то очень странно, которое не позволяет вам использовать обычный элемент.

(Большую часть времени, когда вы делаете что-то очень странно, вместо этого вы должны перестать делать странные вещи).

В данном конкретном случае между ними есть несколько существенных различий.

Браузеры не будут расширять цель клика до элемента div, как это было бы с элементом label.. Щелчок по метке сфокусирует ввод, а щелчок по div — нет.

Теперь у вас есть две метки. Div и атрибут предоставляют информацию такой же в двух разных местах. Атрибут не заменяет div, поэтому программа чтения с экрана прочитает текст div а также — метку, связанную с вводом.

Используйте <label>. Он специально предназначен для связывания текста с элементом управления формы.

aria-label предназначен для предоставления текстового описания некоторого контента, который программа чтения с экрана не может прочитать. например когда вы используете фоновое изображение для передачи информации вместо использования <img> с атрибутом alt (см. мою предыдущую заметку о странность).

Другие вопросы по теме