3 техники с атрибутом aria-label, которые прокачают ваш HTML

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Я люблю делать доступные интерфейсы и стараюсь искать новый материал, чтобы перенять интересные практики. В этой статье я хочу рассказать про 3 техники, которые помогут сделать интерфейсы более понятными и простыми для пользователей скринридоров.

Дайте больше информации о контексте, где элемент находится

Мы часто имеем дело с кнопками, у которых есть ограничения. Например, ограничение пространства. Мы не можем использовать слишком длинный текст, потому что кнопки не поместятся. Поэтому мы вынуждены использовать краткий текст.

Но одного текста мало. Когда пользователь без ограничений взаимодействует с элементом, то кроме текста, он интуитивно анализирует окружающий контекст, и поэтому он может догадаться, что делает кнопка.

А что будет делать пользователь скринридера в такой ситуации? К сожалению, если человек использует только скринридер, то у него остается только краткий текст. И ему гораздо сложнее догадаться, что же делает кнопка.

Но мы можем помочь, добавив больше информации о контексте элемента с помощью атрибута aria-label. Например, разработчики ASOS добавляют "Clear recent searches", чтобы пользователи поняли, что кнопка очищает последние результаты поиска.

Не делайте так

<button type="button">Clear</button>

Можно сделать так

<button type="button" aria-label="Clear recent searches">Clear</button>

Глаголы говорят пользователям, что элемент приводит к действию

Есть хорошая практика, использовать атрибут aria-label, чтобы скринридеры подсказывали пользователям, как взаимодействовать с элементом. Но, по моему мнению, тут есть проблема.

Люди используют существительные. Например, они пишут "Мои сохраненные товары" для ссылки, которая ведет на страницу с сохраненными товарами. Поэтому скринридеры озвучат "Мои сохраненные товары, ссылка".

Я же предлагаю использовать глаголы, чтобы пользователи понимали, что элемент приведет к действию. Например, "Мои сохраненные товары" заменить на "Перейти к моим сохраненным товарам". Скринридеры озвучат "Перейти к мои сохраненным товарам, ссылка".

Не делайте так

<a arial-label="Мои сохраненные товары" href="https://example.com/saved-lists">...</a>

Можно сделать так

<a arial-label="Перейти к моим сохраненным товарам" href="https://example.com/saved-lists">...</a>

Создайте более простое взаимодействие

Если вы хотите сделать удобный интерфейс для пользователей скринридоров, то вам следует знать, что все элементы с семантикой озвучиваются. Например, я создал ссылку, в которой есть img, p и span. Когда пользователи будут взаимодействовать с интерфейсом, то они будут вынуждены сделать 3 действия.

Но мы можем упростить это, создав альтернативный способ взаимодействия. Например, разработчики ASOS дают всю информацию в атрибуте aria-label, а затем скрывают все дочерние элементы с помощью атрибута aria-hidden.

В результате, когда пользователи попадают на ссылку, то они получают понятное описание и стоимость товара, и уже сразу могут перейти на его детальную страницу.

Не делайте так

<a href="https://www.asos.com/only-sons/only-sons-oversize" class="product-card">
  <div class="product-card__preview">
    <img src="only-sons-oversize.jpg" alt="Only Sons oversize vest with palmistry back print in white">
  </div>
  <div class="product-card__body">
    <div class="product-card__description">
      <p>Only Sons oversize vest with palmistry back print in white</p>
    </div>
    <span class="product-card__price">£14.00</span>
  </div>
</a>

Можно сделать так

<a href="https://www.asos.com/only-sons/only-sons-oversize"
   aria-label="Only Sons oversize vest with palmistry back print in white. Price £14.00"
   class="product-card">
  <div aria-hidden="true" class="product-card__preview">
    <img src="only-sons-oversize.jpg" alt="Only Sons oversize vest with palmistry back print in white">
  </div>
  <div aria-hidden="true" class="product-card__body">
    <div class="product-card__description">
      <p>Only Sons oversize vest with palmistry back print in white</p>
    </div>
    <span class="product-card__price">£14.00</span>
  </div>
</a>

P.S. Если у вас есть вопросы по CSS/HTML, то, не стесняйтесь, пишите мне на мою почту. Она указана в моем профиле на Хабре.

Источник: https://habr.com/ru/post/565104/


Интересные статьи

Интересные статьи

Эта статья — шпаргалка по HTML-тегам. Поэтому не будем разглагольствовать, сразу к делу. abbr Тег abbr определяет аббревиатуру или акроним. Аббревиатура или акроним расшифровываются с...
Доброго времени суток, друзья! Позвольте представить вам мой новый проект — современный стартовый HTML-шаблон. Данный шаблон является результатом анализа более 100 источников по...
В последние годы JavaScript развивается очень быстро. Особенно это характерно для периода, следующего за выходом стандарта ES6 в 2015 году. С тех пор в языке появилось множество замеч...
Norton Core, Adobe Shockwave, Yotaphone и другие приложения, стартапы, устройства и сайты, которые ушли в иной мир в 2019 году. Каждый год мы наблюдаем как новые приложения, шумные стартап...
Этот пост будет из серии, об инструментах безопасности, которые доступны в Битриксе сразу «из коробки». Перечислю их все, скажу какой инструмент в какой редакции Битрикса доступен, кратко и не очень р...