Une situation proprement hallucinante est en train d'arriver, les fabricants de navigateurs Mozilla, Microsoft et Opera parlent très sérieusement d'inclure le préfixe constructeur -webkit
en réaction à de trop nombreux sites (mobiles) qui utilisent uniquement ce préfixe en délaissant les autres préfixes constructeurs, et de frelater leur agent utilisateur afin d'être détectés comme des navigateurs de type WebKit.
Rappelons que le moteur WebKit est très répandu dans le web mobile, via Safari mobile pour n'en citer qu'un (iPhone, iPad, etc.).
Rappelons aussi ce qu'est un préfixe constructeur : quand un fabricant de navigateur désire implémenter une propriété non standard, il doit la préfixer avec son préfixe constructeur. Il en existe plusieurs : -moz
pour le moteur Gecko, -o
pour Opéra, -ms
pour Microsoft et -webkit
pour tous les navigateurs utilisant WebKit (Safari, Chrome, etc.).
Le but n'est pas d'embêter les concepteurs de sites en multipliant les lignes de codes CSS, mais surtout d'avoir un processus de standardisation commun : ces implémentations expérimentales permettent de tester et d'avoir des retours d'expériences, et tout cela permet de créer le standard final, la propriété sans préfixe constructeur donc. Tout le monde joue collectif et le web à tout à y gagner.
En quoi cette idée de mettre le préfixe WebKit dans tous les moteurs de rendu est-elle mauvaise ?
Vous vous rappelez la triste période ou IE6 était le standard de facto, car il avait une très forte part de marché ? Je pense qu'il n'est pas nécessaire d'expliquer les dangers qu'il y a à décréter qu'une part de marché, aussi grosse soit-elle, devienne un standard unilatéral. Fouillez dans mon blog, j'ai écrit d'innombrables billets sur le sujet.
La situation est différente, mais le danger est le même : le processus de standardisation est mis à mal. Ajoutez à cela que le paysage des navigateurs mobiles est bien plus hétéroclite que celui des navigateurs desktop, vous imaginez la pagaille si chacun décide de faire n'importe quoi ?
On reviendrait à l'enfer de la balkanisation du web, alors qu'on a mis péniblement 10 longues années pour en sortir.
Quand à l'idée de frelater leur agent utilisateur, c'est d'autant plus mauvais, ces chaines sont déjà peu fiables, elles le seraient encore moins.
Tuons quelques contre-vérités :
- je n'écris pas une charge contre WebKit, Apple ou Google… WebKit est un bon moteur de rendu,
- je ne sous-entends pas que les autres moteurs de rendu sont moins bons, bien au contraire,
- je ne dis pas que les préfixes constructeurs sont parfaits, néanmoins ils ont le mérite d'exister et de participer à la création de standards, et ces standards nous sauvent bien la mise parfois !
Par contre, à mon avis, ce sont de très mauvaises idées que proposent Mozilla, Microsoft et Opera, même si je comprends le diagnostic, je n'approuve pas du tout les solutions.
Les intégrateurs ont leur part de responsabilité en omettant d'utiliser tous les préfixes constructeurs quand ils utilisent des propriétés non-standards. D'autant plus si ces propriétés fonctionnent avec d'autres préfixes constructeurs !!!
Les développeurs qui font des sites mobiles qui ne fonctionnent-que-pour-WebKit font une lourde erreur à mon sens. Au moins aussi lourde que faire du Optimisé pour IE6 il y a quelques années. Et restreindre cela est encore plus déplorable !
C'est d'autant plus lamentable qu'il est possible de faire de très bonnes choses pour WebKit… qui fonctionnent sur les autres navigateurs comme Firefox, car les standards sont plutôt bien implémentés chez tout le monde, et c'est en progrès constant.
Autre aspect, Apple a une part de responsabilité quand ils prônent l'utilisation de standards… mais que certaines de leurs démos HTML5 ne fonctionnent qu'avec Safari. Typiquement, dans leurs documentations, ils devraient également expliquer que leurs propriétés non-standards pour faire des sites sur iPhone doivent être doublées par des propriétés avec d'autres préfixes constructeurs, et celle en version standard !
Je tire sur la pomme, mais tout acteur qui restreint un service, un site, etc. à un unique navigateur ou moteur de rendu ne fait et ne vaut guère mieux.
L'appel de Daniel Glazman est certes un peu violent, je ne partage pas son goût des majuscules ni son idée de chasse aux sorcières, mais c'est un bon coup d'électrochoc, et son propos n'en reste pas moins vrai, il a raison de soulever ces problèmes.
Florent a écrit un très bon article sur le sujet sur Alsacréations : Bonnes pratiques CSS : le Web ouvert a besoin de vous.
Voici le lien vers l'appel de Daniel Glazman : THE OPEN WEB NEEDS YOU *NOW*.
Une traduction francophone est en cours, j'y participe modestement. Cet article sera complété ou mis à jour dans les jours qui suivent.
Ajout du 10/02/2012 : Openweb relaie l'appel de Daniel Glazman et en propose une version francophone.
Comme je te l'ai dit hier sur Twitter, je ne suis pas de l'avis de Daniel Glazman. Surtout sur la chasse aux sorcières. J'avais pas suivi l'affaire du spoofing de UA, mais s'ils veulent implémenter certain des préfixes de webkit je ne suis pas tout-à-fait contre (réinventer la roue, tout ça tout ça).
Pour moi, partir en croisade contre le non respect des standards est une folie. Il n'est pas digne d'un bon intégrateur de mal préfixer les propriété CSS3 et encore moins de faire un site compatible sur un seul moteur de rendu. Mais personne n'est parfait, d'ailleurs si on regarde le site du W3C malheureusement ils n'utilisent pas tous les préfixes.
La différence entre eux et les inté. est le fait qu'eux feront la mise à jour si on leur indique (comme l'a signifié Daniel Glazman).
Chrome (WebKit), n'est pas le IE6 des années 2000. Il est, pour moi, le plus avancé des moteurs de rendu. Par avancé, je n'entends pas le meilleur, mais celui qui offre le plus de possibilités.
Et j'avoue qu'il m'est arrivé (moins maintenant), de faire une dégradation graphique d'un site en fonction du navigateur (enfin, en utilisant les préfixes de Webkit qui n'avait pas d'équivalent -Gecko ou autre).
Pour résumé, et avant de me perdre définitivementdans mes explications, je n'aime pas le ton et la façon dont Daniel Galzman a appelé au boycott, et j'ai aimé la façon dont HTMLEULEU a osé lui répondre. Je suis mitigé sur les avis des uns et des autres, mais je partage pas mal de tes propos finalement.
Dernier point pour la route, je ne pense pas malheureusement pas, que beaucoup de navigateurs voient le jour sur mobile, d'une part à cause du monopole Android/iOS qui utilisent tous les deux webkit, et d'autres part à cause des difficultés de publications que posent Google et Apple dans leurs stores (bien que cela ait tendance à s'adoucir).
Bonne journée (et sans rancunes).