edubun
Русский

Цветовой контраст

Светло-серый #999999 на белом даёт коэффициент контрастности 2.85:1, намного меньше 4.5:1, которых WCAG 2.2 требует для основного текста.

Загружается 3D-модель

Перетащи, чтобы повернуть. Колёсико или щипок для масштаба.

Цвет текста сначала #999999 на белом фоне. Потяни ползунок «Светлота» вниз и посмотри, как коэффициент переходит через 4.5:1, а затем 7:1. Результаты записаны и словами, и числами.

Почему важен контраст

Бледный на своём фоне текст трудно читать людям со слабым зрением, многим пожилым читателям и всем, кто смотрит в телефон на солнце. WCAG 2.2 не оставляет «бледность» на вкус. Стандарт измеряет относительную яркость двух цветов, число от 0 для чёрного до 1 для белого, и сравнивает их через коэффициент контрастности (L1 + 0.05) / (L2 + 0.05), где L1 является более светлым цветом. Результат лежит от 1:1 (цвет на самом себе) до 21:1 (чёрный на белом). В курсе теории цвета формула разобрана по шагам; здесь мы её применяем.

Какие числа нужны

Критерий успешного применения 1.4.3 «Контрастность (минимальные требования)» уровня AA требует не меньше 4.5:1 для обычного текста и 3:1 для крупного, а крупным WCAG считает текст от 18 пунктов или от 14 пунктов полужирным. Критерий 1.4.6 уровня AAA поднимает эти значения до 7:1 и 4.5:1. Критерий 1.4.11 «Контрастность нетекстовой информации» требует 3:1 для тех частей элементов управления и графики, которые людям нужно видеть, например рамки текстового поля или линий графика. Логотипы и текст, который служит только украшением или входит в неактивный элемент управления, освобождены от требований.

Пять цветов текста на белом и их коэффициенты контрастности по формуле WCAG 2.2. #999999 не проходит, #767676 еле проходит AA, #595959 проходит AAA.

Несколько значений стоит запомнить. Серый #767676 даёт 4.54:1 на белом, и его часто называют самым светлым простым серым, который проходит AA; #777777 даёт 4.48:1 и не проходит. Более тёмный #595959 достигает 7.00:1 и проходит AAA. Насыщенные цвета обманчивы: чистый красный #ff0000 на белом даёт всего 4.00:1, а более глубокий красный #c01c28 достигает 6.11:1. Частая ошибка встречается в тексте-подсказке внутри полей формы, потому что дизайнеры нередко нарочно делают его очень светлым.

Как проверять цвета на практике

Считать формулу вручную приходится редко. Если исследовать текстовый элемент, палитра цвета в инструментах разработчика основных браузеров показывает его контрастность относительно фона, часто с линией порогов AA и AAA. Два случая требуют особого внимания. У текста поверх фото или градиента нет одного фона, поэтому проверяй его по самому светлому участку под ним или подложи сплошную плашку. А сайт с тёмной темой нужно проверять дважды: цвет, который проходит на белом, может не пройти на почти чёрном. Синий #1a5fb4 даёт 6.29:1 на белом, но всего 3.34:1 на чистом чёрном.

Никогда не только цвет

Контраст текста и фона составляет лишь половину дела. Критерий 1.4.1 «Использование цвета» уровня A говорит, что цвет не должен быть единственным способом передать информацию. Красный #c01c28 и синий #1a5fb4 хорошо читаются на белом, но друг относительно друга дают всего 1.03:1. В оттенках серого или для человека, который не различает красный и синий, они превращаются в один и тот же серый. Поэтому обязательному полю, отмеченному только красной подписью, или ссылке, которая отличается от окружающего текста только цветом, нужен второй признак: слово, значок, подчёркивание.

У красного #c01c28 и синего #1a5fb4 почти одинаковая яркость, поэтому в оттенках серого они выглядят почти одинаково.

AA: 4.5:1 для основного текста, 3:1 для крупного текста и частей интерфейса. AAA: 7:1 для основного текста. Чёрный на белом даёт 21:1.

Главное
  • Коэффициент контрастности = (L1 + 0.05) / (L2 + 0.05), от 1:1 до 21:1.
  • AA: 4.5:1 для обычного текста, 3:1 для крупного (1.4.3); 3:1 для элементов управления и графики (1.4.11).
  • #767676 на белом даёт 4.54:1; #999999 даёт 2.85:1.
  • Цвет никогда не должен быть единственным признаком (1.4.1).
  1. Какой коэффициент контрастности требует WCAG 1.4.3 для обычного основного текста?
  2. А для крупного текста на уровне AA?
  3. Каков коэффициент контрастности #000000 на #ffffff?
  4. Серый #999999 на белом даёт 2.85:1. Для основного текста он
    • не проходит AA
    • проходит AA
    • проходит AAA
    • проходит только для ссылок
  5. Какой серый еле проходит AA на белом?
    • #767676 (4.54:1)
    • #777777 (4.48:1)
    • #999999 (2.85:1)
    • #aaaaaa (2.32:1)
  6. Чистый красный #ff0000 на белом: коэффициент контрастности с точностью до сотых?
  7. Какой критерий требует 3:1 для рамки текстового поля?
    • 1.4.11 Контрастность нетекстовой информации
    • 1.4.6 Контрастность (расширенные требования)
    • 1.1.1 Нетекстовый контент
    • 2.4.7 Видимый указатель
  8. Красный #c01c28 и синий #1a5fb4 друг относительно друга дают 1.03:1. Что это значит?
    • В оттенках серого они выглядят почти одинаково
    • Оба нечитаемы на белом
    • Вместе они проходят AAA
    • Они комплементарные
  9. Ссылку выделяет только синий цвет. Какое исправление соответствует 1.4.1?
    • Добавить подчёркивание
    • Сделать синий ярче
    • Сделать её красной
    • Сделать её жирной синей
  10. Каков минимальный коэффициент AAA для обычного текста?
Источники курса (9)
  • W3C, Web Content Accessibility Guidelines (WCAG) 2.2, W3C Recommendation first published 5 October 2023, current edition 12 December 2024 (w3.org/TR/WCAG22/, checked 2026-10-17, rechecked 2026-10-18)
  • W3C WAI, What's new in WCAG 2.2 (w3.org/WAI/standards-guidelines/wcag/new-in-22/, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree/, checked 2026-10-17)
  • W3C, Using ARIA (w3.org/TR/using-aria/, Discontinued Draft 24 February 2026, rules 1 to 4, checked 2026-10-17)
  • W3C WAI-ARIA Authoring Practices Guide, Read Me First, "No ARIA is better than bad ARIA" (w3.org/WAI/ARIA/apg/practices/read-me-first/, checked 2026-10-17)
  • MDN Web Docs, tabindex (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/tabindex, checked 2026-10-17)
  • MDN, Heading elements, accessibility notes (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements, checked 2026-10-17)
  • MDN, autocomplete attribute (developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/autocomplete, checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Проверено: 2026-10-17