7 распространенных проблем с цифровой доступностью и как их избежать

Создать доступный веб-сайт — прекрасное желание, но в этом процессе вас поджидают различные сложности. В компании A11y Collective мы знаем, что учитывать доступность при разработке веб-сайтов — не просто вещь из разряда «неплохо бы сделать», а большая необходимость. Тем не менее, сложно охватить каждую ситуацию и справиться с возникающими трудностями.

Такие ресурсы, как Рекомендации по обеспечению доступности веб-контента (WCAG), необходимы, но они также довольно обширны, из-за чего людям сложно усвоить всю информацию.

Вот почему мы написали этот гид о самых распространенных проблемах доступности веб-сайтов и непосредственных стратегиях их решения.

Но помните: хотя это самые распространенные проблемы, всё же это не полный список.

Ключевые принципы веб-доступности

Согласно руководству по обеспечению доступности веб-контента (WCAG), доступность цифровых технологий основывается на четырех принципах:

  • Воспринимаемость: в независимости от того, каким образом пользователи воспринимают информацию (за счет зрения, слуха или осязания), у них должна быть возможность полноценного доступа к получаемым данным.
  • Управляемость: пользователи должны иметь возможность полноценно взаимодействовать с сайтом, например, осуществлять по нему навигацию или вводить информацию, используя различные инструменты — от клавиатуры или мыши до голосовых команд и др.
  • Понятность: текст должен быть разборчивым, его содержание написано простым языком, а инструкции — легко воспринимаемыми.
  • Надежность: контент должен хорошо интерпретироваться широким спектром программного обеспечения, включая вспомогательные технологии, такие как программы экранного доступа или распознавания голоса.

В настоящее время WCAG является лучшим из существующих стандартов для создания доступных платформ, и он всегда должен служить для вас ориентиром в стремлении повысить доступность веб-сайта. В дополнении к WCAG в России существует ГОСТ-Р52872-2019, на который также нужно опираться при создании сайта или приложения, доступного для всех пользователей без исключения.

7 наиболее распространенных проблем с цифровой доступностью

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

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

Недостаточный цветовой контраст

Плохая цветовая контрастность — одна из наиболее распространенных проблем цифровой доступности, и она в первую очередь затрагивает пользователей с дальтонизмом, слабым зрением и другими его нарушениями.

WCAG предполагает четкое соотношение контрастности между цветом текста и его фоном. Так, для текста обычного размера минимальное соотношение контрастности — 4,5:1.

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

Наш личный выбор — WebAIM Contrast Checker. Вот как это работает:

1. Введите в HEX-коды или RGB-значения цветов текста и фона.

Скриншот проверки контрастности. Введены цвета переднего плана и фона.
Проверка контрастности WebAim 

2. Затем инструмент рассчитает коэффициент контрастности и определит, соответствует ли он требованиям WCAG.

Скриншот проверки контрастности. Цвет переднего плана #3F3F83 и цвет фона #FFFFFF создают коэффициент контрастности 9.33:1. Это соответствует стандартам WCAG AA и AAA.
Пример хорошего цветового контраста
Скриншот проверки контрастности. Цвет переднего плана #3F3F83 и цвет фона #E06C6C создают коэффициент контрастности 2.9:1. Это не соответствует требованиям WCAG AA и AAA.
Пример плохого цветового контраста

Помимо WebAIM Contrast Checker, можно пользоваться плагином Stark, совместимым с программами Sketch, Adobe XD и Figma. Данный плагин будет особенно полезен дизайнерам, поскольку с его помощью можно проверять контрастность прямо в предпочитаемой вами программе для работы с дизайном.

Еще один ресурс — Accessible Color Palette Builder, который помогает вам с самого начала разрабатывать цветовые схемы, соответствующие требованиям доступности.

Некачественный альтернативный текст или его отсутствие

