-10%Переходите к нам от другого подрядчика — дадим скидку на первый этап работ

Тёмная тема и доступность магазина на Битрикс

Доступная витрина интернет-магазина на 1С-Битрикс в светлой и тёмной теме: контраст, фокус и переключатель темы

Покупатель с плохим зрением увеличивает страницу до 200% — и вёрстка рассыпается. Другой оформляет заказ с клавиатуры, потому что не пользуется мышью, — и не может понять, на каком поле сейчас фокус. Третий открывает магазин ночью, а витрина бьёт по глазам ослепительно белым фоном. Всё это — не «крайние случаи», а живые сегменты аудитории, которые молча уходят без заказа. Доступность (accessibility, a11y) и грамотная тёмная тема убирают эти барьеры и напрямую влияют на конверсию.

Ниже — практический разбор, как сделать витрину на 1С-Битрикс доступной по стандарту WCAG и добавить тёмную тему, не навредив ни конверсии, ни SEO: контраст, навигация с клавиатуры, семантика и ARIA, доступные формы, CSS-переменные для тем и переключатель без «мигания». Это выжимка из наших проектов по оптимизации конверсии (CRO) интернет-магазинов — с конкретикой по компонентам и шаблонам Битрикса.

Коротко

  • Целевой уровень для магазина — WCAG 2.1 AA: контраст текста от 4,5:1, работа с клавиатуры, видимый фокус, подписи к полям.
  • Доступность — это семантичный HTML и ARIA в шаблонах компонентов, а не отдельный «режим для инвалидов».
  • Тёмную тему делайте на CSS-переменных (токенах) — один HTML, две палитры, проверенные на контраст обе.
  • Переключатель темы применяйте до отрисовки из cookie, чтобы не было вспышки светлой темы (FOUC).
  • Правильная реализация не вредит SEO: одна разметка, один URL, темы переключаются классом на теге.

Доступность магазина — это про деньги, а не про галочку

Про доступность часто думают как про благотворительную опцию «для людей с инвалидностью», которую делают в последнюю очередь и только если останется бюджет. Это устаревший взгляд. Доступность — это про то, чтобы больше людей смогли завершить покупку, а заодно про качество вёрстки, которое улучшает жизнь вообще всем посетителям и поисковым роботам.

Разберём, кого именно теряет недоступный магазин. Это не только незрячие пользователи со скринридерами, хотя и они тоже. Это гораздо более широкий круг:

Отдельная история — B2B и корпоративные клиенты. В тендерах и закупках всё чаще встречается требование соответствия сайта критериям доступности, а крупные заказчики проверяют витрину поставщика на возможность работы с клавиатуры и со скринридером. Для оптового магазина доступность становится не «нишевой добротой», а условием сделки. Тему удобства оптовой витрины мы отдельно разбираем в материале про мобильную версию интернет-магазина — многие принципы там пересекаются с доступностью.

Важно: доступность нельзя «прикрутить кнопкой» в углу экрана. Плагины-оверлеи, которые обещают «сделать сайт доступным одним скриптом», в реальности часто мешают скринридерам и не решают базовых проблем контраста и фокуса. Настоящая доступность живёт в самой вёрстке.

WCAG простыми словами: уровни A, AA, AAA

WCAG (Web Content Accessibility Guidelines) — международный стандарт доступности веб-контента. На нём же основан российский ГОСТ по доступности. Пугаться объёма стандарта не нужно: для интернет-магазина достаточно понимать его логику и держать в голове несколько десятков практических критериев.

Весь стандарт строится вокруг четырёх принципов — их удобно запомнить по аббревиатуре POUR:

У критериев есть три уровня соответствия. Уровень A — базовый минимум, без которого частью функций вообще нельзя пользоваться. Уровень AA — разумная планка для коммерческих сайтов, именно её обычно требуют регуляторы и заказчики. Уровень AAA — максимальный, его целиком достигают редко, отдельные критерии берут точечно. Для интернет-магазина правильная цель — соответствие AA по ключевым критериям, а не гонка за AAA.

