CSS Academy · Урок

Тестирование доступности: color-contrast и focus

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

Урок 4 из 413 шагов

«Тестирование доступности: color-contrast и focus» — бесплатный урок CSS Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения CSS Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс CSS Academy содержит 4 уроков всего.

Как CSS влияет на доступность

CSS управляет контрастностью цветов, видимостью индикатора фокуса, видимостью элементов (display:none удаляет элемент из дерева доступности) и порядком чтения (визуальное изменение порядка с помощью order во flexbox по сравнению с порядком в DOM). Решения, принятые при создании CSS, напрямую влияют на возможность пользователей с ограниченными возможностями работать с интерфейсом.

Требования WCAG к контрастности цветов

WCAG 2.1 AA требует коэффициент контрастности 4.5:1 для обычного текста и 3:1 для крупного текста (полужирный шрифт от 18px или обычный от 24px). Для AAA требуются коэффициенты 7:1 и 4.5:1 соответственно. Эти коэффициенты сравнивают яркость цвета текста на переднем плане с яркостью цвета фона.

Проверка контрастности в DevTools

Выберите любой текстовый элемент в DevTools → панели стилей. Образец цвета показывает индикатор коэффициента контрастности. Галочка означает успешную проверку, X — ошибку. Палитра цветов показывает на цветовом градиенте линии порогов AA/AAA.

Автоматическое тестирование контрастности

axe-core, Lighthouse и Pa11y автоматически проверяют коэффициенты контрастности всех текстовых элементов. Запускайте axe-core с @axe-core/react во время разработки, чтобы получать предупреждения о контрастности в консоли браузера в режиме реального времени.

Индикаторы фокуса

CSS outline: none или outline: 0 для :focus удаляет стандартное кольцо фокуса браузера, делая навигацию с клавиатуры невидимой. Это критическая проблема доступности. Вместо полного удаления индикаторов фокуса задайте собственный видимый стиль фокуса.

<button autofocus>Keyboard-focused button</button>

:focus-visible и :focus

:focus применяется ко всем событиям получения фокуса, включая щелчки мышью (из-за чего при щелчке появляется видимое кольцо, которое не нравится дизайнерам). :focus-visible применяется только тогда, когда браузер определяет использование навигации с клавиатуры, поэтому пользователи клавиатуры видят кольцо фокуса, а при щелчках мышью оно не появляется.

Требования WCAG к индикаторам фокуса

WCAG 2.2 вводит критерий успеха 2.4.11 (Focus Appearance AA): индикаторы фокуса должны иметь контрастность не менее 3:1 по отношению к соседним цветам и охватывать периметр компонента. Пользовательские стили фокуса должны соответствовать этим требованиям, а не просто присутствовать.

Режим принудительных цветов

Режим высокой контрастности Windows заменяет цвета CSS заданными пользователем системными цветами. Используйте @media (forced-colors: active), чтобы задать альтернативные стили, работающие в режиме высокой контрастности. Проверьте их через «Параметры Windows» → «Специальные возможности» → «Высокая контрастность».

Цвет как единственный индикатор

WCAG 1.4.1 запрещает использовать цвет как единственный способ передать информацию. Состояние ошибки, обозначенное только красным цветом, не соответствует этому критерию. Объединяйте цвет со значками, текстовыми подписями, узорами или подчёркиванием, чтобы информация, не зависящая от цвета, всегда присутствовала.

Изменение размера и интервала текста

WCAG 1.4.4 требует, чтобы размер текста можно было увеличить до 200% без потери содержимого. WCAG 1.4.12 требует, чтобы изменение интервала текста (увеличение межбуквенного интервала и межстрочного интервала) не нарушало вёрстку. Используйте относительные единицы (rem, em) для типографики, чтобы выполнить оба требования.

Набор инструментов тестирования

Комплексное тестирование доступности CSS включает браузерное расширение axe DevTools для разработки, Lighthouse CI для автоматических проверок конвейера, Pa11y для проверок страниц из командной строки и ручное тестирование навигации с клавиатуры с помощью Tab/Shift+Tab для проверки видимости и порядка индикаторов фокуса.

Проверка знаний

Почему outline: none не должно быть окончательным CSS-правилом для состояния :focus элемента?

Резюме

Тестирование доступности CSS охватывает коэффициенты контрастности цветов (минимум 4.5:1 для AA), видимые индикаторы фокуса, соответствующие WCAG 2.2, с использованием :focus-visible, отказ от цвета как единственного способа передачи информации, поддержку режима forced-colors и относительные единицы типографики для соответствия требованиям изменения размера. Автоматические инструменты в сочетании с ручным тестированием клавиатуры обеспечивают комплексное покрытие.

Можно начать бесплатно

Изучай CSS с ИИ-репетитором — бесплатно

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

Курсы
40
Уроки
159

Часто задаваемые вопросы

Урок «Тестирование доступности: color-contrast и focus» бесплатный?

Да — полный текст урока «Тестирование доступности: color-contrast и focus» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс CSS Academy, подпишись на CoddyKit PRO. Курс CSS Academy содержит 4 уроков всего.

Чему я научусь в уроке «Тестирование доступности: color-contrast и focus»?

Проверяйте коэффициенты цветового контраста и убеждайтесь, что индикаторы фокуса соответствуют стандартам доступности WCAG. Ты практикуешь CSS Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать CSS Academy?

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

Сколько времени занимает урок «Тестирование доступности: color-contrast и focus»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке CSS Academy?

Да. Каждый урок CSS Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы визуального регрессионного тестирования
  2. Percy и Chromatic для Storybook
  3. Модульное тестирование CSS с Jest
  4. Тестирование доступности: color-contrast и focus
← Назад к CSS Academy