Mozilla vient de régler un « bug qui n’en est pas un » qui arrivait avec les sites truffés de règles spécifiques à Webkit.
Karl conclut :
In the end, the users deserve to have the right experience. The same way we recover from Web sites with broken HTML, we need to make the efforts to help users have a usable Web experience.
The battle is not over. Web sites still need to be fixed.
Karl sait évidemment toutes les raisons qu’ont les professionnels de ne pas vouloir faire ça, il les liste d’ailleurs plus haut dans cet article (et les défend souvent).
Mais là il ne s’agit pas du tout de la question du comportement standard d’un navigateur. La règle de base du comportement d’un navigateur c’est ça :
To facilitate experimentation and interoperability between implementations of various versions of HTML, the installed base of HTML user agents supports a superset of the HTML 2.0 language by reducing it to HTML 2.0 : markup in the form of a start-tag or end-tag, whose generic identifier is not declared is mapped to nothing during tokenization. Undeclared attributes are treated similarly. The entire attribute specification of an unknown attribute (i.e., the unknown attribute and its value, if any) should be ignored. On the other hand, references to undeclared entities should be treated as data characters.
En gros si tu as la flemme de lire, ami lecteur : ce qu’un navigateur ne comprend pas, il doit l’ignorer et traiter le reste du mieux qu’il peut [1]. Et c’est exactement ce qu’a fait Firefox jusque-là.
Et mieux (ou pire) encore dans la spec HTML 2 :
Information providers are warned that this convention is not binding : unspecified behavior may result, as such markup does not conform to this specification.
La spec elle-même dit en substance que si le développeur fait n’importe quoi, il faut s’attendre à ce que des choses cassent très probablement.
Ce que Mozilla tente de faire ici, c’est de compenser la très mauvaise conception des sites web par une interprétation, disons, très courtoise des bêtises qu’auront faites certains intégrateurs. C’est gentil pour l’utilisateur mais contre-productif pour le Web.
C’est ce que Microsoft a fait, il y a longtemps, avec Internet Explorer. Combien d’années leur a-t-il fallu pour faire machine arrière ? Tout le monde, au final, l’a subi : les développeurs du navigateur, les intégrateurs, et même les utilisateurs parce qu’on a dû subir des décalages par rapport aux recommandations pendant des années et des années, avec parfois impossibilité de mettre à jour le navigateur de peur (justifiée) de casser les services.
Le loup, la bergerie, tout ça…