Доступность для управления с клавиатуры
Чтобы веб-страница была полностью доступна, ею должен управлять тот, кто использует для доступа к ней только клавиатуру . Сюда входят пользователи скринридеров, но также могут входить пользователи, у которых возникают проблемы с управлением указывающим устройством, таким как мышь или трекбол, или у которых мышь в данный момент не работает, или которые предпочитают использовать клавиатуру , когда это возможно.
Фокусируемые элементы должны иметь интерактивную семантику
Если элемент можно сфокусировать с помощью клавиатуры, то он должен быть интерактивным; то есть пользователь должен иметь возможность что-то с ним сделать и произвести какое-либо изменение (например, активировать ссылку или изменить параметр).
[!ПРИМЕЧАНИЕ] Одним из важных исключений из этого правила является случай, когда к элементу применяется
role="document", *внутри ** интерактивного контекста (напримерrole="application"). В таком случае фокусировка на вложенном документе является единственным способом вернуть вспомогательную технологию в неинтерактивное состояние (часто называемое «режим обзора»).
Большинство интерактивных элементов по умолчанию являются фокусируемыми; вы можете сделать элемент фокусируемым, добавив к нему значение атрибута tabindex=0. Однако вам следует добавлять tabindex только в том случае, если вы также сделали элемент интерактивным, например, определив соответствующие обработчики событий клавиатуры.
Смотрите также
- tabindex глобальный атрибут HTML
- Элемент: событие onkeydown
- Элемент: событие onkeyup
Избегайте использования положительных значений атрибута tabindex
Атрибут tabindex указывает на то, что элемент можно сфокусировать с помощью клавиатуры. Нулевое значение указывает на то, что элемент является частью порядка фокусировки по умолчанию, который основан на порядке расположения элементов в HTML-документе. Положительное значение ставит элемент перед элементами в порядке по умолчанию; элементы с положительными значениями фокусируются в порядке значений атрибута tabindex (1, затем 2, затем 3 и т.д.).
Это создаёт путаницу для пользователей, использующих только клавиатуру, когда порядок фокусировки отличается от логического порядка страницы. Лучшей стратегией является структурирование HTML-документа таким образом, чтобы фокусируемые элементы располагались в логическом порядке, без необходимости изменять их порядок при помощи положительных значений атрибута tabindex.
Смотрите также
- tabindex глобальный атрибут HTML
- Понимание порядка фокусировки (англ.)
- Не используйте значение tabindex больше 0 (англ.)
Элементы, на которые можно нажимать, должны быть фокусируемыми и иметь интерактивную семантику
Если на элементе можно щёлкнуть с помощью указывающего устройства, такого как мышь, то он также должен быть фокусируемым с помощью клавиатуры, и пользователь должен иметь возможность что-то делать, взаимодействуя с ним.
Элемент управляем с помощью указывающих устройств, если для него определён обработчик события onclick. Вы можете сделать его фокусируемым, добавив к нему значение атрибута tabindex=0. Вы можете сделать его доступным для работы с клавиатуры, определив обработчик событий onkeydown; в большинстве случаев действие, выполняемое обработчиком событий, должно быть одинаковым для обоих типов событий.
Смотрите также
- tabindex глобальный атрибут HTML
- Элемент: событие onkeydown
- Элемент: событие onkeyup
Интерактивные элементы должны активироваться с помощью клавиатуры
Если пользователь может взаимодействовать с элементом с помощью сенсорного интерфейса или указывающего устройства, то элемент также должен поддерживать взаимодействие с клавиатуры. То есть, если вы определили обработчики событий для касания или щелчка, вы также должны определить их для событий клавиатуры. Обработчики событий клавиатуры должны обеспечивать то же взаимодействие, что и обработчики касания или щелчка.
Смотрите также
- Элемент: событие onkeydown
- Элемент: событие onkeyup
Интерактивные элементы должны быть фокусируемыми
Если пользователь может взаимодействовать с элементом (например, с помощью сенсорного интерфейса или указывающего устройства), то он должен быть фокусируемым с помощью клавиатуры. Вы можете сделать его фокусируемым, добавив к нему значение атрибута tabindex=0. Это добавит элемент в список элементов, которые можно сфокусировать, нажав клавишу Tab, в последовательности, определённой в HTML-документе.
Смотрите также
- tabindex глобальный атрибут HTML
Фокусируемый элемент должен иметь стиль фокусировки
Любой элемент, который может получать фокусировку с клавиатуры, должен иметь видимый стиль, указывающий, когда элемент находится в фокусе. Вы можете сделать это с помощью псевдокласса CSS :focus.
Стандартным фокусируемым элементам, таким как ссылки и поля редактирования, браузер по умолчанию присваивает специальный стиль, поэтому вам может не понадобиться указывать стиль фокусировки для таких элементов, если только вы не хотите, чтобы стиль фокусировки был более характерным.
Если вы создаёте свои собственные фокусируемые компоненты, убедитесь, что вы также определили для них стиль фокусировки.