Al presionar Shift + Left + Alt + Print Windows cambia al modo de alto contraste - ¿hay alguna posibilidad de detectar eso en una página web (usando JavaScript o CSS)?

¿Hay alguna posibilidad de detectar eso en HTTP-Request (también conocido como el lado del servidor, por ejemplo, a través de PHP o Ruby)?

8
pagid 17 dic. 2009 a las 14:12

3 respuestas

La mejor respuesta

De acuerdo con este artículo sobre el uso de sprites CSS en alta contraste, en el modo de alto contraste en Windows, las imágenes de fondo deben establecerse en "ninguna" y también cambia el color de fondo. Esto debería anular cualquier hoja de estilo CSS. Por lo tanto, puede realizar algunos javascript para detectarlo después de la representación inicial. Consulte su página de demostración (el texto "FYI [No] en modo de alto contraste").

Tengo Mac (FYI switch usando Cmd + Alt + Ctrl + 8) y su técnica no funciona para mí, pero él dice que funciona en Windows.

Si funciona, puede usar JavaScript para simplemente cambiar su CSS o configurar una cookie (sesión) y volver a cargar la página para pasarla al servidor y realizar acciones del lado del servidor.

6
instanceof me 17 dic. 2009 a las 11:30

Si está implementando un alto contraste en su aplicación web, use el siguiente bloque de código para detectar la selección de contraste negro sobre blanco y blanco sobre negro. Esto funcionará bien en IE.

@media screen y (-ms-high-contrast: black-on-white) {/ * Pon tu código de estilo ............. * /}

@media screen y (-ms-high-contrast: white-on-black) {/ * Pon tu código de estilo ............. * /}

1
Prabhat Maurya 24 oct. 2017 a las 07:12

Lo siguiente funciona para mí en Win8 con (el escritorio) 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>

Creo que también debe funcionar con las aplicaciones de la Tienda Windows. Esta no es una solución completa, pero puede ser útil un poco.

Documento de MSDN: @media, -ms-high-contrast. El Modo de alto contraste