Я пытаюсь сделать свой сайт доступным в высококонтрастном режиме. Чтобы определить, включен ли режим высокой контрастности, я создал метод JavaScript для определения того, отключены ли фоновые изображения, поскольку режим высокой контрастности отключает фоновые изображения. Затем, если браузер находится в режиме высокой контрастности, я добавляю файл CSS, чтобы внести исправления для отображения в режиме высокой контрастности. Это отлично работает в Firefox, Edge и IE, но Chrome использует собственное расширение для создания высокой контрастности и не отключает фоновые изображения, поэтому в Chrome не добавляется CSS для высокой контрастности.
Из поиска я обнаружил, что Chrome добавляет фильтр к веб-сайту, а не включает/отключает/меняет цвета или изображения самих веб-сайтов. Я искал и искал, но не могу найти ничего, чтобы проверить, использует ли Chrome высококонтрастный режим. Если бы был способ определить, какие расширения используются, это также решило бы проблему, но я тоже не смог найти способ сделать это.
Мой код на самом деле работает нормально, все, что мне нужно, это определить высококонтрастный режим в Chrome. Вот метод, который я использую для проверки высококонтрастного режима.
let highContrast = (options) => {
let hcDetect = jQuery(`<div id="jQHighContrastDetect"></div>`).css('background', 'url(../uploads/c-wht-small.png)');
hcDetect.appendTo(document.body);
if (hcDetect.css('background-image') === 'none') {
$('head').append('<link rel="stylesheet" href="../css/highcontrast.min.css" type="text/css" media="all">');
}
}