Альтернативный текст — это описание изображений в Интернете, которое используется в качестве удобочитаемой замены визуального контента в тех случаях, когда пользователи не могут увидеть картинку. Понимание того, как сделать корректный альтернативный текст и правильно его использовать, имеет важное значение для создания более инклюзивной и доступной онлайн-среды.

  • Пишите кратко и по существу: альтернативный текст должен быть длиной до 125 символов, поскольку программы экранного доступа замолкают после прочтения данного объема информации.
  • Опишите содержание изображения: текст должен быть понятным, конкретным и релевантным. Например, вместо использования слово «собака» в качестве альтернативного текста, более подходящим описанием было бы следующее: «Золотистый ретривер играет в мяч в парке».
  • Не добавляйте альтернативный текст на декоративных элементах: для изображений, которые не содержат важной информации или не несут какого-либо смысла, например, декоративных рамок или разделителей, лучше всего использовать пустой alt: alt=»». Благодаря ему программа экранного доступа понимает, что визуальный элемент можно пропустить. Таким образом, пользователь не будет слышать не нужную или сбивающую с толку информацию.
  • Избегайте лишних слов: не начинайте альтернативный текст со слов «изображение» или «картинка». Программы экранного доступа объявляют элемент изображения перед чтением замещающего текста, что делает такие префиксы излишними и потенциально мешающими работе.

Неправильное использование заголовков

Заголовки структурируют ваш контент, делая навигацию по нему более удобной как для зрячих, так и для слепых и слабовидящих пользователей. Чтобы легко и быстро найти нужную информацию, зрячие пользователи обращают внимание на визуальные детали (к примеру, на более крупный размер текста). У слепых пользователей такой возможности нет. Вместо этого они используют навигацию по заголовкам, чтобы быстро переходить к определенным разделам страницы и читать только нужную им информацию.

Существует несколько правил по разметке заголовков:

  • Правильная иерархия: на странице можно использовать только один заголовок первого уровня <h1>, а затем делать заголовки от второго до шестого уровня: <h2> до <h6>.
  • Должны быть добавлены HTML-теги ко всем заголовкам.
  • Заголовки должны точно описывать разделы, к которым они относятся.

Такие ошибки как пропуск уровней заголовков или их использование для оформления, а не структурирования, дезориентируют и сбивают с толку пользователей программ экранного доступа.

Отсутствие возможности использовать сайт при помощи клавиатуры

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

Вот несколько шагов, чтобы сделать сайт доступным для таких пользователей:

  • Используйте корректные HTML-теги для интерактивных элементов на сайте, поскольку они имеют встроенную семантику, которая передает значение элемента (кнопка или флажок) вспомогательным технологиям.
  • Сохраняйте логическую иерархию заголовков и порядок перемещения фокуса, чтобы пользователи могли легко осуществлять навигацию по вашему сайту.
  • Убедитесь, что выпадающие меню доступны с клавиатуры. Например, перемещаться по пунктам меню можно при помощи Tab или клавишами стрелок, а разворачивать и сворачивать меню можно нажатием Enter.
  • Используйте заметные индикаторы фокуса, так как они помогают зрячим пользователям клавиатуры видеть, на каком элементе находится фокус.
  • Разместите ссылки «перейти к основному контенту» вверху веб-страницы, чтобы пользователи клавиатуры могли пропускать блоки навигации и быстро переходить к основному содержимому каждой веб-страницы.

Недоступные формы

Формы часто служат шлюзом для взаимодействия пользователей с веб-сайтом, поэтому крайне важно обеспечить полную доступность элементов форм.

