Найти в Дзене
USABILITYLAB

Чек-лист для проверки доступности сайта/приложения

Оригинал статьи: http://accessibility.voxmedia.com/

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

Дизайнерам

  • Убедитесь, что текст достаточно контрастный относительно фона

Согласно WCAG (Руководству по обеспечению доступности веб-контента), соотношение контрастов между текстом и фоном должно быть как минимум 4.5 к 1. Если у вас шрифт размера от 24px или жирный шрифт размера от 19 px, то достаточно соотношения 3 к 1 по контрастности (хотя всегда нужно проверять опытным путем, насколько четко читается текст: иногда размер шрифта в цифрах совершенно не соответствует визуальному восприятию его размера). С особенной осторожностью размещайте текст поверх изображений.
Источник:
Salesforce UX

  • Не полагайтесь только на цвет, если нужно передать важное сообщение

Некоторые люди не различают цвета. Поэтому, если вы хотите создать удобный и универсальный интерфейс, не используйте цвет как единственный индикатор для передачи информации. Можно добавить кроме цвета иконку, подчеркивание или подпись.
Источник:
UCLA

  • Для создания контраста, учитывайте не только оттенки цветов, но и их значения (value)

Если взять два оттенка и сравнить их значения (value) без учета цвета (например, в ч/б), они часто выглядят очень похоже. Если вы хотите повысить контрастность, сочетайте не только разные оттенки, но и разные value цветов.
Источник:
UCLA

  • Важную информацию не стоит передавать посредством одного только цвета, изображения или другой сенсорной характеристики

Изображение, форма, размер, положение в пространстве, ориентация, цвет — все это сенсорные характеристики. В то же время, не всем пользователям доступны все эти характеристики в полной мере. Кто-то не различает цвета, кто-то не знает, какие объекты на ощупь, а кто-то иначе ориентируется в пространстве.
Если для понимания информации необходимы какие-то дополнительные материалы, убедитесь, что они передаются не только посредством одной из сенсорных характеристик, но и как-то еще. Например, вместо того, чтобы писать в тексте: “Сравните правильный и неправильный примеры на рисунке ниже”, можно расписать ключевые отличия текстом, обозначить правильный и неправильный варианты цветом и еще добавить к рисунку подробную подпись.
Источник:
W3C

  • Проектируйте выделенные состояния так, чтобы пользователю было понятно, где он и куда двигаться дальше

Выделенное состояние объекта должно быть заметным и очевидным. Люди, которые используют для навигации клавиатуру, должны понимать, какой объект сейчас “в фокусе” и куда от него можно перейти.
Источник:
W3C

  • Помогите пользователю заполнить форму без ошибок, а при необходимости — исправить

Названия полей не должны совсем пропадать из виду, даже если курсор уже стоит внутри поля. Пользователи должны четко понимать, что нужно ввести в каждое поле и в каком формате. В сообщении об ошибке нужно не только пояснить ошибку, но и рассказать, как ее исправить. И да — не обозначайте ошибки только цветом, помните? Добавьте иконку или пояснение текстом.  
Источник:
W3C

  • Напишите нормальные alt-тексты для картинок

Слабовидящие пользователи буквально “читают” интернет: они пользуются специальными браузерами с функцией “проговаривания”, которая буквально озвучивает пользователю все тексты на странице.

Когда такой “говорящий” браузер видит картинку, он ищет прописанный для нее alt-текст и читает его вслух. Если alt-текста нет, браузер просто говорит “картинка” — и пользователю остается только гадать, что на этой картинке.

При составлении alt-текста, постарайтесь описать ключевые элементы картинки и что на ней происходит. Если на рисунке текст, опишите в какой он форме и перепечатайте сам текст: например, “на белой доске маркером написана цитата «Это цитата»”.
Источник:
WebAim: The Basics of Good Alt Text

  • Если процесс нельзя сделать доступным, продумайте запасной путь к той же информации

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

  • Тексты и лейауты должны быть максимально чистыми и согласованными

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

