Настройка контрастности и размеров шрифтов 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка контрастности и размеров шрифтов 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1181
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    813
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка контрастности и размеров шрифтов 1С-Битрикс

Дизайнер выбрал серый текст на белом фоне — красиво, минималистично. Потом приходит аудит WCAG, и оказывается, что основной текст каталога имеет контраст 3.2:1 при требуемом 4.5:1. Это не только юридическая история — около 8% мужчин имеют нарушения цветового зрения, и для них серый на белом буквально нечитаем.

Как измерить контраст в Битриксе

Контраст считается по формуле из WCAG: (L1 + 0.05) / (L2 + 0.05), где L1 и L2 — относительная яркость цветов по стандарту sRGB. Самый быстрый способ проверить — DevTools Chrome: выбрать элемент, в панели Accessibility увидеть «Contrast ratio». Значения:

  • 4.5:1 — минимум для обычного текста (AA)
  • 3:1 — минимум для крупного текста (18pt / 14pt bold) и UI-компонентов (AA)
  • 7:1 — AAA, рекомендуется для длинных текстов

Типичные нарушения в шаблонах Битрикса:

  • Цена «старая» зачёркнутая: #999 на #fff — контраст 2.85:1
  • Хлебные крошки: #aaa на #fff — контраст 2.32:1
  • Placeholder в полях: #bbb на #fff — контраст 1.78: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; }

Динамическое переключение размера шрифта

Для сайтов, обязанных соответствовать ГОСТ Р 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; }
}