Уровни соответствия WCAG AAA AA A максимум, точечно цель для магазина базовый минимум
Схема: уровень A — фундамент, AA — целевая планка для интернет-магазина, AAA берут отдельными критериями там, где это оправдано.

Контраст текста и элементов: как проверить и исправить

Контраст — самая частая и самая быстро исправимая проблема доступности. Дизайнеры любят светло-серый текст на белом фоне: выглядит «воздушно», но читается плохо, а для слабовидящего покупателя может быть вовсе нечитаемым. WCAG задаёт конкретные пороги контраста, и их стоит держать под рукой.

ЧтоМинимум AAМинимум AAA
Обычный текст (до 18 pt)4,5:17:1
Крупный текст (от 18 pt или 14 pt жирный)3:14,5:1
Иконки и границы элементов управления3:1—
Индикатор фокуса относительно фона3:1—
Логотипы и декоративные элементыне нормируетсяне нормируется

Контраст считается как соотношение относительной яркости двух цветов — от 1:1 (одинаковые) до 21:1 (чёрный на белом). Считать вручную не нужно: коэффициент показывают панель доступности в DevTools браузера, аудит Lighthouse и онлайн-проверялки. Начинать проверку стоит с самых частых на витрине пар цветов.

  1. Основной текст на фоне. Тело описаний, характеристик, условий доставки — самый читаемый контент, здесь важен запас по контрасту.
  2. Ссылки. Они должны отличаться от обычного текста не только цветом (иначе дальтоник их не увидит), но и подчёркиванием или начертанием.
  3. Текст на кнопках. Особенно на цветных кнопках «Купить» и «Оформить» — белый текст на светло-оранжевом часто не добирает до 4,5:1.
  4. Бейджи и метки. «Скидка», «Хит», «Нет в наличии» — мелкий текст на цветной плашке легко проваливает контраст.
  5. Плейсхолдеры и подписи полей. Бледный серый плейсхолдер в форме — классический провал контраста, к тому же он не заменяет подпись.
Совет: никогда не передавайте смысл только цветом. «Красное — нет в наличии, зелёное — есть» не поймёт дальтоник. Дублируйте состояние текстом или иконкой: «Нет в наличии», галочка, значок. Это критерий WCAG «использование цвета» и он экономит вам заказы.
Контраст текста и фона Купить в 1 клик Читается легко и при зуме, и на солнце, и слабовидящим. 7:1 — AA/AAA Купить в 1 клик Бледный текст сливается с фоном и теряется. 2:1 — провал
Схема: слева текст с запасом по контрасту читается в любых условиях, справа бледная пара цветов проваливает норму AA.

Навигация с клавиатуры и видимый фокус

Проверьте прямо сейчас: откройте свою витрину, уберите руку с мыши и попробуйте оформить заказ, нажимая только Tab, Shift+Tab, Enter и стрелки. Большинство неоптимизированных магазинов на этом тесте проваливаются — фокус прыгает непредсказуемо, невидим или застревает во всплывающих окнах. А ведь это ровно тот способ, которым пользуются люди с нарушениями моторики и незрячие со скринридерами.

Что должно работать безупречно:

Особая боль магазинов — меганавигация, большое выпадающее меню каталога. Если оно раскрывается только по наведению мыши и не управляется с клавиатуры, значительная часть каталога становится недоступной. Как построить такое меню правильно, мы подробно разбираем в статье про меганавигацию и меню каталога на Битрикс.

Порядок фокуса по Tab 1 Имя 2 Телефон 3 Адрес доставки 4 Оформить заказ
Схема: при доступной форме Tab ведёт фокус по полям в логичном порядке до кнопки отправки, и на каждом шаге видно, где фокус.

Семантическая вёрстка и ARIA в шаблонах

Основа доступности — не атрибуты ARIA, а правильный семантический HTML. Скринридер и поисковик «читают» страницу по тегам: заголовок — это <h1>–<h6>, кнопка — это <button>, ссылка — <a>, навигация — <nav>. Первое правило ARIA звучит парадоксально: лучший ARIA — это его отсутствие. Если задачу решает нативный тег, ARIA не нужен.