Рассмотрим распространенные проблемы, связанные с доступностью форм:

  • Непонятные названия полей форм или их отсутствие. Четкие названия полей упрощают и ускоряют заполнение форм. Благодаря понятным названиям пользователям программ экранного доступа и людям с когнитивными нарушениями легче понять, какую информацию нужно ввести в поле. Например, одно из полей называется просто «Имя». Не совсем понятно, нужно ли написать только имя или ФИО. Гораздо понятнее, если у полей будут более конкретные названия, такие как «Введите свое ФИО». Если вы хотите узнать больше, мы рекомендуем ознакомиться с руководством W3C по маркировке форм.
  • Отсутствие клавиатурной навигации в полях форм. У пользователей, особенно с двигательными нарушениями, которые при навигации полагаются исключительно на клавиатуру, должна быть возможность взаимодействовать с формами только с ее помощью.
  • Неудачная реализация капчи. Данные элементы часто визуальные, соответственно для взаимодействия с ними нужно зрение. Хотя для людей с нарушениями зрения существуют альтернативы, такие как аудио-капча, но их тоже бывает сложно пройти. Поэтому не рекомендуется использовать капчи любого вида. Вместо этого можно рассмотреть альтернативные варианты, такие как Honeypots (специальные программы) или автоматизированные средства проверки, к примеру, Cloudflare Turnstile.
  • Неясный или расплывчатый текст подписи кнопок и полей ввода. Вместо двусмысленных и банальных фраз, например, «Нажмите здесь», лучше использовать конкретные описания, такие как «Загрузить годовой отчет». Это облегчит понимание не только пользователям программ чтения с экрана, но и зрячим.
  • Информация об ошибках передаётся способом, доступным не для всех

Использование цвета для выделения ошибок может оказаться неэффективным, поскольку пользователи с дальтонизмом могут просто не увидеть другой цвет. Вместо изменения цвета границ поля на красный, в сообщении должно быть четко написано, в чем заключается ошибка, например, «Неверный формат электронной почты». Чтобы еще на шаг приблизиться к хорошей доступности форм, вы можете сделать сообщение более подробным: «Неверный формат электронной почты, отсутствует обязательный знак @».

Что еще более важно, сообщения об ошибках должны быть программно привязаны к соответствующему полю формы, чтобы скринридеры озвучивали их правильно и своевременно. Этого можно достичь с помощью атрибута aria-describedby. Ниже пример кода:

<div class="form__name">
  <label for="firstname" data-validation="We need your first name to address you correctly">
    <span class="form__field-name">First name</span>
    <span aria-hidden="true" class="form__required"> (required) </span>
  </label>
  <input
    aria-describedby="firstname-validation" required
    id="firstname"
    name="firstname"
    type="text"
    autocomplete="given-name">
  <small id="firstname-validation" class="form__validation"></small>
</div>

А это сопровождающий код JavaScript, обеспечивающий появление сообщения об ошибке:

const requiredFields = document.querySelectorAll("[required]");
const form = document.querySelector(".js-form");
const summaryBox = document.createElement("div");
const summaryText = document.createElement("p");
const summaryList = document.createElement("ol");

const checkValidity = (event) => {
  event.preventDefault();
  const emptyFields = [];

  requiredFields.forEach((field) => {
    field.setAttribute('aria-invalid', 'false');

    // Check if field is empty
    if (!field.value) {
      field.setAttribute('aria-invalid', 'true');
      emptyFields.push(field.labels[0]);
    }
  });

  if (!emptyFields.length) {
    form.submit();
  } else {
    setSummary(emptyFields);
    setInlineMessage(emptyFields);
  }
};

const setSummary = (fields) => {
  summaryBox.classList.add("form__summary");
  summaryText.textContent = "There was a problem with your submission. The following inputs need attention";

  const listItems = fields.map((field) => {
    return `
      <li>
      <a href="#${field.getAttribute("for")}">${field.querySelector('.form__field-name').textContent}:
      ${field.dataset.validation}</a>
      </li>
    `;
  });

  summaryList.innerHTML = listItems.join("");

  summaryBox.append(summaryText, summaryList);
  summaryBox.setAttribute("tabindex", "0");
  form.prepend(summaryBox);
  summaryBox.focus();
};
 
const setInlineMessage = (fields) => {
  fields.forEach((field) => {
  const message = field.nextElementSibling.nextElementSibling;
  message.textContent = field.dataset.validation;
});
};

