ARIA це абревіатура від Accessible Rich Internet Applications (доступні насичені інтернет-додатки), використання цього стандарту дозволяє зробити сайт більш доступним для людей з обмеженими здібностями, наприклад, з порушеннями слуху або зору. Подивимося, що можуть зробити розробники, щоб полегшити їм життя.
Один із способів використання цього стандарту - додавання ARIA в розмітку HTML. Ви напевно знайомі з семантичними елементами HTML такими як nav. button або header. Легко зрозуміти, для чого можна використовувати ці елементи. Вони дають більше сенсу вмісту сторінки і ми можемо використовувати комбінацію цих елементів і ARIA в розмітці. Однак для спільного їх використання варто враховувати кілька речей.
Ролі ARIA додаються в розмітку HTML як атрибути. Вони визначають тип елемента і вказують мету, якої він служить. У наступному прикладі елемент ідентифікується як банер:
Ще один приклад: тут роль повідомляє відомості про те, що елемент містить інформацію про вміст сторінки.
Оповіщення буде виглядати так:
role = "alert" повноцінно працює з елементами, динамічно додаються в DOM або при зміні відображення, наприклад, з display: none to display: block
Елементи span (як і div) в більшості випадків не потребують надання role = "presentation", так як не є об'єктами в дереві доступності браузера (accessibility tree). Але для семантичних елементів типу h1 - h6 це має сенс.
атрибути ARIA
Атрибути ARIA трохи відрізняються від ролей ARIA. Вони також додаються в розмітку, але існує вже певний діапазон атрибутів ARIA. Всі атрибути використовують префікс aria- і діляться на дві групи: стану і властивості.
- Значення атрибутів-станів змінюються в результаті взаємодії з користувачем.
- Значення атрибутів-властивостей, як правило, залишаються незмінні.
Приклад ARIA атрибута-стану це aria-checked. використовуваний в таких елементах як чекбокси і радиокнопки.
Насправді використання атрибута ARIA в нативної радіо-кнопці зайве, зв'язування input type = "radio" і aria-checked проводиться автоматично.
Зразок атрибута-властивості це aria-label. Цей атрибут використовується, коли мітка елемента форми не видима на сторінка (це може бути продиктовано дизайном або просто не матиме сенсу). Для випадків, коли текст мітки бачимо, підходить атрибут aria-labelledby. Він використовується також як і попередній, значення цього атрибута збігається зі значення id мітки.
Це також можна зробити в елементі figure.
Правила ARIA
Перш ніж кидатися в атаку, запам'ятайте, що з кількох причин не варто додавати ARIA до кожного елементу.
Намагайтеся максимально використовувати семантичні елементи HTML
Семантика ARIA за замовчуванням посилається на семантику, яка застосовується до елементів в браузері. Такі елементи як nav. article і button мають уже закладеними ролями role = "navigation". role = "article" і role = "button" відповідно. До появи семантичних елементів HTML було поширена розмітка по типу
. Тепер ми можемо використовувати nav замість div і нам не потрібно додавати до семантичного елементу role = "navigation". тому як ця роль в ньому вже мається на увазі за замовчуванням. Ви можете перевірити по таблиці W3C наявність і відсутність атрибутів ARIA у шуканого елемента.
У елемента може бути тільки одна роль
У елемента не може бути множинних ролей. Згідно з визначенням, роль це:
Основний індикатор типу. Ця семантична асоціація дозволяє інструментам відображати і підтримувати взаємодію з об'єктами в манері, що відповідає очікуванням користувача щодо інших об'єктів того ж типу.
Не може бути двох ролей у елемента HTML. Всі ролі семантичного тим чи іншим способом і відповідно до визначення вище, елемент не може бути двох типів. Чи може у вас бути кнопка-заголовок? Ні, тільки одне з двох. Вибирайте роль, яка найкраще описує функцію елемента.
Не змінюйте нативную семантику
Ви не повинні застосовувати роль, яка не відповідає семантиці елемента, так як додана роль переписує нативную семантику елемента. наприклад:
Однак друге правило ARIA дозволяє в разі необхідності використовувати вкладення елементів.
Як ще можна зробити розмітку більш доступною?
Максимально використовуйте семантичні елементи
Це приходить з досвідом, але якщо ви думаєте про функціональність того, що ви будуєте, це може дати вам хорошу ідею про використання елементів, потрібних для ваших цілей краще, ніж div або span. На практиці ви можете використовувати список елементів HTML на сайті W3C. щоб краще ознайомитися з ними.
Одним з моїх улюблених прикладів є тег blockquote. який часто використовується не за призначенням. Є інші схожі елементи, що використовуються конкретним цілям:
- q - використовується для вказівки малих цитат, таких як цитати всередині тексту параграфів.
- cite - використовується для цитування творчої роботи з текстом, наприклад, віршів.
Ось приклад з використанням обох згаданих елементів:
Існує ще безліч елементів HTML, які ви, можливо, не враховуєте, включаючи кілька нових, тому ще раз рекомендую оцінити можливості.
Атрибут alt
Це часто забуваємо частина розмітки, яка може серйозно позначитися на доступності, особливо в разі скрінрідеров. Цей атрибут з'явився в специфікації з часів HTML2 і описується наступним чином:
текст використовуваний замість зображення, якщо зображення недоступне в силу якихось обмежень або переваг користувача.
Люди часто заповнюють атрибут alt не інформативні, наприклад, пишуть текст типу "собака" для фотографії своєї собаки, що грає в парку. На жаль, цей текст не намалює ніякої картини для людей з вадами зору. Наступний підхід більш прийнятний:
Відзначте, що атрибут alt створений не для того ж, що і елемент figcaption. мета alt це створення альтернативного тексту для зображення. а figcaption це просто правильний заголовок для figure. Якщо розвивати наш попередній приклад у figcaption наступний текст:
Приклад розмітки з використанням семантичного HTML і ARIA, орієнтований на доступність
Якщо ви дивилися на приклади в цій статті, то ви очікуєте побачити в якості зразка наступне:
- використання семантичного HTML для зображення і заголовка
- цільове використання елемента cite
- додавання атрибута alt
- використання одного з атрибутів ARIA
висновок
Ролі та атрибути ARIA дають величезний ефект, коли вміст вашого сайту обробляється скрін-рідерами та іншими допоміжними технологіями. З поширенням допоміжних технологій нам треба розглядати інтеграцію ARIA в наш код як постійну практику.
Додаткові матеріали
Схожі статті