Я видел атрибут aria во время работы с Angular Material. Может кто-нибудь объяснить мне, что означает префикс арии? но самое главное то , что я пытаюсь понять разницу между aria-hidden
и hidden
атрибутом.
Я видел атрибут aria во время работы с Angular Material. Может кто-нибудь объяснить мне, что означает префикс арии? но самое главное то , что я пытаюсь понять разницу между aria-hidden
и hidden
атрибутом.
Ответы:
ARIA (Accessible Rich Internet Applications) определяет способ сделать веб-контент и веб-приложения более доступными для людей с ограниченными возможностями.
hidden
Атрибут является новым в HTML5 и говорит браузеры не отображать элемент. aria-hidden
Свойство сообщает скрин-читатель , если они должны игнорировать этот элемент. Посмотрите документы w3 для более подробной информации:
https://www.w3.org/WAI/PF/aria/states_and_properties#aria-hidden
Использование этих стандартов может облегчить использование Интернета людьми с ограниченными возможностями.
hidden
значит скрыто для всех. aria-hidden
означает скрытые для программ чтения с экрана и аналогичных инструментов. Это полезно для компонентов, которые используются исключительно для форматирования и не содержат, например, реального контента.
hidden
Должна препятствовать тому, чтобы программа чтения с экрана получила доступ к содержимому тега.
aria-hidden
правильном; однако вы ничего не сказали о том, hidden
чтобы отличить его от aria-hidden
. Это, к сожалению, лучший ответ. Пожалуйста, будьте внимательнее к своим ответам.
Скрытый атрибут - это логический атрибут (True / False). Когда этот атрибут используется в элементе, он удаляет все отношение к этому элементу. Когда пользователь просматривает html-страницу, элементы со скрытым атрибутом не должны быть видны.
Пример:
<p hidden>You can't see this</p>
Скрытые атрибуты Aria указывают, что элемент и ВСЕ его потомки все еще видны в браузере, но будут невидимы для инструментов доступности, таких как программы чтения с экрана.
Пример:
<p aria-hidden="true">You can't see this</p>
Взгляни на это . Он должен ответить на все ваши вопросы.
Примечание: ARIA расшифровывается как Accessible Rich Internet Applications
Источники: Paciello Group
aria-hidden="true"
по-прежнему виден в браузере, но будет невидим для инструментов специальных возможностей, таких как программы чтения с экрана.
aria-hidden
используется, чтобы скрыть элемент от людей, использующих ваш сайт с инструментами доступности.
Согласно HTML 5.2 :
При указании в элементе [
hidden
атрибут] указывает, что элемент еще не является или более не имеет непосредственного отношения к текущему состоянию страницы или что он используется для объявления контента, который будет повторно использоваться другими частями страницы как в отличие от прямого доступа пользователя.
Примеры включают в себя список вкладок, на которых некоторые панели не отображаются, или экран входа в систему, который исчезает после входа пользователя в систему. Мне нравится называть эти вещи «релевантными во времени», т.е.
С другой стороны, ARIA 1.1 говорит:
[
aria-hidden
Состояние] указывает, открыт ли элемент для API доступа.
Другими словами, элементы с aria-hidden="true"
удаляются из дерева доступности , которое учитывает большинство вспомогательных технологий, и элементы с ним aria-hidden="false"
обязательно будут представлены в дереве. Элементы безaria-hidden
атрибута находятся в состоянии «undefined (default)», что означает, что пользовательские агенты должны отображать его в дереве на основе его рендеринга. Например, пользовательский агент может решить удалить его, если его цвет текста совпадает с цветом фона.
Теперь давайте сравним семантику. Целесообразно использовать hidden
, но не aria-hidden
для элемента, который еще не «актуален во времени», но который может стать актуальным в будущем (в этом случае вы будете использовать динамические сценарии для удаления hidden
атрибута). И наоборот, это целесообразно использовать aria-hidden
, но неhidden
использовать элемент, который всегда актуален, но с которым вы не хотите загромождать API доступности; такие элементы могут включать в себя «визуальный стиль», например значки и / или изображения, которые не являются необходимыми для пользователя.
В семантике предсказуемые эффекты в браузерах / пользовательских агентов. Причина, по которой я делаю различие, заключается в том, что поведение агента пользователя рекомендуется , но не требуется спецификациями.
hidden
Атрибут должен скрыть элемент из всех презентаций, включая принтеры и чтение с экрана (предполагается , что эти устройства чтить HTML спецификация). Если вы хотите удалить элемент из дерева доступности, а также визуальные медиа, hidden
сделайте свое дело. Тем не менее, не используйте hidden
только потому, что вы хотите этот эффект. Спросите себя, hidden
правильно ли сначала семантически правильно (см. Выше). Если hidden
семантически не правильно, но вы все еще хотите визуально скрыть элемент, вы можете использовать другие методы, такие как CSS.
Элементы с aria-hidden="true"
не отображаются в дереве доступности, поэтому, например, программы чтения с экрана не будут их анонсировать. Эту технику следует использовать осторожно, поскольку она будет предоставлять разный опыт разным пользователям: доступные пользовательские агенты не будут объявлять / представлять их, но они по-прежнему будут отображаться на визуальных агентах. Это может быть хорошо, если все сделано правильно, но у него есть потенциал для злоупотребления.
Наконец, существует разница в синтаксисе между двумя атрибутами.
hidden
является логическим атрибутом , означающим, что если атрибут присутствует, он имеет значение true, независимо от того, какое значение он может иметь, а если атрибут отсутствует, он имеет значение false. Для истинного случая лучше всего либо вообще не использовать значение ( <div hidden>...</div>
), либо значение пустой строки ( <div hidden="">...</div>
). Я бы не советовал, hidden="true"
потому что кто-то, читающий / обновляющий ваш код, может сделать вывод, что это hidden="false"
будет иметь противоположный эффект, который просто неверен.
aria-hidden
напротив, является перечисляемым атрибутом , допускающим одно из конечного списка значений. Если aria-hidden
атрибут присутствует, его значение должно быть либо "true"
или "false"
. Если вы хотите состояние «undefined (default)», удалите атрибут вообще.
Дополнительная литература: https://github.com/chharvey/chharvey.github.io/wiki/Hidden-Content.