Langues

Ceci est une traduction. Elle peut avoir des erreurs ou être dépassée par rapport à la version anglaise. Traducteur(-trice): Anne-Marie Luigi

Niveaux, instantanés, modules pour Cascading Style Sheets…

Le processus de normalisation CSS

CSS est à la fois une norme et une technologie en développement. Savoir quelle partie de CSS est terminée et quelle partie ne peut pas encore être utilisée est un challenge. C'est comme ça depuis de nombreuses années et c'est susceptible de le rester pour un peu plus longtemps : la partie standard se développe lentement, la partie encore en développement s'est également développée, mais devrait éventuellement diminuer.

Cet article explique comment le groupe de travail CSS assure lui-même le suivi. Cela vous sera peut-être utile la prochaine fois que vous verrez une nouvelle publication sur le site du W3C et que vous vous demanderez à quel point elle est proche d'une norme.

Trouver le stade le plus avancé de CSS

Pour les fabricants de logiciels, il existe un moyen facile de savoir quelles parties de CSS doivent être implémentées et quelles parties ne le sont pas encore. Depuis 2007, le groupe de travail publie des instantanés qui expliquent exactement cela. Une grande partie du texte de cet article est en fait tirée de l'instantané de 2010.

Jusqu'à présent, il y a eu quatre instantanés, le plus récent s'appelle CSS Snapshot 2017. L'intention est d'en faire apparaître de nouveaux tous les un ou deux ans, en fonction du degré de stabilité de CSS au cours de cette période. L'instantané le plus récent peut toujours être trouvé à cette adresse URL :

http://www.w3.org/TR/CSS/

Les implémenteurs intéressés par les fonctionnalités expérimentales, et tous ceux qui veulent aider à développer le CSS, peuvent également trouver la page de travail actuel du CSS utile : elle montre l'état actuel et une brève description de toutes les parties existantes du CSS.

