> Tech > Modes de compatibilité

Modes de compatibilité

Tech - Par Renaud ROSSET - Publié le 04 février 2013
email

Cela nous amène évidemment au prochain thème important, à savoir les modes de compatibilité et le moment opportun pour les exploiter.

Modes de compatibilité

Cet aspect est souvent mal compris dans Internet Explorer 9. Une grande partie de cette complexité se cache derrière un bouton représentant une page déchirée et, en apparence, anodin.

Au moment d’explorer cet aspect, ayez à l’esprit qu’Internet Explorer 9 contient en fait quatre moteurs de rendu distincts, ce qui donne quatre ensembles de règles de mise en page HTML, de scripts, etc. Dans Internet Explorer 9, les modes de rendu suivants sont utilisés :

• Quirks/Internet Explorer 5.5
• Standards Internet Explorer 7
• Standards Internet Explorer 8
• Standards Internet Explorer 9

Cela n’a rien de nouveau. Même Internet Explorer 6 présentait deux modes distincts : Quirks et Standards Internet Explorer 6. Vous utilisiez le mode Quirks jusqu’à ce que le développeur passe spécifiquement au mode Standards au moyen d’un élément DOCTYPE dans son balisage. Internet Explorer 7 a conservé la dichotomie, en améliorant le mode Standards, tout en conservant le rendu Quirks. Internet Explorer 8 a conservé le rendu Quirks et Internet Explorer 7, et a ajouté Internet Explorer 8. Internet Explorer 9 continue sur cette lancée.

Ainsi, quatre moteurs de rendu se dissimulent derrière un seul bouton. Comment se passe la transition de l’un à l’autre ? L’affichage de compatibilité assure le rendu d’une page Web contenant un DOCTYPE dans le mode Standards Internet Explorer 7. En l’absence de DOCTYPE, le rendu s’effectue en mode Quirks.

Si vous n’employez pas l’affichage de compatibilité, une page Web qui contient un DOCTYPE s’affichera en mode Standards Internet Explorer 9. Une page sans DOCTYPE sera affichée en mode Quirks. Ainsi, une page Web exécutée en mode Quirks ne changera pas si vous cliquez sur le bouton d’affichage de compatibilité. Cela change aussi la version du navigateur communiquée au serveur Web.

Le fait de demander aux utilisateurs de cliquer sur un bouton pour assurer le bon rendu d’une page Web n’a rien de convivial. Une stratégie de groupe (Group Policy) prend désormais en charge le mode d’affichage de compatibilité, en particulier pour en faire la stratégie par défaut pour la zone Intranet local : Administrative Templates (Modèles d’administration) | Windows Components (Composants Windows) | Internet Explorer | Compatibility View (Affichage de compatibilité) | Turn on Internet Explorer Standards Mode for Local Intranet (Activer le mode standard d’Internet Explorer pour l’Intranet local).

Il s’agit d’une de ces stratégies doublement négatives. Vous devez désactiver le « mode standard » pour l’Intranet local, afin d’activer l’affichage de compatibilité. L’option par défaut est désactivée et vous devez la conserver comme cela. Cela ne signifie pas que vous souhaitez continuer d’écrire conformément à un standard vieux de 5 ans, mais que tout ce que vous avez écrit dans un ancien standard continuera de fonctionner. Evidemment, il est possible d’inclure une application Web particulière au moyen d’un standard moderne, mais vous ne pouvez pas employer les derniers standards tant que vous n’aurez pas déployé un navigateur récent.

Naturellement, une stratégie de groupe permet de préserver le fonctionnement des applications Web de partenaires extérieurs : Administrative Templates (Modèles d’administration) | Windows Components (Composants Windows) | Internet Explorer | Compatibility View (Affichage de compatibilité) | Use Policy List of Internet Explorer 7 sites (Utiliser la liste des sites d’Internet Explorer 7).

