Des fois, il vous arrive (comme moi) qu'un client vous appelle en disant « mon site est tout cassé ». Après un rapide diagnostic, vous constatez que ledit client utilise IE, mais avec, sans aucune raison tangible, le mode de compatibilité activé (la petite page cassée dans la barre d'adresse).
À la base, le mode de compatibilité est prévu pour pouvoir faire fonctionner les vieux sites qui ont été conçus à la mode du tag soup et qui se fichaient bien du respect des standards.
Idéalement, la possibilité d'utiliser ce mode devrait être laissée, toutefois, il est parfois pénible de chercher pendant 10 minutes ce qui peut déconner chez le client alors que le site a été conçu dans les règles de l'art (comprenez en respectant les standards)
Toutefois, il est possible d'interdire cette possibilité, et de plusieurs manières :
- via un méta-tag :
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
, - via un entête PHP :
header('X-UA-Compatible: IE=edge');
, - ou soit directement dans un
htaccess
viaheader set X-UA-Compatible "IE=Edge"
.
Si vous utilisez la dernière version et sans avoir restreint cet entête à certains fichiers, il pourra être utile de le désactiver pour les types de fichiers n'en ayant pas besoin :
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|
m4a|ogv|mp4|m4v|webm|
svg|svgz|eot|ttf|otf|
woff|ico|webp|appcache|
manifest|htc|crx|xpi|safariextz|vcf)$" >
Header unset X-UA-Compatible
</FilesMatch>
En utilisant l'une de ces trois méthodes, vous verrez qu'IE ne propose plus ce mode de compatibilité sur votre site, il sera forcé d'utiliser le plus haut mode de rendu sur votre site.