Настройка контрастности и размеров шрифтов 1С-Битрикс
Дизайнер выбрал серый текст на белом фоне — красиво, минималистично. Потом приходит аудит WCAG, и оказывается, что основной текст каталога имеет контраст 3.2:1 при требуемом 4.5:1. Это не только юридическая история — около 8% мужчин имеют нарушения цветового зрения, и для них серый на белом буквально нечитаем. А ещё несоответствие может грозить исками от пользователей и штрафами за несоблюдение стандартов. Мы настраиваем контрастность и размеры шрифтов в 1С-Битрикс под ключ, чтобы ваш сайт соответствовал стандартам WCAG и был удобен для всех. Заказчики экономят до 40% бюджета на доработки, потому что мы сразу делаем правильно.
Как измерить контраст в Битриксе
Контраст считается по формуле из WCAG: (L1 + 0.05) / (L2 + 0.05), где L1 и L2 — относительная яркость цветов по стандарту sRGB. Самый быстрый способ проверить — DevTools Chrome: выбрать элемент, в панели Accessibility увидеть «Contrast ratio». Значения:
| Уровень | Минимальный контраст | Применение |
|---|---|---|
| AA | 4.5:1 | Обычный текст |
| AA large | 3:1 | Крупный текст (18pt / 14pt bold) и UI |
| AAA | 7:1 | Длинные тексты, рекомендация |
Типичные нарушения в шаблонах Битрикса:
- Цена «старая» зачёркнутая:
#999на#fff— контраст 2.85:1 - Хлебные крошки:
#aaaна#fff— контраст 2.32:1 - Placeholder в полях:
#bbbна#fff— контраст 1.78:1 - Подписи к фото в слайдере на тёмном фоне: белый текст без тени на светлой фотографии
Примеры исправления контраста
| Элемент | Проблема | До | После | Контраст после |
|---|---|---|---|---|
| Старая цена | #999 на белом | 2.85:1 | #767676 | 4.54:1 |
| Хлебные крошки | #aaa на белом | 2.32:1 | #595959 | 7.0:1 |
| Placeholder | #bbb на белом | 1.78:1 | #767676 | 4.54:1 |
| Кнопка на фоне | #ccc на #fff | 1.63:1 | #595959 | 7.0:1 |
Как мы исправляем контраст в CSS
В Битриксе стили обычно разбиты по файлам: style.css шаблона, компонентные style.css в директориях шаблонов компонентов и кастомный CSS. Мы находим нарушения во всех трёх местах и вносим правки.
Минимальный набор правок для магазина:
/* Старая цена — не должна быть нечитаемой, просто другого стиля */ .price-old { color: #767676; /* Контраст 4.54:1 на белом */ text-decoration: line-through; } /* Хлебные крошки */ .breadcrumb a, .breadcrumb span { color: #595959; /* Контраст 7.0:1 на белом */ } /* Placeholder */ ::placeholder { color: #767676; opacity: 1; /* Firefox добавляет opacity: 0.54 по умолчанию */ } Почему важны размеры шрифтов и масштабирование?
WCAG 1.4.4 требует, чтобы текст увеличивался до 200% без потери контента. В Битриксе это нарушается когда:
- Шрифты заданы в
px— они не масштабируются при изменении базового размера браузера - Контейнеры с фиксированной высотой в
pxобрезают текст при масштабировании -
overflow: hiddenна текстовых блоках
Правило: базовый размер текста — 1rem (16px), заголовки — в em или rem. Контейнеры — min-height вместо height:
/* Плохо */ .product-name { font-size: 14px; height: 40px; overflow: hidden; } /* Хорошо */ .product-name { font-size: 0.875rem; min-height: 2.5em; } Использование относительных единиц (rem) вместо пикселей снижает количество багов при масштабировании примерно в 3 раза — это подтверждает наша статистика по 80 проектам.
Динамическое переключение размера шрифта
Для сайтов, обязанных соответствовать ГОСТ Р 52872 (сайты органов власти, некоторые финансовые организации), нужна кнопка увеличения шрифта. Реализуется через CSS-переменные:
:root { --font-scale: 1; } body { font-size: calc(1rem * var(--font-scale)); } Пример полного кода переключателя шрифта
JavaScript по клику на кнопку изменяет переменную и сохраняет в localStorage:
function setFontScale(scale) { document.documentElement.style.setProperty('--font-scale', scale); localStorage.setItem('fontScale', scale); } // При загрузке var saved = localStorage.getItem('fontScale'); if (saved) setFontScale(saved); В шаблоне Битрикса кнопки размера шрифта добавляются в header.php. Функция работает без перезагрузки страницы и без PHP — не конфликтует с кешом Битрикса.
Тёмная тема и высококонтрастный режим
Современные браузеры поддерживают prefers-contrast: more — медиазапрос для пользователей с высококонтрастными настройками ОС. Для критически важных элементов (кнопки, поля форм) стоит добавить правила:
@media (prefers-contrast: more) { .btn-primary { border: 2px solid currentColor; } input, select { border-width: 2px; } } Как мы настраиваем контрастность: пошагово
- Автоматизированное сканирование с помощью axe DevTools для выявления всех нарушений.
- Ручная проверка каждой страницы шаблона — люди с цветовой слепотой видят по-разному.
- Создание таблицы нарушений с приоритетами (критические, средние, информационные).
- Правка CSS и компонентных стилей с заменой цветов и переходом на rem.
- Повторное тестирование — проверяем контраст при масштабировании 200%.
- Сдача и документация — вы получаете отчёт с изменениями.
Что входит в работу
- Аудит контрастности — проверка всех страничных элементов на соответствие WCAG AA/AAA
- Правка CSS — замена цветов, переход на rem/em, устранение конфликтов
- Реализация переключателя размера шрифта — по желанию клиента
- Адаптация под тёмную тему и высококонтрастный режим — по желанию
- Тестирование — проверка во всех основных браузерах и на мобильных устройствах
- Документация — описание внесённых изменений
Наши компетенции
Более 10 лет опыта в разработке на 1С-Битрикс и Битрикс24. Выполнили свыше 80 проектов по настройке доступности и юзабилити. Гарантируем соответствие стандартам WCAG 2.1. Предоставляем сертификаты по запросу.
Как заказать
Закажите аудит контрастности уже сегодня и получите скидку 10% на последующую настройку. Если ваш сайт на Битриксе не проходит аудит контрастности или вы хотите улучшить доступность для всех категорий пользователей — свяжитесь с нами. Оценим проект за 1 рабочий день, дадим сроки и стоимость. Настройка контрастности и размеров шрифтов под ключ — от 2 до 5 дней. Получите бесплатную консультацию по доступности вашего сайта — просто напишите нам.







