Один из моих любимых инструментов тестирования доступности: клавиша TAB |
02.04.2021 00:00 |
Автор: Мануэль Матюшович (Manuel Matuzovic) Я работаю на компанию около года, и многое тут отличается от фриланса. В частности, мне регулярно нужно оценивать доступность различных сторонних инструментов. На полный аудит обычно нет времени, поэтому мне нужно получить хорошее представление о качестве продукта как можно быстрее. Я уже писал о 6 вещах, которые я проверяю на каждом сделанном мною сайте, но сейчас я хочу поговорить об одном из самых мощных тест-инструментов – клавише Tab. Допустим, вам удалось набрать 100 в аудите доступности Lighthouse. Это необязательно значит, что у вашего сайта хорошая доступность – вы просто заложили основу для настоящего тестирования. Следующий шаг – убрать мышь и пройтись по вашему сайту при помощи клавиатуры. Вот что клавиша Tab может рассказать вам о вашем сайте: 1. Стили фокуса Нажав клавишу Tab, видите ли вы, какой элемент на странице подсвечен? Нет? Используйте :focus{ }, :focus-within{ }, или :focus-visible{ }, чтобы стилизовать элементы в фокусе. Отличная стилизация фокуса на сайте Carie Fishers. a:focus { Узнать больше о стилях фокуса 2. Интерактивные элементы Можете ли вы добраться до интерактивных элементов – ссылок, кнопок, элементов форм, кнопок видео? Нет? Поработайте над вашим HTML. Возможно, вы используете только <div>, <span>, <svg> там, где надо использвоать <input>, <button> или <a>. Не используйте div для кнопок. Эти фальш-кнопки недоступны пользователям клавиатуры и экранных дикторов. <div class="btn"> Вместо этого делайте так: <button class="btn"> Узнать больше о ссылках и кнопках 3. Реальные кнопки Вы можете нажать на кнопку, но по нажатию на Enter или Space ничего не происходит? Возможно, это все же ненастоящая <button> или <input type="button">. Фальшивые кнопки могут быть достижимы по Tab, и вы можете поменять их семантику, но ключевые события по умолчанию доступны только для реальных кнопок: <div tabindex="0" role="button"> Вместо этого делайте так: <button class="btn"> Узнать больше про кнопки 4. Скип-линки Нужно ли переходить по tab через кучу элементов, чтобы достичь определенной части интерфейса? Возможно, стоит внедрить скип-линки. Скип-линк на сайте Tatiana Mac. Узнать больше о скип-линках 5. Управление фокусом Вы нажали на кнопку, и выскочило модальное или диалоговое окно. Можно ли сразу перейти к его содержанию? Нет? Возможно, нужно переключать фокус с кнопки на окно. function showModal() { 6. Бесконечный скролл У вас есть футер, но в него нельзя перейти при помощи Tab, потому что у вас внедрен бесконечный скролл? Сожгите его немедленно! Узнать больше о бесконечном скролле 7. Элементы вне экрана Не исчезает ли индикатор фокуса в ходе ваших переходов? Возможно, вы фокусируетесь на элементах вне экрана. Их надо правильно прятать. height: 0, transform: translateX(-100%) не спрячет элемент от Tab, а вот display: none; спрячет. 8. DOM-порядок Не пропускает ли индикатор фокуса множество всего? В большинстве случаев это вызвано тем, что визуальный порядок не соответствует DOM-порядку. Постарайтесь не перемешивать логический контент, и не используйте значения выше 0 в атрибуте thetabindex. Узнать больше о порядке источника 9. Кастомные JS-компоненты С клавиатуры доступны только какие-то участки ваших JS-компонентов? Прочитайте практики WAI-ARIA, чтобы узнать, как правильно создавать общие шаблоны и сделать их доступными для всех. Кнопка TAB прекрасна Вам не нужно знать ПО, чтобы тестировать доступность – кнопка Tab многое расскажет вам о качестве вашего сайта. Тут есть еще что проверить, но тестирование с клавиатуры делает вас на шаг ближе к доступному сайту. |