Разработчикам

  • Используйте HTML-элементы, соответствующие вашему контенту

HTML-элементы “сообщают” браузеру, что за контент в них содержится и как этот контент нужно отображать и обрабатывать. Дерево доступности — это функция браузера, которая обеспечивает совместимость с устройствами чтения с экрана. При построении дерева доступности, мы отталкиваемся от структуры страницы. Выбор правильного элемента в правильном контексте — это самых простой способ обеспечить доступность всем пользователям.
Источник:
WebAIM

  • Поддерживайте навигацию через клавиатуру

В браузерах можно легко перемещаться между ссылками, полями и кнопками при помощи клавиши Tab. Однако разработчики иногда неосознанно ломают эту функциональность: например, когда используют CSS для изменения порядка элементов, или когда прячут элементы из tab flow (к примеру, создавая ложные кнопки c Java Script или отключая функцию tab через tabindex=”-1”). Еще бывает наоборот — разработчики прячут какие-то элементы формы, но забывают убрать из tab flow: тогда скрытые элементы формы можно выбрать переключившись на них через tab.
Источник:
WebAIM

  • Поймите и используйте ориентиры HTML

Возможно, пользователи вспомогательных устройств не хотят изучать ваш контент линейно, а предпочитают посмотреть схему страницы и найти сразу то, что их интересует. Ориентиры помогают обозначить конкретные области (например, “главная”, “форма”, “навигация”) и упрощают поиск нужного раздела.
Источник:
A List Apart

  • Напишите нормальные alt-тексты для картинок

Слабовидящие пользователи буквально “читают” интернет: они пользуются специальными браузерами с функцией “проговаривания”, которая буквально озвучивает пользователю все тексты на странице.

Когда такой “говорящий” браузер видит картинку, он ищет прописанный для нее alt-текст и читает его вслух. Если alt-текста нет, браузер просто говорит “картинка” — и пользователю остается только гадать, что на этой картинке.

При составлении alt-текста, постарайтесь описать ключевые элементы картинки и что на ней происходит. Если на рисунке текст, опишите в какой он форме и перепечатайте сам текст: например, “на белой доске маркером написана цитата «Это цитата»”.
Источник:
WebAim: The Basics of Good Alt Text

  • Проектируйте выделенные состояния так, чтобы пользователю было понятно, где он и куда двигаться дальше

Выделенное состояние объекта должно быть заметным и очевидным. Люди, которые используют для навигации клавиатуру, должны понимать, какой объект сейчас “в фокусе” и куда от него можно перейти.
Источник:
W3C

  • Помогите пользователю заполнить форму без ошибок, а при необходимости — исправить

Названия полей не должны совсем пропадать из виду, даже если курсор уже стоит внутри поля. Пользователи должны четко понимать, что нужно ввести в каждое поле и в каком формате. В сообщении об ошибке нужно не только пояснить ошибку, но и рассказать, как ее исправить. И да — не обозначайте ошибки только цветом, помните? Добавьте иконку или пояснение текстом.  
Источник:
W3C

  • Используйте атрибуты ARIA, где это уместно

ARIA — это набор специальных атрибутов для обеспечения доступности. Это необязательная, но полезная спецификация для определения разметки HTML, при динамическом взаимодействии (обычно JavaScript).
Атрибуты ARIA помогают “объяснить” браузеру и вспомогательным устройствам, как будет меняться динамический контент и в чем его назначение. Динамические сообщения об ошибке можно вывести на читалку с экрана, кнопки можно связать с соответствующим контентом — в общем, многие полезные состояния можно выразить на уровне кода.  
Источник:
W3C Guide to Using Aria

  • Дайте пользователям возможность пропустить навигацию верхнего уровня для доступа к основному контенту