Что чаще всего нужно поправить в вёрстке магазина:

ARIA нужен там, где нативной семантики не хватает: для динамических состояний и кастомных виджетов. Например, счётчик товаров в корзине, который меняется без перезагрузки, стоит пометить как aria-live="polite", чтобы скринридер объявил обновление. У раскрывающегося блока фильтра логично проставить aria-expanded. Но важно помнить: неправильный ARIA хуже, чем его отсутствие — он переопределяет реальную семантику и может окончательно запутать вспомогательные технологии.

Важно: все эти правки живут в шаблонах компонентов и в шаблоне сайта, а не в «настройках доступности». Поэтому доступность — это работа фронтенд-разработчика по вёрстке, которую нужно закладывать в шаблоны один раз и поддерживать при доработках.

Скринридеры: как звучит ваша витрина

Скринридер (программа экранного доступа) озвучивает содержимое экрана для незрячих и слабовидящих пользователей: NVDA и JAWS на Windows, VoiceOver на macOS и iOS, TalkBack на Android. Чтобы понять доступность на практике, полезно один раз включить VoiceOver или NVDA и пройти по своей витрине с закрытыми глазами. Опыт отрезвляющий.

Типичные проблемы, которые вскрывает скринридер:

Хорошая новость: почти всё это лечится тем же семантичным HTML и осмысленными подписями. Отдельного внимания требуют динамические сценарии — фильтр, подгрузка товаров, обновление корзины: их состояние нужно проговаривать через aria-live-области, чтобы витрина «звучала» так же понятно, как выглядит.

Доступные формы: корзина, оформление, фильтр

Формы — место, где недоступность напрямую стоит денег: именно здесь совершается заказ. Разберём принципы доступной формы, которые особенно важны в оформлении заказа и фильтре каталога.

  1. У каждого поля — видимая подпись. Используйте <label>, связанный с полем через for/id. Плейсхолдер не заменяет подпись: он исчезает при вводе и часто проваливает контраст.
  2. Понятные сообщения об ошибках. Ошибка описывает, что не так и как исправить («Введите телефон в формате +7…»), находится рядом с полем и связывается с ним через aria-describedby. Не полагайтесь только на красную рамку.
  3. Ошибки объявляются. При отправке невалидной формы фокус переводится на первое проблемное поле, а сообщение попадает в aria-live-область, чтобы скринридер его прочитал.
  4. Логичные типы полей. type="tel", type="email", inputmode и autocomplete подсказывают браузеру и вызывают удобную клавиатуру на смартфоне — это и доступность, и конверсия.
  5. Группировка. Радиокнопки способа доставки или оплаты оборачивайте в <fieldset> с <legend>, чтобы скринридер объявлял, к чему относится выбор.
  6. Никаких ловушек в фильтре. Панель фильтра должна раскрываться и управляться с клавиатуры, а применённые значения — быть понятны и удаляемы без мыши.

Доступная форма оформления — это почти всегда и более конверсионная форма: меньше полей, понятные подписи, честные ошибки, удобная клавиатура на мобильном. Так что работа над доступностью форм напрямую пересекается с работой над конверсией карточки и корзины — про это подробно в материале о карточке товара, которая продаёт.

Зачем магазину тёмная тема

Тёмная тема давно перестала быть гиковской экзотикой: её ждут по умолчанию в мессенджерах, соцсетях, системных настройках телефона. Для интернет-магазина это уже не «вау-фича», а элемент базового комфорта, особенно если аудитория заходит вечером и с мобильных. Разберём, что реально даёт тёмный режим.

Важно не путать причину и следствие. Тёмная тема сама по себе не «повышает продажи» — она убирает раздражитель и повышает комфорт части аудитории. Ошибка — делать её ради галочки, кое-как инвертировав цвета: плохая тёмная тема с проваленным контрастом и «грязными» тенями вредит сильнее, чем её отсутствие. Поэтому дальше — про то, как сделать её правильно.

Тёмная тема на CSS-переменных (дизайн-токены)

