Как Role=form помогает доступности?

Я прочитал, что role атрибут был добавлен в загрузки для доступности, и я хотел бы знать, как <form role="form"> помогает доступность. Вижу http://getbootstrap.com/css/#forms-example пример конкретного использования.

я поиск репозитория Bootstrap для "роли" безрезультатно.

моя проблема в том, что информация кажется избыточной. Понятие о том, что элемент форма уже выражается самим тегом HTML (<form>), Так что это поможет, если мы также добавим, что элемент играет role of form? Имело бы смысл добавить role="..." если role будет отличаться от form (Я не знаю, что-но давайте притворимся); как это стоит (особенно без конкретных рассуждений / примеров использования), это в лучшем случае озадачивает.

4 ответов


если добавить role="form" для формы считыватель экрана видит ее как область на веб-странице. Это означает, что пользователь может легко перейти к форме с помощью быстрых навигационных клавиш своего региона (например, в JAWS 15 вы используете R для этого). А также ваш пользователь сможет легко найти, где начинается и заканчивается форма, потому что читатели экрана отмечают начало и конец регионов.


Я хотел бы отметить, что статья @user664833 упоминается в комментарий утверждает, что role="form" не должен <form> элементов, а на <div> или какой-либо другой элемент, который семантически не указывает, что он содержит элементы формы.

на <form> элемент - это, наверное, уже надлежащим образом современными читателями экрана.

цитата (ссылка):

рекомендую использовать [role="form"] на семантически нейтральном элементе, таком как <div> на <form> элемент, как элемент уже имеет семантика ролей по умолчанию.


на самом деле в рекомендации ARIA четко указано, что не следует изменять семантику языка хоста в разделе 1.4:

" нецелесообразно создавать объекты со стилем и скриптом, когда язык хоста предоставляет семантический элемент для этого типа объекты. В то время как WAI-ARIA может улучшить доступность этих объекты, доступность лучше всего обеспечивается, позволяя агенту пользователя обрабатывайте объект изначально. Например, лучше использовать h1 элемент в HTML, чем использовать роль заголовка для элемента div."

Итак, пишу <form role='form'> не только избыточно, но и против рекомендации. Побочные эффекты [d], такие как упомянутый результат неповиновения рекомендации.


семантически говоря, форма по умолчанию-это форма. Однако не все приложения доступности (читатели экрана и т. д.) разработаны одинаково, и некоторые могут использовать элементы (даже элемент формы) с role=form атрибут по-разному, даже если они понимают, что родительский элемент формы будет иметь одинаковое семантическое значение С или без .