Людям, которые используют клавиатуру для навигации, часто приходится проходить через все навигационное меню, чтобы наконец-то добраться до контента на странице. Чтобы избавить их от этой необходимости, обычно используют специальную кнопку вверху страницы (ее видно только в активном состоянии). По клику на эту кнопку, пользователь сразу переходит к содержимому страницы.
Источник:
WebAIM

  • Сделайте тексты ссылок полезными

Вспомогательные устройства умеют находить все ссылки на странице и представлять их пользователю в разных формах. Но все это совершенно бесполезно для пользователя, если текст ссылки звучит как “нажми сюда”. Сделайте тексты ссылок полезными, чтобы пользователи сразу понимали, на что они кликают и что произойдет дальше.
Источник:
Smashing Magazine

  • Не используйте в качестве псевдоэлементов картинки и иконки

Вспомогательные технологии “ищут” контент, который нужно представить пользователю, в HTML. В CSS можно создавать псевдоэлементы, но к ним пока нельзя добавлять alt-текст, так что если вы используете в качестве псевдоэлементов картинки или иконки, пользователи вспомогательных технологий “упустят” этот контент.
Источник:
Simply Accessible

  • Позаботьтесь, чтобы вспомогательные технологии воспринимали SVG-шки

SVG-графику часто используют для иконок в интерактивных элементах на сайтах. В этих случаях, у каждой SVG-иконки должен быть тайтл или встроенный текст (который обычно скрыт от глаз пользователей, но его видят вспомогательные технологии).
Источник:
Sitepoint

  • Спрячьте от читалок декоративные элементы
    Декоративные элементы — это разделительные линии, значки цитат, неинформативные иконки и другие украшения. Все их можно спрятать от читалок: тогда слабовидящие пользователи будут взаимодействовать только с полезным контентом на странице, не отвлекаясь на декорации, которые они все равно не могут оценить. Чтобы скрыть элемент, добавьте к нему aria-hidden=”true”
    Источник:
    W3C
  • Если процесс нельзя сделать доступным, продумайте запасной путь к той же информации
    Некоторые элементы интерфейса (например, интерактивную карту) сложно сделать доступными. В таких случаях лучше предложить пользователям альтернативный вариант той же функциональности. Или хотя бы описать текстом все детали процесса, которым они не могут воспользоваться.
  • Ссылки должны визуально выделяться и иметь понятные выделенные (:focus) и активные (:active) состояния
    По внешнему виду ссылки должно быть сразу понятно, что она в выделенном или активном состоянии. Это очень полезная штука для пользователей, которые не могут использовать мышь и курсор — или плохо видят.
    Источник:
    WebAIM
  • В HTML-документе должен быть атрибут языка
    Атрибут lang в используется для определения языка, на котором написан текст. Благодаря этому поисковые машины выдают по запросу пользователя релевантные результаты на нужном языке. А еще благодаря этому атрибуту читалка может автоматически переключиться на правильный язык и прочитать текст с нужным акцентом и пунктуацией. Пример атрибута —  <html lang="en">
    Источник:
    Paciello Group

Менеджерам проектов

  • Вникните в тему доступности веб-контента

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

  • При планировании проекта и спринтов, заложите время на проработку доступности

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

  • Подчеркивайте важность доступности среди прочих достижений команды

Нам нравится, когда наша работа нравится. Обычно хвалят то, что сразу видно: красивый дизайн, чистый код, быстрые переходы, продуманные процессы. В таких случаях, всегда подчеркивайте работу команды по обеспечению доступности контента. Расскажите собеседникам о контрасте, умной навигации с клавиатуры, понятных текстах и иерархии.

  • Создавайте доступные продукты и инструменты

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

  • Станьте адвокатом доступности

Объясните своей команде и всем заинтересованным лицам, почему доступность — это важно и зачем ее прорабатывать на всех этапах проекта. А ответ прост: доступность делает наши продукты — и нас самих — лучше.

Тестировщикам

  • Прогоняйте каждую страницу через расширение WAVE для Chrome.

