Journal de bord

vendredi 10 février 2012

La jungle des préfixes

Il n’y a pas si longtemps, IE 6 était le navigateur dominant sur Internet. Techniquement parlant, le Web était plein de sites « optimisés-pour-IE6 ». Pour ce qui était des autres navigateurs… leurs utilisateurs n’avaient que leurs beaux yeux pour pleurer. IE 6 est mort à présent, cette époque est révolue, et tous les fabricants de navigateurs, y compris Microsoft, sont revenus dans le giron de la standardisation. Définitivement révolue, cette époque ? Pas vraiment… IE 6 a disparu, mais le problème est de retour.

WebKit, le moteur de rendu au cœur de Safari et de Chrome, installé dans les iPhones, iPads et les périphériques Android, est maintenant le navigateur ultra-dominant dans le Web mobile et techniquement, le Web mobile comporte de nombreux sites ne-fonctionnant-qu’avec-WebKit… Du coup, les autres navigateurs et leurs utilisateurs n’ont à nouveau que leurs yeux pour pleurer. De nombreux sites détectent l’Agent Utilisateur des navigateurs et filtrent les navigateurs non-WebKit. Tout comme par le passé avec IE 6, ce n’est pas une question d’innovation mais de monopole du marché par le matériel et les logiciels fournis avec celui-ci. Il y a cependant un aspect du problème que nous n’avions pas lors de l’ère IE 6 : ces sites Web sont également spécifiques à WebKit parce qu’ils utilisent des propriétés CSS expérimentales exclusivement préfixées par -webkit-* et sans utiliser leurs équivalents Mozilla, Microsoft ou Opera. Ainsi, même sans aucune détection du navigateur, ces sites Web apparaitront toujours cassés aux navigateurs ne reposant pas sur WebKit…

Dans beaucoup, voire dans la plupart des cas, les propriétés -webkit-* que ces sites spécifiques utilisent ont des équivalents -moz-*, -ms-* ou -o-*. Les dégradés, les transformations, les transitions, les animations, les coins arrondis sont tous et toutes suffisamment interopérables pour de pas dépendre du navigateur. Les créateurs de sites Web n’ont besoin que de quelques minutes pour rendre leurs sites compatibles avec Mozilla, Microsoft ou Opéra. Mais ils ne l’ont jamais fait.

Sans votre aide, sans une réaction forte, il n’y aura qu’une issue, dont nous sommes dangereusement proches : les autres navigateurs vont commencer à prendre en charge / implémenter eux-même le préfixe -webkit-*, en transformant une implémentation unique en un nouveau standard mondial. Cela transformera une part de marché en un standard de facto, une seule implémentation en un monopole mondial. À nouveau. Ça tuera notre processus de standardisation. La question n’est pas de savoir si ça va arriver, mais quand.

Laissez-moi être très clair : ce n’est PAS une situation hypothétique et je ne parle pas ici de quelque chose qui pourrait arriver. Tous les fabricants de navigateurs nous ont officiellement fait savoir que cela arrivera bien plus rapidement qu’on ne pourrait le croire parce qu’ils n’ont, je cite, « pas d’autre option ». Clarifions un autre point : ce n’est PAS un manque d’innovation de la part de ces fabricants de navigateurs, d’autant plus qu’ils supportent BIEN une propriété mais avec leur propre préfixe, suivant ainsi les règles du groupe de travail. Les préfixes constructeur n’ont pas échoué. Ils ne sont pas parfaits, mais ils préservent du chaos les auteurs de sites Web. Nous pouvons certainement les améliorer mais nous le pouvons uniquement si les préfixes constructeur restent des préfixes propres à chaque constructeur.

Cette situation s’est produite dans le passé avec IE 6, quand les navigateurs fonctionnaient uniquement sur les ordinateurs de bureau, et il a fallu dix longues années pour en sortir. Avec les milliards de navigateurs mobiles d’aujourd’hui, le Web pourrait ne jamais s’en remettre.