Единственно верный современный способ сделать тему — дизайн-токены на CSS-переменных (custom properties). Идея проста: вы не прописываете конкретные цвета по всему CSS, а объявляете набор смысловых переменных (фон, текст, границы, акцент) и используете только их. Смена темы — это переопределение значений этих переменных, а вся вёрстка остаётся неизменной.

Ключевой принцип — семантические, а не «цветовые» имена. Плохо: --white, --dark-blue. Хорошо: --bg, --surface, --text, --text-muted, --border, --accent. Тогда переменная --bg в светлой теме белая, а в тёмной — почти чёрная, но смысл («фон страницы») один и тот же, и код компонентов не меняется.

ТокенСветлая темаТёмная тема
--bg (фон страницы)#FFFFFF#12151C
--surface (карточки, панели)#F5F7FA#1B2029
--text (основной текст)#12203A#E7ECF3
--text-muted (второстепенный)#5A6577#A4AEBF
--border (границы)#E3E8EF#2A3140
--accent (кнопки, ссылки)#2D5BFF#5B82FF

Обратите внимание на строку акцента: в тёмной теме синий не тот же самый, что в светлой. Насыщенный «дневной» синий на тёмном фоне часто не добирает контраст и выглядит грязно, поэтому в тёмной палитре акцент делают чуть светлее и мягче. Это и есть суть подхода «отдельная палитра, а не инверсия»: каждый токен тёмной темы подбирается заново и проверяется на контраст, а не вычисляется автоматически из светлого.

Технически переменные объявляют на корне для светлой темы и переопределяют внутри селектора тёмной — например, по атрибуту или классу на теге <html>. Дополнительно стоит поддержать системную настройку через медиазапрос prefers-color-scheme: dark для первого визита, а явный выбор пользователя хранить и применять поверх системного.

Один HTML — две палитры токенов Компоненты var(--bg), var(--text) Светлая тема --bg: #FFFFFF --text: #12203A Тёмная тема --bg: #12151C --text: #E7ECF3
Схема: компоненты обращаются к смысловым токенам, а тема лишь подставляет им разные значения — HTML и вёрстка при переключении не меняются.

Переключатель темы без «мигания» (FOUC)

Главный технический враг тёмной темы — вспышка светлой темы (FOUC, flash of unstyled content). Пользователь выбрал тёмный режим, но при следующей загрузке на долю секунды видит белый экран, прежде чем JavaScript успеет применить тему. Это выглядит как баг и особенно бьёт по глазам ночью — ровно в тот момент, ради которого тёмная тема и нужна.

Причина проста: если тему применяет обычный скрипт в конце страницы, браузер сначала рисует светлый вариант, а потом перекрашивает. Лечение — применить класс темы до отрисовки. Порядок действий такой:

  1. Сохраняйте выбор в cookie и localStorage. При клике по переключателю пишите значение (light/dark) в оба хранилища, чтобы его можно было прочитать и на сервере, и на клиенте.
  2. Ставьте класс как можно раньше. Небольшой инлайновый скрипт в <head> читает сохранённое значение (или системную настройку) и сразу вешает класс на <html> — до того, как отрисуется тело страницы.
  3. Уважайте систему при первом визите. Если явного выбора ещё нет, берите prefers-color-scheme; как только пользователь переключил вручную — приоритет за его выбором.
  4. Синхронизируйте вкладки. Слушайте событие изменения хранилища, чтобы переключение темы в одной вкладке применялось и в других.
  5. Делайте переключатель доступным. Это <button> с понятным именем и aria-pressed, доступная с клавиатуры, а не «div с иконкой».

На платформе Битрикс есть нюанс: включённый композитный кэш отдаёт статическую часть страницы из кэша, единую для всех. Поэтому класс темы нельзя «вшивать» в кэшируемый HTML — его нужно проставлять из cookie ранним инлайновым скриптом, который выполняется до отрисовки. Так композит остаётся общим и быстрым, а тема применяется мгновенно и индивидуально для каждого посетителя.

Важно: ранний скрипт установки темы должен быть максимально коротким и синхронным. Любая тяжёлая логика или ожидание внешних файлов в этом месте вернёт вам ту самую вспышку, с которой вы боретесь.

