Ce sera mon dernier message sur ce sujet puisque je vois que nous n’avons pas la même vision des choses, mais je vais quand même répondre à certains points.

Tout d’abord : non, je ne me crois pas plus intelligent que « ces gens qui font les navigateurs », et bien au contraire, sinon, je ne serai pas en train de dire qu’ils font du bon boulot, notamment pour IE.

Un hack : c’est une bidouille comme par exemple ajouter un « * » ou un « / » dans le nom d’une propriété afin que celle-ci ne soit reconnu que par certaines versions de IE. Exemple, IE6 ne reconnaît pas le sélecteur +, plutôt que d’utiliser un hack, il y a toujours moyen de modifier son CSS pour le rendre compatible toutes versions confondues. Au pire, il est possible une CSS spécifique pour IE. Mais je ne suis pas là pour un cours de CSS, mieux vous orienter vers des gens bien plus intelligents que moi…

Rendre le rendu le plus conforme possible ne veut pas dire casser la rétrocompatibilité, et heureusement !!! Maintenant, si un intégrateur aujourd’hui code encore en pensant « alors, ça je le fais pour IE et ça je le fais pour les autres… », c’est certainement lui qui n’a rien compris !

Concernant l’histoire des navigateurs, c’est justement tout l’inverse de ce que vous dites : jusqu’à maintenant les évolutions des navigateurs n’ont pas perturbé les sites existants, sauf bien entendu ceux codés avec les pieds (et encore, vu les horreurs que je vois passer sur internet, les navigateurs sont quand même parfois bien motivés pour les afficher…). Un exemple concret : j’ai du ressortir dernièrement du placard un site codé du temps de IE7, et bien, croyez-le ou pas, mais il n’a pas pris une ride, que ce soit pour IE ou les autres… Mais déjà à l’époque, bien entendu, je me suis forcé à ne pas faire n’importe quoi dans le code… Et si mon exemple vous laisse songeur, regardez simplement tous ces sites qui existent et qui ont été codés sous d’anciennes versions : ils s’affichent toujours bien, non ?

Votre question : Quel est le problème en pratique ? Mais il est très simple : si vous bloquez un rendu à une certaine version, vous vous privez volontairement des améliorations futures que peut apporter un moteur de rendu, sous prétexte que ces améliorations peuvent casser votre design… Et vous ne répondez pas à ma question, ni à celle posée plus haut par un autre Philippe : Pour Firefox et pour Chrome, vous affichez un message sur votre page d’accueil « attention, ce site est codé pour FF23, utilisez FF24 à vos risques et périls… », ce n’est pas séreux, voyons…

Vous prétendez qu’une mise à jour peut complètement casser votre structure, là, je dirai que ce n’est pas seulement vos bonnes pratiques qu’il faut réviser, mais tout depuis les bases…

Et pour en finir avec cette balise, elle ne devrait même pas exister. Personnellement, je ne m’en sers uniquement que parce que je veux être sûr que IE ne passe pas pour une raison obscure Microsoftienne en mode Quirks, ce qui arrive, comme je l’ai déjà dit, même pour des sites bien codés et parfaitement valides. Et je crois que cette remarque vous a également été faite plus haut et restée sans réponse.

Mais le pire dans tout ça, c’est que vous dites dans votre article qu’il vaut mieux ne pas utiliser cette balise. Alors là, je ne vous comprends plus : ne pas utiliser cette balise revient à toujours vouloir utiliser la dernière version du moteur du navigateur… En résumé, ne pas l’utiliser signifie IE=Edge (la différence étant d’être sûr avec cette balise de ne pas être en mode Quirks ou en rétrocompatibilité).

Ce que vous dites sur les préfixes n’est pas non plus pertinent : si des navigateurs souhaitent implémenter certains modules de CSS3 avant qu’ils ne soient finalisés (plusieurs années pour certains…), ou est le problème ? Si vos CSS sont bien codées, vous utilisez par exemple -moz-border-radius, suivi de -webkit-border-radius, suivi de border-radius (sans préfixe). Le jour ou le navigateur implémente la version finale, ce sera la version sans préfixe qui sera utilisée. J’ai pris l’exemple des arrondis, mais cela est valable pour les dégradés, pour les transformations, etc…