> Pour rappel, il n’est pas nécessaire d’utiliser de hacks, même pour rendre un site compatible avec IE6…

Tout dépend ce que tu ranges dans cette catégorie. Tu vas probablement souvent utiliser deux ou trois structures différentes en te basant sur la cascade pour que chaque navigateur comprenne ce qu’il peut. Très bien, sauf que si le lendemain un navigateur comprend un peu un truc et un peu un autre, ça risque de mal se passer, tout simplement.

> Il est également fort peu probable que Microsoft décide du jour au lendemain de « casser » un rendu qu’il tend à rendre le plus conforme possible à mesure des versions de IE.

Pourtant cette phrase porte une superbe contradiction. Si on tend à rendre le rendu le plus conforme possible, c’est qu’on le change, donc forcément qu’on va casser des choses un jour, même si on l’évite le plus possible. Même sans ça, on ajoute des choses, on en supporte qui ne l’étaient pas avant. Ça a forcément des effets de bords à un moment où un autre.

Croire que ça n’arrive pas c’est nier toute l’histoire des navigateurs. Croire que ça n’arrivera plus c’est avoir une foi dans l’avenir qui relève plus de l’idéologique que du pratique.

> D’une part, certains sites, bien que semblant très bien codés et tout aussi bien déclarés, s’affichent en mode IE7, voire en Quirks, sans raison apparente

Autre qu’une foi en l’avenir un peu moins optimiste que la votre ?

Mais surtout : Quel est le problème en pratique ? Si ça fonctionnait lors de la conception et que ça fonctionne toujours, sans risque et sans casse ? Le simple fait de vous dire dans votre fort intérieur qui vous n’utilisez pas la future version du moteur pas encore sortie à l’heure de la mise en production du site ? et alors ?

Ces sites fonctionnent, tout en ayant fait un choix moins risqué que le votre. Si ça vous fait mal, peut être fixez-vous mal vos objectifs.

> bloquer un rendu pour une version de IE serait comme interdire à un utilisateur de Chrome ou de Firefox de mettre à jour son navigateur sous prétexte que comme on a testé le site avec la version 23 de Firefox, on ne sait pas trop si ça va fonctionner avec la version 24…

Sauf que oui mais non.
On ne bloque rien, on déclare qu’on est compatible avec un certain moteur. Si Microsoft décide que le moteur N+1 ne risque nullement de casser un rendu avec le moteur N, croyez bien que la déclaration IE=N fonctionnera parfaitement avec le moteur N+1. En fait c’est même ça l’intention. Le fait qu’on utilise les versions de IE et non celles du moteur est juste une question d’interface utilisateur.

Si un jour IE pense qu’il fonctionne avec des moteurs suffisamment stables d’une version à l’autre non seulement il se permettra de tracer le rendu avec la version suivante malgré la déclaration X-UA, mais en plus il finira par abandonner la version X-UA.
Damned! c’est d’ailleurs exactement ce qu’il s’est passé avec IE11.

> S’il fallait attendre que CSS3 soit complètement finalisé avant de l’utiliser, on y serait encore dans 10 ans…

Si vous croyez que les préfixes ne sont là que parce que CSS3 dans son ensemble n’est pas finalisé, c’est vous qui survolez beaucoup.
Mais on revient au sujet initial : si vous n’attendez pas que ce soit finalisé, c’est que ça peut être modifié (et sur CSS3 les propriétés qui ont été abandonnées après implémentation ou qui ont changé de sens, il y en a à la pelle). Comment vous assurez-vous que vous ne cassez rien ?

Je ne parle pas de dégradation du genre « oh, il n’aura pas les bords arrondis » mais de structures qui peuvent être totalement illisibles parce que tel ou tel détail sur l’algo de rendu a été précisé de façon différente de l’implémentation initiale.

Vous pouvez me dire de réviser mes bonnes pratiques, je vous dirai de réviser l’histoire des navigateurs.

Mais surtout vous êtes en train de vous dire plus intelligents que tous ces gens qui font les navigateurs que vous utilisez (et croyez-moi, les développeurs des moteurs de rendus sont parmi les plus smart). Si les dev de IE ont jugé pertinent de mettre en place ce X-UA jusqu’à IE10, c’est que *eux* ont jugé que la compatibilité était risquée vis à vis des évolutions de leur moteur. Pensez-vous être tellement au-dessus pour prétendre que c’est inutile ?

Votre sortie sur les préfixes est du même tonneau. Ce qu’il se passe en ce moment c’est que justement les navigateurs sont sur le point de réinternaliser les directives préfixées. Certaines vont devenir masquées par défaut et utilisables uniquement après activation dans les préférences, pour bien marquer qu’elles ne sont pas toutes là pour être utilisées ; et les autres vont probablement passer plus rapidement sans préfixes pour dissuader les gens d’utiliser des versions préfixées. Vous allez à contre-courant de toute l’histoire là aussi.

Si j’osais : Il faudrait réviser vos bonnes pratiques.

Mon billet a plus d’un an mais non seulement il n’a pas pris une ride, mais en plus l’histoire récente lui donne plutôt raison.