Тёмная тема и доступность: контраст в обоих режимах

Частая ловушка: команда вылизала контраст в светлой теме, а тёмную сделала на глаз — и провалила доступность там, где её никто не проверял. Помните: критерии WCAG действуют в каждой теме отдельно. Тёмный режим — это не «поблажка», а вторая полноценная палитра, которую нужно проверить по тем же порогам контраста 4,5:1 и 3:1.

Специфические подводные камни тёмной темы:

Практический вывод: закладывайте проверку контраста в обе темы в определение готовности задачи. Автоматический аудит (Lighthouse, axe) прогоняйте и в светлом, и в тёмном режиме — иначе половина вашей аудитории получит непроверенный интерфейс.

Реализация в 1С-Битрикс

Теперь конкретика: где именно в 1С-Битрикс делаются правки под доступность и тёмную тему. Ключевое — работать в шаблоне сайта и шаблонах компонентов в папке /local/templates/, чтобы доработки пережили обновления платформы и не терялись при апдейтах.

  1. Объявите токены в стилях шаблона сайта. В общий CSS шаблона (обычно подключаемый через template_styles.css или сборку) добавьте набор CSS-переменных для светлой темы на :root и переопределение для тёмной по классу/атрибуту на <html>. Так токены доступны всем компонентам сразу.
  2. Переведите цвета компонентов на переменные. В кастомизированных шаблонах компонентов (каталог, карточка, корзина, меню) замените захардкоженные цвета на var(--...). Это разовая, но важная работа: без неё тёмная тема «зацепит» не всё.
  3. Скопируйте и доработайте шаблоны компонентов. Стандартные шаблоны bitrix:catalog.section, catalog.element, sale.basket.basket, menu скопируйте в свой шаблон сайта и добавьте семантику: заголовки по иерархии, <button> вместо кликабельных div, alt к изображениям, label к полям, ARIA к динамике.
  4. Добавьте ранний скрипт темы. В header.php шаблона, максимально высоко, поставьте короткий инлайновый скрипт, который читает cookie/localStorage (или prefers-color-scheme) и вешает класс темы на <html> до отрисовки тела. Это убирает FOUC.
  5. Учтите композитный кэш. Проверьте, что тема применяется из cookie ранним скриптом, а не «вшита» в кэшируемый HTML. Иначе композит будет отдавать всем одну тему.
  6. Разместите доступный переключатель. В шапке шаблона добавьте <button> переключения темы с aria-pressed и понятным именем, привязанный к тому же хранилищу.
  7. Проверьте формы оформления. В шаблоне оформления заказа (sale.order.ajax или кастомном) добавьте связку label/for, aria-describedby для ошибок, перевод фокуса на первое невалидное поле и aria-live для сообщений.

Отдельно про панель для слабовидящих — ту самую «версию для слабовидящих» с огромным шрифтом, которую любят госсайты. Для коммерческого магазина она чаще всего не нужна и даже вредна: это костыль, дублирующий контент и создающий вторую версию для поддержки. Гораздо правильнее сделать основную витрину доступной изначально — с нормальным контрастом, масштабируемым текстом и клавиатурной навигацией. Тогда отдельная «версия для слабовидящих» просто не требуется, а поддерживать нужно один интерфейс.

Важно: не правьте шаблоны компонентов прямо в /bitrix/. Все доработки — только через копии в /local/templates/ вашего шаблона сайта. Иначе ближайшее обновление платформы затрёт вашу доступность и тёмную тему.

Доступность, тёмная тема, SEO и конверсия

Главный страх бизнеса при внедрении тёмной темы — «а не просядет ли SEO и не упадут ли продажи». Разберём честно, что происходит на самом деле.

SEO. При правильной реализации на CSS-переменных поисковик не видит никакой разницы: HTML один и тот же, контент один и тот же, URL один и тот же, меняются только значения цветовых переменных. Робот индексирует ту же страницу, что и всегда. Более того, доступность помогает SEO: семантичные заголовки, осмысленные alt, логичная структура и валидная разметка — это те самые сигналы, которые поисковик любит. Опасны только неправильные реализации: подмена контента через JavaScript, отдельные URL для тёмной версии, cloaking — вот это дробит сигналы и создаёт дубли. Не делайте так — и с SEO всё будет в порядке.

