Кратко
СкопированоОдно из значений директивы @media для проверки пользовательских настроек. Отслеживает режим принудительных цветов. Одна из его реализаций — режим высокой контрастности в Windows.
Пример
Скопировано
<button class="button button-aqua"> <svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 24 24" fill="none" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="button-icon" > <path d="M2 12C2 6.5 6.5 2 12 2a10 10 0 0 1 8 4"/> <path d="M5 19.5C5.5 18 6 15 6 12c0-.7.12-1.37.34-2"/> <path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"/> <path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"/> <path d="M8.65 22c.21-.66.45-1.32.57-2"/> <path d="M14 13.12c0 2.38 0 6.38-1 8.88"/> <path d="M2 16h.01"/> <path d="M21.8 16c.2-2 .131-5.354 0-6"/> <path d="M9 6.8a6 6 0 0 1 9 5.2c0 .47 0 1.17-.02 2"/> </svg> <span class="visually-hidden"> Зайти по отпечатку пальца </span></button>
<button class="button button-aqua">
<svg
xmlns="http://www.w3.org/2000/svg"
width="36"
height="36"
viewBox="0 0 24 24"
fill="none"
stroke="#000000"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="button-icon"
>
<path d="M2 12C2 6.5 6.5 2 12 2a10 10 0 0 1 8 4"/>
<path d="M5 19.5C5.5 18 6 15 6 12c0-.7.12-1.37.34-2"/>
<path d="M17.29 21.02c.12-.6.43-2.3.5-3.02"/>
<path d="M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4"/>
<path d="M8.65 22c.21-.66.45-1.32.57-2"/>
<path d="M14 13.12c0 2.38 0 6.38-1 8.88"/>
<path d="M2 16h.01"/>
<path d="M21.8 16c.2-2 .131-5.354 0-6"/>
<path d="M9 6.8a6 6 0 0 1 9 5.2c0 .47 0 1.17-.02 2"/>
</svg>
<span class="visually-hidden">
Зайти по отпечатку пальца
</span>
</button>
@media (forced-colors: active) { .button-icon { stroke: buttonText; }}
@media (forced-colors: active) {
.button-icon {
stroke: buttonText;
}
}
Если посмотрите демку в режиме принудительных цветов без директивы и с ней, в первом случае иконка с отпечатком пальца останется чёрной (#000000), а во втором — перекрасится в белый цвет как у кнопки.

Как пишется
СкопированоЕсть два значения:
none— режим принудительных цветов не выбран, цветовая палитра не ограничена.active— включён режим принудительных цветов.
Обычно браузеры сами перезаписывают цвета в режиме высокой контрастности, так что forced пригодится в редких случаях:
- Для кастомных элементов, у которых не заменяются автоматически цвета. Например,
<div>с рольюbutton. - Для SVG и других векторных иконок.
- Когда цвет важен для понимания контекста. К примеру, цветовые палитры в магазинах одежды.
Список CSS-свойств, значения которых автоматически перезаписываются на системные:
color;background;- color border;- color outline;- color scrollbar;- color caret;- color lighting;- color flood;- color stop;- color -webkit;- tap - highlight - color column;- rule - color text;- decoration - color text;- emphasis - color fill;stroke.
Также есть свойства, значения которых сбрасываются в режиме принудительных цветов: accent заменяется на auto, box и text — на none, background — на none, если в качестве значения не указана функция url, color — на light dark.
Браузеры не заменяют цвета на системные, когда используете свойство forced со значением none. К примеру, этим свойством удобно запрещать заменять важные для понимания цвета в режиме ограниченных цветов.
.important-specific-element { forced-color-adjust: none;}
.important-specific-element {
forced-color-adjust: none;
}
Когда цвет по какой-то причине не заменился на нужный, используйте системные (динамические) цвета. Например, Button у кнопок, Canvas у обычного текста, Link у кнопок или Highlight у выделенного текста.
forced можно совмещать с другим значением директивы @media — prefers. Она отслеживает настройки уровня контрастности в системе, который может быть понижен или повышен. В этом случае браузеры могут определить, какой именно режим принудительных цветов выбрал пользователь — высококонтрастный или низкоконтрастный.
@media (forced-colors: active) and (prefers-contrast: less) { /* Нужные стили */}
@media (forced-colors: active) and (prefers-contrast: less) {
/* Нужные стили */
}
Также можно использовать forced вместе с prefers. В этом случае можно точечно настроить стили для светлого или тёмного режима принудительных цветов.
Пример с тёмным режимом принудительных цветов:
@media (forced-colors: active) and (prefers-color-scheme: dark) { /* Нужные стили */}
@media (forced-colors: active) and (prefers-color-scheme: dark) {
/* Нужные стили */
}
Пример со светлым режимом принудительных цветов:
@media (forced-colors: active) and (prefers-color-scheme: light) { /* Нужные стили */}
@media (forced-colors: active) and (prefers-color-scheme: light) {
/* Нужные стили */
}
Тестирование и отладка
СкопированоТестировать интерфейс в режиме принудительных цветов можно в браузере или включив его в системе.
В Chrome эмуляция forced находится в дополнительной вкладке «Отрисовка» (Rendering) в инструменте разработчика. Чтобы добраться до неё, откройте список с дополнительными настройками (кнопка с тремя точками рядом с кнопкой закрытия), а потом разверните список «Другие инструменты» (More tools) и найдите выпадающий список «Эмулировать медиафункцию forced» (Emulate media feature forced).
В операционных системах режим принудительных цветов расположен в разделе доступности и специальных возможностей.
Windows 10
Настройки (Settings) > Специальные возможности (Ease of Access) > Высокая контрастность (High Contrast) > Включить режим высокой контрастности (Turn on high contrast). После выбрать одну из уже готовых тем с чёрным режимом высокой контрастности (High Contrast Black), белым режимом высокой контрастности (High Contrast White), комбинацией двух предыдущих тем или настроить свою.
Windows 11
Настройки (Settings) > Специальные возможности (Accessibility) > Контрастные темы (Contrast themes). После выбрать одну из уже готовых тем: «Водная» (Aquatic), «Пустыня» (Desert), «Сумерки» (Dusk), «Ночное небо» (Night sky) или настроить свою.
Как понять
СкопированоРежим принудительных цветов (forced colors mode) ограничивает количество цветов, чтобы повысить читаемость текста за счёт изменения контраста текста и фона. В основном используются цвета с высоким контрастом. Этот режим автоматически изменяет цвета и в системе, и на сайтах.
Когда браузер узнаёт о выборе режима принудительных цветов, он ограничивает цветовую палитру до небольшого набора цветов. С помощью forced можно гибче настраивать поддержку этого режима на сайте.
Подробнее про то, как работает режим принудительных цветов, рассказано в CSS Color Adjustment Module Level 1.
Подсказки
Скопировано💡 На forced похоже другое значение директивы @media — ms. Оно устарело и пригодится только для поддержки режима высокой контрастности в Internet Explorer.