Это, возможно, не идеальный инструмент, но он дает хорошую основу при выявлении недочетов доступности.

  • Пользователи должны иметь возможность ходить по сайту через клавиатуру.

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

  • Должна быть возможность перемещаться по контенту при помощи читалки.

Для этого неплохо работает встроенный эппловский Voice Over. В инструмент встроен тьюториал по использованию.

  • Убедитесь, что у контента адекватная архитектура и иерархия.

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

  • У всех графиков и картинок должен быть alt-текст, чтобы пользователи читалок или посетители с плохим интернетом понимали, что там на картинках.
  • Декоративные элементы должны быть скрыты для читалок с экрана.

Редакторам

  • Напишите нормальные alt-тексты для картинок

Слабовидящие пользователи буквально “читают” интернет: они пользуются специальными браузерами с функцией “проговаривания”, которая буквально озвучивает пользователю все тексты на странице.

Когда такой “говорящий” браузер видит картинку, он ищет прописанный для нее alt-текст и читает его вслух. Если alt-текста нет, браузер просто говорит “картинка” — и пользователю остается только гадать, что на этой картинке.

При составлении alt-текста, постарайтесь описать ключевые элементы картинки и что на ней происходит. Если на рисунке текст, опишите в какой он форме и перепечатайте сам текст: например, “на белой доске маркером написана цитата «Это цитата»”.
Источник:
WebAim: The Basics of Good Alt Text

  • Инженерам-редакторам: подумайте, как сделать доступными интерактивные штуки

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

Иногда просто не хватает времени или ресурсов, чтобы сделать определенные компоненты доступными. В таких случаях имеет смысл проработать дополнительные flow, которыми могут пойти пользователи читалок с экрана. Ну или программа минимум — описать все происходящее в интерактивных элементах в формате alt-текста.

  • Выражайтесь предельно кратко и четко

Пишите понятные тексты
Избегайте жаргона и фразеологизмов
Добавляйте заголовки, чтобы организовать информацию
Источник:
Interactive WCAG 2.0

  • Сделайте тексты ссылок полезными

Вспомогательные устройства умеют находить все ссылки на странице и представлять их пользователю в разных формах. Но все это совершенно бесполезно для пользователя, если текст ссылки звучит как “нажми сюда”. Сделайте тексты ссылок полезными, чтобы пользователи сразу понимали, на что они кликают и что произойдет дальше.
Источник:
Smashing Magazine

  • Важную информацию не стоит передавать посредством одного только цвета, изображения или другой сенсорной характеристики

Изображение, форма, размер, положение в пространстве, ориентация, цвет — все это сенсорные характеристики. В то же время, не всем пользователям доступны все эти характеристики в полной мере. Кто-то не различает цвета, кто-то не знает, какие объекты на ощупь, а кто-то иначе ориентируется в пространстве.

Если для понимания информации необходимы какие-то инструкции, убедитесь, что они даются не только посредством одной из сенсорных характеристик, но и как-то еще. Например, вместо того, чтобы писать в тексте: “Сравните правильный и неправильный примеры на рисунке ниже”, можно расписать ключевые отличия текстом, обозначить правильный и неправильный варианты цветом и еще добавить к рисунку подробную подпись.
Источник:
Sensory Characteristics

Инструменты

Эти инструменты помогут усилить доступность ваших проектов:

Руководство по обеспечению доступности веб-контента (WCAG 2.1) — там можно посмотреть примеры использования

Расширение WAVE для Chrome поможет проверить доступность всех ваших продуктов

Сервис для проверки веб-доступности вашего продукта

Color Contrast Analyzer — приложение для анализа контрастности цвета

Accessible Color Palette Evaluator — автоматически проверяет комбинации цвета на соотношение контрастности

Color Extractor Bookmarklet ищет все цвета в CSS и загружает их в Color Palette Evaluator

Color Safe делает доступные цветовые палитры

Color Oracle позволяет симулировать дальтонизм

Sim Daltonism позволяет симулировать дальтонизм

Инструмент для проверки читаемости текста поверх изображений