Конверсия. Доступность почти всегда работает на конверсию, потому что убирает барьеры к покупке: больше людей могут пройти оформление, форма понятнее, ошибки честнее. Тёмная тема на конверсию влияет нейтрально-положительно: она не заставляет купить, но убирает раздражитель для части аудитории и повышает воспринимаемое качество. Проседает конверсия только от плохой тёмной темы — с проваленным контрастом и нечитаемыми ценами. Отсюда правило: внедряйте тёмную тему как опцию, проверяйте контраст в обоих режимах и, если сомневаетесь, замерьте эффект через сплит-тест.

РеализацияВлияние на SEOВлияние на конверсию
Токены на CSS-переменных, один HTMLНейтральное (плюс от семантики)Нейтрально-положительное
Отдельный URL для тёмной версииДубли, дробление сигналовРиск путаницы
Подмена контента через JSРиск cloaking, проблемы индексацииНепредсказуемо
Инверсия «на глаз» без проверки контрастаНейтральноеОтрицательное (нечитаемо)

Про воспринимаемую скорость тоже нельзя забывать: доступная и лёгкая витрина обычно и быстрее, что напрямую влияет и на SEO, и на конверсию. Комплексно эти задачи решает услуга по оптимизации конверсии — от аудита барьеров до внедрения правок в шаблоны.

Как тестировать доступность и тему

Доступность нельзя внедрить «на глаз» и забыть — её нужно проверять и удерживать. Оптимальный подход — сочетать автоматические инструменты с ручными сценариями, потому что автоматика ловит хорошо если половину проблем.

Хорошая практика — вынести ключевые пункты доступности в определение готовности задачи (Definition of Done) для фронтенда, чтобы каждый новый компонент проверялся до релиза. Так доступность не «протухает» с каждой доработкой витрины.

Частые ошибки

Мини-FAQ. Нужна ли отдельная «версия для слабовидящих» с гигантским шрифтом? Для коммерческого магазина — почти никогда. Правильнее сделать доступной основную витрину: нормальный контраст, масштабируемый текст, клавиатурная навигация. Тогда второй интерфейс не нужен и нечего рассинхронизировать.

Чек-лист внедрения

Сведём всё в практический список, по которому удобно принимать готовность доступности и тёмной темы перед релизом:

  1. Контраст проверен. Основной текст, ссылки, кнопки и бейджи проходят порог AA (4,5:1 и 3:1) в обеих темах.
  2. Клавиатура работает. Каталог, карточка, корзина и оформление проходятся только с клавиатуры, фокус виден, ловушек нет.
  3. Семантика на месте. Иерархия заголовков, <button>/<a> по назначению, ориентиры header/nav/main/footer.
  4. Изображения подписаны. У фото товаров осмысленные alt, декоративные — с пустым alt.
  5. Формы доступны. Видимые label, понятные ошибки, aria-describedby, перевод фокуса, корректные типы полей.
  6. Динамика объявляется. Корзина, фильтр, статусы используют aria-live и объявляются скринридеру.
  7. Тема на токенах. Цвета переведены на CSS-переменные, тёмная палитра подобрана заново и проверена, а не инвертирована.
  8. Нет FOUC. Класс темы применяется ранним скриптом из cookie до отрисовки, композитный кэш учтён.
  9. Переключатель доступен. Кнопка темы работает с клавиатуры, имеет aria-pressed и понятное имя, выбор запоминается.
  10. Аудит пройден. Lighthouse/axe прогнаны в светлой и тёмной теме, ключевые сценарии проверены скринридером.

Вывод

Доступность и тёмная тема — это не украшательство и не «режим для инвалидов», а работа с базовым качеством витрины, которая напрямую влияет на выручку. Доступность убирает барьеры к покупке для слабовидящих, пользователей клавиатуры, пожилых и всех, кто оказался в неудобных условиях, а заодно помогает SEO семантичной разметкой. Тёмная тема на CSS-токенах добавляет комфорта, не ломая ни SEO, ни конверсию, — если сделана как отдельная проверенная палитра, а не инверсия на глаз. Сделайте контраст, клавиатуру, семантику и токены темы правильно один раз в шаблонах Битрикса — и получите витрину, которая работает для всех.

