Как проверить, находится ли пользователь в режиме высокой контрастности с помощью JavaScript или CSS

StackOverflow https://stackoverflow.com/questions/1921047

  •  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.

@экран мультимедиа и (-мс)высококонтрастный:черным по белому) { /* Укажите свой код оформления.............*/ }

@экран мультимедиа и (-мс)высококонтрастный:белым по черному) { /* Укажите свой код стиля.............*/ }

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top