Résumé

  • CSS2 est devenue recommandation du W3C en mai 1998. La spécification CSS2.1 promettait de conserver les parties largement implémentées, d’intégrer les errata, de modifier les règles contredites par la pratique et de retirer les fonctions jamais implémentées.
  • Le Candidate Recommendation de 2007 exigeait deux implémentations interopérables par fonction. Le rapport de 2011 compte 9 418 tests ; 9 191 tests de comportement obligatoire ont réussi dans au moins deux implémentations.

Une recommandation trop large

CSS2 était une promesse écrite. Le texte de 1998 décrivait les polices téléchargeables, @font-face, la sélection des polices et un modèle de mise en page ambitieux. Pour les auteurs, cette largeur était utile : une feuille de style pouvait demander une présentation avant que le client ne possède la police ou ne partage le même calcul.

Mais chaque règle ajoutait une dette d’interprétation. Une recommandation ne prouve pas qu’un navigateur peut obtenir le même résultat qu’un autre. La version CSS2 révisée de 2008 finira par dire que le document n’était plus maintenu et à orienter les auteurs vers CSS2.1.

Le test devient une condition d’entrée

L’introduction de CSS2.1 expose sa méthode : garder les parties acceptées, intégrer les errata, modifier le texte lorsque les implémentations divergent massivement, supprimer ce qui n’a pas été implémenté et ce qui doit passer en CSS3. Le Candidate Recommendation de 2007 rend cette méthode vérifiable : deux implémentations interopérables, des tests publics et six mois de période CR. Une fonction sans implémentations ou sans tests suffisants pouvait disparaître.

La liste des changements montre le prix. font-stretch, font-size-adjust, @font-face, des éléments de sélection de polices, text-shadow, marker-offset et plusieurs valeurs de listes quittent CSS2.1. Le groupe de travail ne déclarait pas ces idées inutiles ; il refusait de les faire passer pour un plancher commun.

9 000 tests pour tenir une promesse plus petite

Le rapport d’implémentation de 2011 a testé 24 agents utilisateurs issus de sept implémentations, sur huit systèmes. Sur 9 418 tests, les 9 191 comportements obligatoires ont été réussis par au moins deux implémentations. La recommandation finale devenait donc un filtre de compatibilité, pas un catalogue de souhaits.

Le W3C a gagné une base stable en abandonnant des lignes de CSS2. Les auteurs perdaient des fonctions nommées ; ils obtenaient une cible plus étroite et plus praticable. CSS2.1 a réussi en faisant tenir la promesse dans les tests et dans le code.