Частые вопросы

Обязательно ли интернет-магазину соблюдать WCAG?

Формально коммерческий магазин никто не заставляет проходить сертификацию, но доступность напрямую влияет на выручку и риски. Часть аудитории — люди с нарушениями зрения, моторики или те, кто пользуется клавиатурой и увеличением, — просто не может завершить заказ на недоступной витрине. К тому же требования к доступности всё чаще появляются в закупках и у корпоративных клиентов B2B, а поисковики любят семантичную и предсказуемую вёрстку. Ориентир для магазина — уровень WCAG 2.1 AA как разумный минимум.

Тёмная тема — это про моду или про пользу?

И то, и другое, но пользы больше. Тёмная тема снижает нагрузку на глаза при чтении в темноте, экономит заряд на OLED-экранах и для части пользователей просто комфортнее. Главное — не делать её «инверсией на глаз»: тёмный режим нужно проектировать отдельными токенами цвета с проверкой контраста, иначе он скорее вредит, чем помогает. Правильно сделанная тёмная тема не меняет конверсию в худшую сторону, а часто немного улучшает вовлечённость.

Тёмная тема не навредит SEO магазина на Битрикс?

Нет, если реализовать её на CSS-переменных и одном и том же HTML для обеих тем. Поисковик видит одинаковую разметку и контент независимо от выбранной темы, а переключение управляется классом на теге и cookie. Опасны только костыли вроде подмены контента через JavaScript или отдельных URL для тёмной версии — вот они дробят сигналы и создают дубли. Один HTML, две палитры на переменных — безопасный путь.

Как быстро проверить контраст текста на витрине?

Контраст измеряется как соотношение яркости текста и фона. Для обычного текста уровень AA требует коэффициента не ниже 4,5:1, для крупного (от 18 pt или 14 pt жирного) — не ниже 3:1. Проверить можно встроенным в браузер аудитом Lighthouse, панелью доступности в DevTools или онлайн-проверялками контраста. Начните с самых частых пар: основной текст на фоне, ссылки, подписи к полям, текст на кнопках и бейджах скидок.

Где в 1С-Битрикс живёт вёрстка, которую нужно править под доступность?

Разметка формируется в шаблонах компонентов и в шаблоне сайта. Стандартные шаблоны компонентов копируются в папку /local/templates/ вашего шаблона и дорабатываются там — так правки переживают обновления платформы. Именно в этих шаблонах добавляют семантические теги, атрибуты ARIA, alt к изображениям и подписи к полям форм. CSS-переменные тем удобно объявить в общем файле стилей шаблона сайта, чтобы они действовали на все компоненты сразу.

Нужно ли запоминать выбор темы между визитами?

Да, это часть хорошего UX. Выбор пользователя стоит сохранять в cookie или localStorage и применять как можно раньше — до отрисовки страницы, чтобы не было вспышки светлой темы (FOUC). При первом заходе разумно уважать системную настройку через медиазапрос prefers-color-scheme, а дальше приоритет отдавать явному выбору пользователя. На композитном сайте Битрикс класс темы удобно проставлять из cookie ещё до загрузки основного JavaScript.

Поделиться:

Хотите доступную витрину и тёмную тему без потери конверсии?

Проведём аудит доступности и UX магазина на 1С-Битрикс, исправим контраст, фокус и формы, внедрим тёмную тему на CSS-токенах и подтвердим, что SEO и конверсия не пострадали. Рассчитаем работы по вашему сайту.

Услуга «Рост конверсии»

Редакция B2Bsite

Редакция студии B2Bsite. С 2014 года команда разрабатывает и поддерживает интернет-магазины и корпоративные сайты на 1С-Битрикс: проектирует доступные витрины по WCAG, внедряет тёмную тему и повышает конверсию для среднего и крупного бизнеса.

← Все статьи блога