form.addEventListener("submit", checkValidity);

Написанный выше код визуально должен выглядеть вот так:

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

Неописательный текст ссылки

Представьте себе, что вы перемещаетесь по веб-сайту, где ценный визуальный контекст недоступен — это является реальностью для многих пользователей программ экранного доступа или с нарушениями зрения. Эти пользователи во многом зависят от описательного текста ссылок для навигации по сайту.

Вот несколько стратегий, которые помогут вам сделать подписи ссылок действительно полезными:

  • Пишите видимые тексты ссылок с учетом контекста. Использование значка или изображения в качестве ссылки без текстовой подписи может запутать пользователя, и ему останется только гадать о предназначении ссылки.
  • Напишите, что будет происходить при нажатии на ссылку, чтобы избежать недопонимания, связанного с функцией той или иной ссылки. Например, «открывается в новой вкладке» или «Загрузить PDF-файл».
  • Предоставьте контекстные описания элементов на сайте: кнопок, флажков и раскрывающихся списков. Такие элементы должны быть помечены соответствующим образом с использованием ARIA-атрибутов. Для некоторых элементов текстовая подпись может загромождать визуальный интерфейс, но для пользователей скринридера её наличие играет важную роль.
  • Убедитесь, что ссылка визуально отличается от обычного текста на сайте. Визуальные подсказки, такие как цветовой контраст и подчеркивания, помогают пользователям находить ссылки даже без использования состояний hover и focus (такая возможность — фундаментальный принцип доступности). Убедитесь, что ссылки выделяются не только цветом, поскольку в таком случае они будут недоступны для посетителей сайта с нарушениями зрения.

Недоступные встроенные документы

Опубликованные на сайте документы, такие как PDF-файлы, должны быть доступны всем без исключения пользователям.

Вот какие шаги можно предпринять, чтобы сделать их доступными:

  • Правильная тэговая разметка. Посредством такой разметки обеспечивается логический порядок в документе, благодаря чему программы экранного доступа могут интерпретировать его содержимое в правильном порядке. Информацию о размещении тегов в PDF-документах можно найти в кратком руководстве по созданию доступных PDF-файлов от Adobe.
  • Альтернативный текст для изображений. Чтобы пользователям программ экранного доступа было понятно, для чего в документ вставлено конкретное изображение, ко всем визуальным материалам в PDF-документе должен быть альтернативный текст.
  • Сохранение текстовых блоков в виде изображений. Перевод текста в графический формат создает дополнительные препятствия для вспомогательных программ. Они не могут изменять размер текста или переформатировать его для использования людьми со слабым зрением, индексировать его для поисковых движков или преобразовывать в речь, что необходимо пользователям программ экранного доступа.

В широко используемых программах, таких как Microsoft Word и Power Point, есть встроенные средства проверки доступности. Этот функционал позволяет выявить распространенные проблемы с доступностью на начальном этапе, но подобные средства могут обнаруживать далеко не все нарушения. Поэтому, помимо автоматизированного тестирования на доступность, всегда рекомендуется проводить тестирование вручную.

Также важно учитывать, что документы в других форматах, например, EPUB, имеют свои особенности и инструменты, связанные с доступностью, на которые также стоит обратить внимание.

Дальнейшие шаги для решения проблем с цифровой доступностью

Каждый человек заслуживает возможности пользоваться вашим сайтом/приложением, а ваш продукт, в свою очередь, заслуживает того, чтобы все пользователи (с инвалидностью или без) оценили его по достоинству. Для достижения этого примите необходимые меры и создайте такое место в сети, где каждый человек будет чувствовать себя желанным гостем. Делая продукт, доступный для всех и каждого, вы не только будете соблюдать требования законодательства, связанные с доступностью, но и поступите верно с точки зрения совести и моральных принципов.

Источник: The A11Y Collective

Поделиться