Доступность
Доступность веб-сайтов (также известная как a11y) относится к практике создания веб-сайтов, которыми может пользоваться кто угодно — будь то человек с ограниченными возможностями, медленным соединением, устаревшим или сломанным оборудованием или просто человеком, находящимся в неблагоприятной среде. Например, добавление субтитров к видео поможет как глухим и слабослышащим пользователям, так и пользователям, которые находятся в шумной обстановке и не слышат свой телефон. Точно так же проверка того, что ваш текст не слишком контрастен, поможет как пользователям с плохим зрением, так и пользователям, которые пытаются использовать свой телефон при ярком солнечном свете.
Skip link
Пропускающая ссылка
Вам следует добавить ссылку вверху каждой страницы, которая ведет непосредственно к основной области содержимого, чтобы пользователи могли пропускать контент, повторяющийся на нескольких веб-страницах.
Обычно это делается в верхней части, App.vue поскольку это будет первый фокусируемый элемент на всех ваших страницах
Чтобы скрыть ссылку, если она не находится в фокусе, вы можете добавить следующий стиль
Как только пользователь изменит маршрут, верните фокус на ссылку пропуска. Этого можно добиться, вызвав фокус по ссылке на шаблон ссылки пропуска (при условии использования vue-router)
Структура контента
Одним из наиболее важных аспектов доступности является обеспечение того, чтобы дизайн мог поддерживать доступную реализацию. При дизайне следует учитывать не только цветовой контраст, выбор шрифта, размер текста и язык, но также то, как структурирован контент в приложении.
# Заголовки
Пользователи могут перемещаться по приложению с помощью заголовков. Наличие описательных заголовков для каждого раздела вашего приложения упрощает пользователям прогнозирование содержимого каждого раздела
Когда дело доходит до заголовков, есть несколько рекомендуемых практик обеспечения доступности:
- Вложите заголовки в порядке ранжирования: h1 - h6
- Не пропускайте заголовки внутри раздела
- Используйте настоящие теги заголовков вместо стилизации текста, чтобы придать заголовкам визуальный вид.
- Подробнее о заголовках
# Landmarks
Ориентиры обеспечивают программный доступ к разделам приложения. Пользователи, которые полагаются на вспомогательные технологии, могут переходить к каждому разделу приложения и пропускать контент. Чтобы добиться этого, вы можете использовать роли ARIA
Рекомендация
Рекомендуется использовать HTML-элементы ориентира с избыточными атрибутами роли ориентира, чтобы обеспечить максимальную совместимость с устаревшими браузерами, которые не поддерживают семантические элементы HTML5 .
Семантические формы
При создании формы вы можете использовать следующие элементы: form, label, input, textarea и button
Метки обычно размещаются сверху или слева от полей формы
Обратите внимание, как вы можете включить autocomplete='on' элемент формы, и он будет применяться ко всем входным данным в вашей форме. Вы также можете установить разные значения атрибута автозаполнения для каждого ввода
# Labels
Предоставьте метки, описывающие цель всех элементов управления формой; связывание for и id
Если вы проверите этот элемент в инструментах разработчика Chrome и откроете вкладку «Доступность» на вкладке «Элементы», вы увидите, как входные данные получают свое имя из метки

# aria-label
Вы также можете дать вводу доступное имя с помощью aria-label
Не стесняйтесь проверить этот элемент в Chrome DevTools, чтобы увидеть, как изменилось доступное имя

# aria-labelledby
Использование aria-labelledby аналогично , aria-label за исключением того, что оно используется, если текст метки виден на экране. Он связан с другими элементами по их признаку, id и вы можете связать несколько id элементов

# aria-describedby
aria-describedby используется так же как и aria-labelledby за исключением того, что предоставляет описание с дополнительной информацией, которая может понадобиться пользователю. Это можно использовать для описания критериев для любого ввода
Вы можете увидеть описание, проверив Chrome DevTools

Placeholder
Избегайте использования заполнителей, поскольку они могут сбить с толку многих пользователей
Одна из проблем с заполнителями заключается в том, что они по умолчанию не соответствуют критериям цветового контраста ; исправление цветового контраста делает заполнитель похожим на предварительно заполненные данные в полях ввода. Глядя на следующий пример, вы можете увидеть, что заполнитель «Фамилия», соответствующий критериям цветового контраста, выглядит как предварительно заполненные данные

Лучше всего предоставить всю информацию, необходимую пользователю для заполнения форм, вне каких-либо входных данных
# инструкции
Добавляя инструкции для полей ввода, обязательно правильно свяжите их с вводом. Вы можете предоставить дополнительные инструкции и связать несколько идентификаторов внутри файла aria-labelledby. Это позволяет создать более гибкую конструкцию
Альтернативно вы можете прикрепить инструкции к входным данным с помощью aria-describedby
# Скрытие контента
Обычно не рекомендуется визуально скрывать метки, даже если вход имеет доступное имя. Однако, если функциональность ввода можно понять с учетом окружающего контента, мы можем скрыть визуальную метку
Давайте посмотрим на это поле поиска
Мы можем сделать это, потому что кнопка поиска поможет визуальным пользователям определить назначение поля ввода.
Мы можем использовать CSS, чтобы визуально скрыть элементы, но оставить их доступными для вспомогательных технологий:
# aria-hidden="true"
При добавлении aria-hidden="true" элемент будет скрыт от вспомогательных технологий, но останется визуально доступным для других пользователей. Не используйте его для фокусируемых элементов, а только для декоративного, дублированного или закадрового контента.
Кнопки
При использовании кнопок внутри формы необходимо установить тип, чтобы предотвратить отправку формы. Вы также можете использовать ввод для создания кнопок
Функциональные изображения
Вы можете использовать эту технику для создания функциональных изображений
Эти изображения будут действовать как кнопка типа отправки в формах
Иконки
Стандарты
Инициатива веб-доступности (WAI) Консорциума Всемирной паутины (W3C) разрабатывает стандарты веб-доступности для различных компонентов:
- Рекомендации по обеспечению доступности агентов пользователя (UAAG) веб-браузеры и медиаплееры, включая некоторые аспекты вспомогательных технологий
- Рекомендации по обеспечению доступности средств разработки (ATAG) авторские инструменты
- Рекомендации по обеспечению доступности веб-контента (WCAG) веб-контент — используется разработчиками, инструментами создания и инструментами оценки доступности.
Пользователи
Резюме
По оценкам Всемирной организации здравоохранения, 15% населения мира имеют ту или иную форму инвалидности, из них 2-4% — тяжелую. По оценкам, это 1 миллиард человек во всем мире; что делает людей с ограниченными возможностями крупнейшим меньшинством в мире.
Существует огромный спектр инвалидностей, которые можно условно разделить на четыре категории
- Визуализация . Эти пользователи могут извлечь выгоду из использования программ чтения с экрана, увеличения экрана, управления контрастностью экрана или дисплея Брайля.
- Аудиальная аудитория . Этим пользователям могут быть полезны субтитры, стенограммы или видео на языке жестов.
- Двигатель . Эти пользователи могут воспользоваться рядом вспомогательных технологий при двигательных нарушениях : программное обеспечение для распознавания голоса, отслеживание глаз, доступ с помощью одного переключателя, головная палочка, переключатель для глотка и затяжки, большая мышь с трекболом, адаптивная клавиатура или другие вспомогательные технологии.
- Когнитивная деятельность . Эти пользователи могут извлечь выгоду из дополнительных средств массовой информации, структурной организации контента, ясного и простого письма.
Ознакомьтесь со следующими ссылками из WebAim, чтобы понять мнение пользователей