Pour les utilisateurs de CSS, la situation est malheureusement moins claire. Même si une partie du CSS devient une norme (c'est-à-dire une recommandation du W3C), cela signifie seulement que cette partie a été correctement mise en œuvre dans un certain nombre d'implémentations. Cela ne signifie pas que toutes les implémentations de CSS le supportent. La méthode par tâtonnements et des solutions de secours restent nécessaires.

Modules et snapshots

À l'origine, en 1994-1995, il était prévu de créer une seule spécification CSS, de taille comparable, mais avec des caractéristiques légèrement différentes de celles du niveau 2 actuel ( avec mise en page du template, titres en enfilade, colonnes, polices téléchargeables et en-têtes et pieds de page, mais sans positionnement absolu). Ce serait un langage de feuille de style "temporaire", suffisamment bon pour éviter des choses comme les balises FONT et l'utilisation abusive des tableaux HTML pour une période qui pourrait aller jusqu'à dix ans. L'expérience aiderait à créer un successeur meilleur et plus puissant.

Les choses ne se sont pas passées comme ça. Il est rapidement devenu évident que les fabricants de navigateurs de l'époque n'étaient pas encore assez compétents en typographie et en texte structuré, et que CSS devait être beaucoup plus simple si nous voulions qu'il soit implémenté. Cela a conduit à la scission entre les niveaux 1 et 2. Plus tard, nous avons également découvert que les utilisateurs ne voulaient pas remplacer CSS et voulaient plutôt le faire évoluer.

Le groupe de travail CSS a choisi d'adopter une approche modulaire pour CSS au-delà du niveau 2, où chaque module définit une partie de CSS, plutôt que d'écrire une seule spécification monolithique. Cela divise la spécification en blocs plus faciles à gérer et permet une amélioration plus immédiate et incrémentale de CSS.

Un document séparé, le CSS snapshot, définit la portée et l'état actuels de CSS. Il ne comprend que des modules que le groupe de travail considère comme stables et pour lesquels il y a suffisamment d'expérience de mise en œuvre pour être sûr de cette stabilité.

Les spécifications listées dans le snapshot ne sont cependant pas complètement gelées. Elles comprennent les W3C Candidate Recommendations (voir ci-dessous). Mais même les W3C Recommendations (normes) peuvent encore faire l'objet d'errata.

Statuts du document

Module et snapshot sont deux types de documents. Le groupe de travail CSS utilise ces appellations comme expliqué ci-dessus, mais d'autres groupes de travail peuvent les utiliser de différentes façons. D'autre part, pour indiquer la stabilité de chaque document, le W3C a un vocabulaire que tous les groupes de travail partagent :

Working Draft (WD)
Les WD sont publié au cours du processus de rédaction de la spécification. Le but est de créer un instantané de l'état actuel de la spécification et de solliciter les commentaires du W3C et du public. La spécification est toujours considérée comme instable et elle est souvent incomplète.
Last Call Working Draft (LC ou LCWD)
En publiant un Last Call Working Draft, un groupe de travail indique qu'il considère que la spécification est complète et que toutes les questions sont résolues. La publication d'un Last Call Working Draft annonce que cette spécification évoluera vers une Candidate Recommendation, à moins que des problématiques importantes ne soient soulevées. La période du Last Call est une dernière chance pour les intervenants de soumettre des questions avant la transition vers le CR.
Candidate Recommendation (CR)
En publiant une Candidate Recommendation, un groupe de travail indique qu'il a résolu tous les problèmes identifiés. Un CR est également un appel à des implémentations.
Proposed Recommendation (PR)
Pour finir avec le CR et entrer dans cette prochaine étape, la spécification a besoin d'une suite complète de tests et de rapports d'implémentation prouvant que chaque fonctionnalité est implémentée de manière interopérable dans au moins deux implémentations disponibles sur le marché. Les membres du W3C sont priés de revoir les spécifications une dernière fois.
Recommendation (REC)
C'est l'étape finale : un standard. A ce stade, il ne devrait plus y avoir de changements, bien qu'il puisse bien sûr arriver que des errata soient trouvés et qu'il faille éventuellement réviser un REC. Un REC peut finir par devenir obsolète.

Deux pas en avant, un pas en arrière

La piste de recommandation du W3C est comme un jeu de "snakes and ladders" : on grimpe et on chute. D'après l'expérience du CSS WG, la procédure de recommandation n'est pas linéaire. La révision plus large déclenchée par un LCWD donne souvent lieu à au moins un autre projet de travail, voire plusieurs. Plus significatif encore, l'expérience montre que de nombreuses spécifications entrent deux fois dans le CR, parce que les tests de mise en œuvre mettent souvent en évidence des problèmes importants dans la spécification et la renvoient donc à l'ébauche de travail. Par conséquent, bien que CSS WG ait une idée claire de la stabilité des spécifications CSS, il est difficile pour quelqu'un de l'extérieur du groupe de travail d'arriver à cette même compréhension basée sur le statut officiel d'une spécification. Pour cette raison, un CSS Snapshot n'inclut pas nécessairement tous les documents du CR : le groupe de travail peut déjà savoir qu'un certain CR devra être révisé.

Niveaux 1, 2, 3 et supérieurs

Cascading Style Sheets n'a pas de versions au sens traditionnel, mais plutôt des niveaux. Chaque niveau CSS s'appuie sur le précédent, affinant les définitions et ajoutant des fonctionnalités. L'ensemble de caractéristiques de chaque niveau supérieur est un sur-ensemble de tout niveau inférieur, et le comportement autorisé pour une caractéristique donnée dans un niveau supérieur est un sous-ensemble de celui autorisé dans les niveaux inférieurs. Un agent utilisateur qui se conforme à un niveau supérieur de CSS est donc également en conformité avec tous les niveaux inférieurs.

CSS Niveau 1
Le Groupe de travail CSS considère que la spécification CSS1est obsolète. En pratique, le niveau CSS 1 est défini comme l'ensemble des caractéristiques de la spécification CSS1 (propriétés, valeurs, règles, etc.), mais en utilisant la syntaxe et les définitions de la spécification CSS 2.1. CSS Style Attributes définit son inclusion dans les attributs de style spécifiques aux éléments.
CSS Niveau 2
Bien que l'ancienne spécification CSS soit techniquement une recommandation du W3C, elle est passée à l'étape de recommandation avant que le W3C n'ait défini l'étape Candidate Recommendation.CSS Style Attributes définit son inclusion dans les attributs de style spécifiques à l'élément. Au fil du temps, l'expérience de mise en œuvre et d'autres examens ont mis en évidence de nombreux problèmes dans la spécification CSS2. Ainsi, au lieu d'élargir une liste d'errata déjà lourde, le groupe de travail CSS a choisi de définir CSS Level 2 Révision 1 (CSS 2.1). En cas de conflit entre les deux spécifications, CSS 2.1 contient la définition définitive. Les caractéristiques de CSS2 qui ont été supprimées de CSS 2.1 devraient être considérées comme étant à l'étape Candidate Recommendation. Mais, notez qu'un grand nombre d'entre eux ont été ou seront intégrés dans un projet de travail CSS Level 3, qui, une fois qu'il atteindra le CR, rendra obsolète les définitions dans CSS2.
CSS Level 3 et au-dessus
CSS Level 3 s'appuie sur le niveau 2 module par module. Chaque module ajoute des fonctionnalités et remplace une partie de la spécification CSS 2.1. Le groupe de travail a pour objectif de faire en sorte que les modules CSS ne contredisent pas la spécification CSS 2.1, mais qu'ils ajoutent seulement des fonctionnalités et affinent les définitions. Les modules se développent à des vitesses différentes, en fonction de leur complexité et des priorités du groupe de travail. Par exemple, Selectors Level 3 est déjà une recommandation et il y a même un premier projet de Selectors Level 4, tandis que le module CSS Line module level 3 en est encore à son premier jet.
Bert Bos, coordinateur de l'activité style
Copyright © 1994–2023 W3C® Privacy policy

Last updated lun. 11 sept. 2023 17:41:20

Langues

À propos des traductions