mozilla

Le sniffing de DOCTYPE dans Mozilla

 

Ce document décrit comment Mozilla utilise la déclaration DOCTYPE pour choisir entre le mode strict et le mode dégradé quirks. Le code qui permet cette détermination est la fonction DetermineParseMode() dans nsParser.cpp. Consultez le bug 1312 et le bug 55264 pour plus d'informations sur l'histoire de cette détermination. Consultez le bug 153032 pour la création du mode « presque standard » depuis Mozilla 1.0. L'objectif recherché pour ce comportement a été le suivant :

  • la plupart des pages text/html existantes sur le Web qui ont besoin d'un mode dégradé pour s'afficher correctement doivent être affichées avec le mode quirks ( presque toutes, plutôt que toutes, pour répondre également aux points suivants).
  • Les auteurs de pages Web écrivant selon les standards en vigueur doivent pouvoir basculer vers le mode strict.
  • Les pages écrites en utilisant n'importe quel identifiant public dans leur déclaration DOCTYPE qui apparaîtront dans l'avenir doivent s'afficher en mode strict.

En d'autres termes, l'algorithme est la meilleure approximation que nous ayons trouvée pour déterminer quelles pages ont été écrites après que Mozilla ne devienne un navigateur important sur le Web.

Mode standard complet

Les lignes suivantes déclenchent le mode standard complet :

Mode presque standard

Les lignes suivantes déclenchent le mode presque standard. Le mode presque standard a été créé après les versions 1.0 et 1.1alpha de Mozilla, mais avant les versions 1.0.1 et 1.1beta. Avant la création de ce mode, ces doctypes permettaient de basculer en mode standard complet.

Mode dégradé quirks

Les lignes suivantes déclenchent le mode quirks (cette liste doit être complète afin que les pages existantes sur le Web basculent en mode quirks) :

Les sites suivants ont été utiles pour préparer cette liste : W3C HTML Validator, HTMLHelp HTML Validator.

Notez que toutes les comparaisons d'identificateurs publics sont insensibles à la casse, à cause du nombre important de pages qui utilisent des identificateurs ayant une casse incorrecte (ce qui est techniquement incorrect puisque les chaînes de caractères sont sensibles à la casse).

Voir aussi

Informations sur le document original

 

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : BenoitL, tregagnon, Mgjbot, Chbok
Dernière mise à jour par : tregagnon,