Можно ли определить, что на винде пользователя включен режим высокой контрастности? Столкнулся с проблемой: при режиме высокой контрастности на 8й винде IE и Firefox перестают отображать background-image, что потенциально ведёт к неправильному отображению сайта у людей, в чьих системах включен этот режим. User agent как я понял не располагает такими данными.

21 Авг 2019 в 06:55
177 +1
1
Ответы
1

Да, можно определить, включен ли режим высокой контрастности на Windows, используя JavaScript. Есть несколько способов сделать это.

Один из способов - проверить текущие CSS стили элементов на странице. В режиме высокой контрастности на Windows, система автоматически применяет некоторые специфические CSS стили. Например, цвет текста и фона изменяются на высокий контрастный цвет.

Для определения этого можно создать временный элемент на странице и сравнить его цвет текста и фона. Если цвета текста и фона совпадают, то, скорее всего, активирован режим высокой контрастности.

Вот пример кода на JavaScript, который поможет определить, активирован ли режим высокой контрастности:

function isHighContrastMode() {
var div = document.createElement('div');
div.style.color = 'rgb(0, 0, 0)'; // черный цвет текста
div.style.backgroundColor = 'rgb(255, 255, 255)'; // белый цвет фона
document.body.appendChild(div);
var computedColor = window.getComputedStyle(div).color;
var computedBgColor = window.getComputedStyle(div).backgroundColor;
document.body.removeChild(div);
if (computedColor === 'rgb(0, 0, 0)' && computedBgColor === 'rgb(255, 255, 255)') {
return false; // Режим не включен
} else {
return true; // Режим включен
}
}
if (isHighContrastMode()) {
console.log('Режим высокой контрастности включен');
} else {
console.log('Режим высокой контрастности не включен');
}

Однако, необходимо учитывать, что это не является 100% надежным способом, так как пользователь может настроить цвета в режиме высокой контрастности по-разному. Некоторые пользователи могут не использовать стандартные цвета высокой контрастности.

20 Апр в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 718 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир