Как проверить, находится ли пользователь в режиме высокой контрастности с помощью JavaScript или CSS
-
20-09-2019 - |
Вопрос
При нажатии Сдвиг+Слева+Альт+С принтами Windows переключается в режим высокой контрастности - есть ли какой-нибудь шанс обнаружить это на веб-странице (используя JavaScript или CSS)?
Есть ли какой-нибудь шанс обнаружить это в HTTP-Request
(также известный как серверная часть, напримерчерез PHP или Ruby)?
Решение
В соответствии с эта статья об использовании CSS-спрайтов с высокой контрастностью, в режиме высокой контрастности в Windows для фоновых изображений должно быть установлено значение «нет», а также изменяется цвет фона.Это должно переопределить любую таблицу стилей CSS.Таким образом, вы можете выполнить Javascript, чтобы обнаружить его после первоначального рендеринга.Проверьте его демо-страница (текст «К вашему сведению [Не] в режиме высокой контрастности»).
У меня Mac (к вашему сведению, переключитесь с помощью Cmd + Alt + Ctrl + 8
), и его техника у меня не работает, но он говорит, что она работает в Windows.
Если это работает, вы можете либо использовать JavaScript, чтобы просто изменить свой CSS, либо установить (сессионный) файл cookie и перезагрузить страницу, чтобы передать ее на сервер и выполнить действия на стороне сервера.
Другие советы
Следующее работает для меня на Win8 с (рабочим столом-) IE:
<style type="text/css">
// ...
@media screen and (-ms-high-contrast: active) {
/* any rules may come here, for example: */
.leftMenu a:hover { text-decoration: underline; }
}
// ...
</style>
Я думаю, что это также должно работать с приложениями Windows Store.Это не полное решение, но, возможно, немного полезное.
MSDN doc: @сми, -мс-высокаяконтрастность.Тот Самый Высококонтрастный режим описание также заслуживает упоминания.
Если вы реализуете высокую контрастность в своем веб-приложении, то используйте следующий блок кода для определения черно-белого и выделения контраста белого на черном.Это будет нормально работать в IE.
@экран мультимедиа и (-мс)высококонтрастный:черным по белому) { /* Укажите свой код оформления.............*/ }
@экран мультимедиа и (-мс)высококонтрастный:белым по черному) { /* Укажите свой код стиля.............*/ }