Daniel Glazman : “Le web ouvert à besoin de vous maintenant” (traduction OpenWebGroup).

Le quotidien dans les CSS des sites modernes :

a.button, a.button:hover {
-webkit-transition-property: background color;
-webkit-transition-duration: 2.5s;
-webkit-transition-timing-function: ease;
-moz-transition-property: background color;
-moz-transition-duration: 2.5s;
-moz-transition-timing-function: ease;
-o-transition-property: background color;
-o-transition-duration: 2.5s;
-o-transition-timing-function: ease;
-ms-transition-property: background color;
-ms-transition-duration: 2.5s;
-ms-transition-timing-function: ease;
transition-property: background color;
transition-duration: 2.5s;
transition-timing-function: ease;
}

1. Le 10 février 2012,
Daniel Glazman

Et si tu avais à écrire du -webkit-* sur des propriétés aujourd’hui implémentées par eux seulement pour les autres, cela serait pire. Tester son site serait encore plus compliqué… Et comme Apple n’a de toute manière pas sorti de specs sur ses fonctionnalités proprio, ça serait du revere-engineering, et donc des incompatiblités. Et peut-être des actions légales contre ça. Le foutoir.

2. Le 10 février 2012,
F’X

En fait, si les solutions techniques standardisées émergaient plus rapidement, les auteurs comme les navigateurs les utiliseraient. Si le standard suivait rapidement les besoins, aucun autre standard de facto n’apparaîtrait. C’est l’évolution :)

3. Le 11 février 2012,
Gilles

Je suis noob : y’a pas de joker (*) utilisable en CSS ? Question encore plus bête : les fonctions ont juste le début qui changent donc pourquoi ne pas créer une fonction SANS spécification du navigateur ?

4. Le 12 février 2012,
niemand

@Gilles: Originellement, le but des préfixes était (est?) de permettre aux éditeurs de navigateurs de tester la mise en oeuvre d’une propriété avant sa normalisation, chaque éditeur n’ayant pas forcement la même interprétation de la spec, d’un éditeur a l’autre les paramètres d’une propriété peuvent varier, ainsi que son comportement, le but étant de pouvoir avoir un feedback de la part des utilisateurs, avant de valider la norme.
La propriété sans préfixe, est normalement le produit final après accord entre les différents intervenants, et en théorie c’est uniquement elle qui devrait être utilisée en prod.
Un exemple.

Blah ? Touitter !

Froid polaire à Paris

2012-froid-polaire-paris.jpg

[Photo Dahmane.]

1. Le 10 février 2012,
Krysalia

une Nième photo de minou chez embruns…

la dame en tout cas n’a pas l’air d’avoir froid aux heu, yeux !

2. Le 10 février 2012,
Laurent Gloaguen

Elle a pas l’air très réchauffé non plus. Ah, ces Parisiennes…

3. Le 10 février 2012,
Karl, La Grange
4. Le 10 février 2012,
Karl, La Grange
5. Le 10 février 2012,
OlivierJ

Tiens, Dahmane, qui s’était fait connaître dans les années 90 (vu si ma mémoire est bonne dans le journal du Hard, et aussi dans le magazine Union). Il a vraiment du goût en terme de femmes. Laurent, que t’arrive-t-il ? :)

6. Le 10 février 2012,
Laurent Gloaguen

Je ne suis pas sectaire…

7. Le 11 février 2012,
ossobuco

Le photographe a pas froid au nœud, c’est clair.

8. Le 12 février 2012,
ano

c’est ça de ne pas porter de fourrure !

9. Le 12 février 2012,
Karl, La Grange

Dilemna Un sens du danger

10. Le 12 février 2012,
Martine

C’est Coeur de Pirate qui fait une autre séance photo. Ça va, elle a l’habitude de l’hiver.

11. Le 12 février 2012,
Laurent Gloaguen

Rire :-)

Blah ? Touitter !