Я бачив атрибут 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>
Приховані арія атрибути вказують на те, що елемент та ВСІ його нащадки все ще видно у браузері, але вони будуть непомітні для інструментів доступності, таких як зчитувачі екрану.
Приклад:
<p aria-hidden="true">You can't see this</p>
Погляньте на це . Він повинен відповісти на всі ваші запитання.
Примітка: ARIA розшифровується як Доступні додатки для багатого Інтернету
Джерела: 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
атрибуту знаходяться в стані "невизначеного (за замовчуванням)", що означає, що користувацькі агенти повинні викривати його на дереві на основі його візуалізації. Наприклад, користувальницький агент може вирішити видалити його, якщо його колір тексту відповідає кольорові фону.
Тепер порівняємо семантику. Доцільно використовувати hidden
, але ні aria-hidden
, для елемента, який ще не є "тимчасово релевантним", але це може стати актуальним у майбутньому (у такому випадку ви використовуєте динамічні сценарії для видалення hidden
атрибута). З іншого боку , це доречно використовувати aria-hidden
, але не hidden
на елемент , який завжди актуальний, але , з яким ви не хочете захаращувати доступності API; такі елементи можуть включати «візуальний нюх», як іконки та / або зображення, які не є істотними для споживання користувача.
У семантиці передбачувані ефекти в браузерах / користувальницьких агентів. Причина, по якій я роблю відмінність, полягає в тому, що поведінка агента користувача рекомендується , але не вимагається специфікаціями.
hidden
Атрибут повинен приховати елемент з усіх презентацій, включаючи принтери і читання з екрану (мається на увазі , що ці пристрої шанувати HTML специфікація). Якщо ви хочете вилучити елемент з дерева доступності , а також візуальні носії, hidden
зробимо це. Однак не використовуйте hidden
лише тому, що ви хочете цього ефекту. Запитайте себе, чи hidden
спочатку семантично правильно (див. Вище). Якщо hidden
це не семантично правильно, але ви все ще хочете візуально приховати елемент, ви можете використовувати інші методи, такі як CSS.
Елементи з aria-hidden="true"
не піддаються дереву доступності, тому, наприклад, зчитувачі екрану їх не оголошують. Цю методику слід використовувати обережно, оскільки вона надаватиме різні враження різним користувачам: доступні користувацькі агенти не оголошуватимуть їх та не надаватимуть їх, але вони все одно надаються на візуальних агентах. Це може бути хорошою справою, якщо зробити це правильно, але це може бути зловживано.
Нарешті, є різниця в синтаксисі між двома атрибутами.
hidden
є булевим атрибутом , тобто якщо атрибут присутній, він є істинним - незалежно від того, яке значення він може мати - і якщо атрибут відсутній, він є помилковим. У справжньому випадку найкращою практикою є або взагалі не використовувати значення ( <div hidden>...</div>
), або значення порожнього рядка ( <div hidden="">...</div>
). Я б не рекомендував, hidden="true"
тому що хтось, читаючи / оновлюючи ваш код, може зробити висновок, що hidden="false"
він матиме протилежний ефект, що просто неправильно.
aria-hidden
Навпаки, це перерахований атрибут , що дозволяє одне з кінцевих списків значень. Якщо aria-hidden
атрибут присутній, його значення повинно бути "true"
або "false"
. Якщо ви хочете стан "невизначений (за замовчуванням)", видаліть атрибут взагалі.
Подальше читання: https://github.com/chharvey/chharvey.github.io/wiki/Hidden-Content