Si vous ajoutez des sites spécifiques à cette stratégie (elle utilise des noms de domaine de niveau supérieur ou TLDN), ils seront inclus dans l’affichage de compatibilité et leur fonctionnement devrait en être amélioré. L’affichage de compatibilité n’est toutefois pas la panacée. Il existe une raison spécifique pour laquelle il ne fonctionne pas systématiquement et cette raison remonte à Internet Explorer 6. Cette version d’IE ne lit le DOCTYPE que s’il s’agit de la toute première ligne de balise sur votre page.

Par conséquent, que se passe-t-il si une page commence comme suit :
<?xml version= »1.0″
encoding= »UTF-8″?>
<!DOCTYPE html PUBLIC « -//
W3C//DTD XHTML 1.0 Strict//
EN » « DTD/xhtml1-strict.dtd »>

Il s’agit d’un prologue courant d’une page XHTML, un dialecte HTML en vogue il y a quelques années. Dans Internet Explorer 6, toute page XHTML commençant ainsi s’affiche en mode Quirks, car le DOCTYPE n’est pas sur la première ligne. Internet Explorer 7 a résolu le bug, de sorte que les versions 7 et ultérieures assurent le rendu en mode Standards. Comme les règles de mise en page ont évolué entre le mode Quirks et même le mode Standard Internet Explorer 6, le problème peut être épineux.

Beaucoup pensent que le passage de sites Web du mode Quirks au mode Standards constitue la principale raison des défaillances à la pelle. Plus de 80 pour cent des applications se sont retrouvées en rade par ce seul changement. C’est précisément du fait de cette situation et de sa fréquence alarmante que nous avons ajouté une nouvelle stratégie de groupe pour Internet Explorer 9 (également disponible pour Internet Explorer 8 si vous appliquez le hotfix téléchargeable ici) : Administrative Templates (Modèles d’administration) | Windows Components (Composants Windows) | Internet Explorer | Compatibility View (Affichage de compatibilité) | Use Policy List of Quirks Mode sites (Utiliser la liste de stratégies du mode Quirks).

Vous pouvez ainsi activer le mode Quirks pour un site susceptible d’être affecté par la résolution du bug. Vous ne disposez pas des pleins pouvoirs, mais vous bénéficiez d’une méthode directe et basée sur des stratégies pour bien débuter. Pour un contrôle total, vous devez exploiter X-UA-Compatible, afin de sélectionner explicitement le mode de rendu souhaité. Pour des informations détaillées, rendez-vous sur la page MSDN Library « Defining Document Compatibility ». Mais, pour faire court, vous devez inclure un en-tête X-UA-Compatible: IE=5 ou une balise meta.

Il va vous falloir appréhender l’infrastructure de compatibilité et toutes les manières de la configurer. Par exemple, si vous conservez la configuration par défaut pour Intranet local, celui-ci va employer l’affichage de compatibilité. Ensuite, supposons que vous implémentiez une application HTML5. Si vous ne faites rien, elle utilisera par défaut le mode d’affichage de compatibilité, autrement dit le moteur d’Internet Explorer 7.

Internet Explorer 7 ne prend pas en charge HTML5 et votre application ne fonctionnera pas. Mais tout n’est pas perdu pour autant. Vous pouvez ajouter un en-tête au site Web et le configurer pour le mode Internet Explorer 9. Il est aussi possible d’ajouter des balises meta aux pages qui nécessitent HTML5. Dans ce cas, vous avez juste remplacé les paramétrages par défaut et vous bénéficiez d’un mode de rendu plus moderne.

Il est sensé d’ajouter des en-têtes X-UA-Compatible ou des balises meta à n’importe quelle application Web à laquelle vous accédez. Vous devez aussi l’exiger pour de nouvelles applications Web.

Les règles de préséance gèrent également cette notion. Il est possible de remplacer les paramètres par défaut de la stratégie de groupe avec l’en-tête X-UA-Compatible et de remplacer l’en-tête avec une balise meta X-UA-Compatible. Quel que soit le niveau de granularité sélectionné, vous maîtrisez complètement le mode de rendu. A vous de prendre les choses en main si vous souhaitez continuer à aller de l’avant. Par conséquent, assurez-vous de baliser vos sites et de définir des standards pour les nouvelles applications.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 04 février 2013