Tout à commencé sur la découverte de ce site de comparaison du rendu de la propriété css box-shadow. Comme vous pouvez le constater, il y a comme des “légères” différences de rendu[1], ce qui m’a fait m’en émouvoir sur twitter (oui j’ai migré là bas maintenant, c’est pour ça que vous n’avez plus d’articles). En effet, comment peut-on dire d’un coté que “css3 is now” et d’un autre constater que le rendu des navigateurs sur le même élément n’a rien à voir ? (sérieux quoi, une fucking ombre toute simple, en 2011 !!!) Cette réflexion a fait l’effet d’une pipe bomb clignotante sur une horde de zombies, et j’ai eu droit à de nombreux reply à base de “pixel perfect is bad”, “c’est NORMAL que ça ne soit pas rendu pareil”, et autres “faut lâcher prise sur le design”.

très bien, MAIS

L’anti pixel perfect : une posture hype devant une impuissance technique ?

Commençons par cet élément qui me titille : on a vu qu’il était très à la mode de dire que le pixel perfect ça avait quelque chose de dépassé, que c’était une lubie de designer crispé qui ne connaissait rien au nouvelle technologies. J’entends bien, mais si les navigateurs affichaient les sites de manière identique au pixel près, est-ce que les intés ne trouveraient pas ça normal ? Je ne crois pas, c’est donc bien une impossibilité technique qui dicte ce “crédo” du “lâcher prise”. En quoi est-ce “NORMAL” qu’un site ne s’affiche pas pareil partout ? Ça ne serait pas mieux si c’était le cas ? Je crois que si. Le but est donc de tendre vers cet objectif. IL est acquis que tous les navigateurs affichent un code couleur hexa de la même façon, pourquoi il n’en irait pas de même des autres propriétés ? On voit bien ici la contradiction énorme.

Les contraintes et les possibilités du média, l’évolutivité du web

L’argument numéro 2 pour défendre ce crédo qu’il est normal qu’un site ne s’affiche pas pareil partout, est que le web n’est pas figé, qu’il peut s’afficher sur plein de périphériques différents, de plein de manières différentes, et que c’est ça qui est génial, et que ne pas l’intégrer veut dire que tu es complètement à la ramasse. Merci, on vous avait attendu pour comprendre les contraintes du média. Au niveau macro, à moins d’être resté en 2001, on a tous saisi et intégré que le web se déclinait partout, et les webdesigners compétents n’ont pas attendu les intégrateurs pour faire des sites qui passaient autant sur l’ipad de mémé que sur le 27” de pépé, de manière réfléchie et contrôlée.

C’est pour ça qu’il est totalement malhonnête de mélanger l’argument du média au niveau macro et les bugs d’affichage au niveau micro. Oui c’est normal que le site ne s’affiche pas pareil sur un iphone que sur une station de la nasa, merci, je connais mon travail, mais NON ça n’est pas “normal” que la couleur du texte passe de noir à rouge sans raison ou que cet ombre ne soit pas rendue de la même façon, il n’y a aucune raison à ça sauf si je l’ai décidé de cette façon. Faut-il encore rappeler en 2011 que le graphisme n’est PAS une “couche” dispensable, mais un vecteur d’information au même titre que le reste ? (ne vous précipitez pas sur le form de commentaires, il reste du billet à lire)

Le web, c’est pas du print

Vieux poncif à la vie dure, tous les graphistes viendraient “du print” et “voudraient une maquette de plaquette sur les internets”.

Je pose la question : en quoi est-ce dégradant et dépassé de vouloir “la même chose partout” ? Aujourd’hui ça n’est techniquement pas possible, mais si ça l’était ? les plus intégristes de intégrateurs feraient exprès de déformer le design selon les navigateurs ? Soyons sérieux, on voit une fois de plus que cet argument n’est que technique. Si pour votre faire-part de mariage l’imprimeur vous dit qu’il n’a pas la typo et que du coup tout est en comic sans, que ça fait partie des contraintes ma pauv’lucette, vous trouveriez-ça normal ? Ou vous iriez lui passer les organes génitaux dans la presse offset ? Pouratnt il pourra vous rétorquer qu’il faudrait un peu lâcher prise sur votre design.

Pour revenir au print, tellement décrié et moqué quand un DA ose demander du pixel perfect (par moi le premier, je vous rassure, quand je vois une belle maquette de printeux, mai sje ne parle pas de maquette de printeux ici) il faut se dire que cette industrie a réussi à se STANDARDISER. Au lieu de dire bêtement “si tu veux le même rendu partout t’as qu’à faire du print avec des petits pantones blablabla” dites vous que le monde du print a justement réussi ce tour de force, malgré des acteurs, des machines, des consommables tous différents et de marque variées. Il y a autant, si ce n’est plus de combinaisons procédés/presses/encres/papiers que de combinaison plateformes/os/navigateurs. Et POURTANT grâce aux standards on arrive à un rendu uniforme en print. faut-il moquer cet état de fait ou au contraire s’en inspirer ?

Les standards devraient être synonymes de pixel perfect

Les plus fervent défenseurs du l’anti pixel perfect sont souvent les plus ardents défenseurs des standards. Or, si je ne m’abuse, la raison d’être d’un standard c’est d’être implémenté de manière a obtenir le même résultat partout. Quand je mets les feux de croisement sur ma twingo, je le fait avec le comodo au volant. Sur une golf, ce sera avec l’interrupteur rond à gauche du tableau de bord (putain d’allemands). dans les 2 cas, les feux de croisement s’allument à l’avant et les feux de position rouges s’allument à l’arrière. 2 implémentation, un seul résultat. c’est un standard, une NORME.

Il ne viendrait pas à l’idée des ingés de chez Renault d’allumer l’anti-brouillard arrière et les essuies-glace quand on tourne le comodo des feux de croisement, et de dire après que c’est NORMAL si ça fonctionne comme ça et qu’il ne faut pas chercher à tout prix que les phares s’allument pareil sur toutes les voitures (ça c’était pour la métaphore automobile obligatoire dans toute discussion trollesque, dédicace STPo). Pour revenir dans le domaine des CSS, quand on code #000 ça rend du noir, pas du rouge, pas du bleu. Qu’est-ce que vous diriez si soudainement chaque navigateur affichait une couleur de son choix ? vous trouveriez ça intolérable, alors pourquoi pas la même exigence sur TOUTES les propriétés css ?

Le web est en pleine évolution

Le web est en train de se standardiser à toute allure grâce au travail de nombreux organismes tel que le W3C, il entre en phase de pleine maturité. L’argument du web en pleine évolution est donc le bon argument , et je l’entends parfaitement. Cet argument a du sens, contrairement à celui qui dit qu’il faudrait que ça ne s’affiche pas pareil. Les technos évoluent à toute allure, et il est dur de standardiser en même temps qu’on construit, j’en suis tout à fait conscient, plaider cet état de fait est plus intelligent que d’adopter une posture bizarre qui consiste à dire qu’un même standard est sensé être rendu différemment si on ne l’a pas décidé ainsi. Et justement quand avant on disait que c’était normal que la même typo ne soit pas utilisé partout (car en liaison avec les typos installées sur le poste) on voit que ça n’est plus un argument avec l’arrivée de font-face. C’est un exemple concret où grâce au progrès des navigateurs, un des argument du lâcher prise perd du terrain. On ne se fout plus de la gueule du “graphiste demeuré à moitié printeux qui m’a demandé sa typo exotique sur son site web hahah”

Soupe de DIV et temps de dev

L’argument du temps et du code propre, je l’entends très bien également : si le pixel perfect se fait au prix de div multiplement imbriqué et autres bidouilles, au prix de la dégradation d’autres variables (temps de chargement, génération de bugs, utilisabilité, ergo etc…) je suis d’accord pour dire qu’il ne faut PAS faire du pixel perfect si on arrive à un résultat satisfaisant sur chacun des facteur. j’accepte les concessions. C’est le constat actuel unanimement partagé. mais quand ça ne sera plus au prix de soupe de div ? Est-ce que cette posture sera encore tenable ? Quand il suffira d’appliquer un box-shadox à un élément pour lui ajouter une ombre, comment justifier un rendu différents ? Et pour quelle raison valable ce serait différent ? Une fois de plus, même les plus acharnés de anti pixel perfect ne peuvent pas décemment dire que ça ne serait pas mieux si ça s’affichait pareil partout. C’est donc bel est bien l’objectif à atteindre, une fois de plus.

De toutes façons les daltoniens ils ne voient pas ton site correctement !

L’excuse de l’utilisateur ou de l’user agent… Encore une excuse peu pertinente. c’est un fait, personne ne voit la vie de la même façon, de par ses handicaps et autres facteurs personnels. Mais est-ce que vous pouvez me dire en QUOI est-ce que c’est une raison pour lâcher prise sur la livraison du contenu ? Mieux vaut être conscient que ça PEUT paraitre différent à certaines personnes (et une fois de plus, si on connait son boulot, on a pas attendu pour prendre ce paramètre en compte) mais en quoi ça dispense d’une livraison de l’affichage identique à la base ?

Il y a justement assez de cas de figures qui feront que le site sera vu autrement (déjà simplement car aucun écran n’est calibré) pour ne pas en ajouter un à la livraison de celui-ci. Ce paramètre n’est pas exclusif au web, et je n’ai jamais vu une entreprise ne pas contrôler son produit fini parce que “de toutes façons y’a des aveugles et des daltoniens qui ne le verront pas comme on a décidé”.

Cet argument ne tient donc pas plus que les autres : les gens vont voir votre site de multiple manières, ça n’est pas une raison pour ne pas garder le contrôle sur l’affichage initial.

Conclusion

On voit donc que quel que soit l’argument, il n’y a pas de raison objective dans l’absolu pour rejeter l’affichage pixel perfect et le rendu identique sur tous les navigateurs. Évidemment, aujourd’hui, des obstacles techniques font que c’est mission impossible, et qu’il est stupide de rester psychorigide sur le rendu de “son” design, mais j’aimerai qu’on garde à l’esprit que c’est bien une contrainte TECHNIQUE, et que comme telle, il faut travailler à la gommer jusqu’à l’annuler, jusqu’à ce que ça ne soit plus une contrainte qu’un design soit respecté (car il véhicule du sens, ne l’oubliez pas, parfois plus que le “contenu”) et ne pas dégager une philosophie de cette contrainte technique.

L’industrie de l’imprimerie a, de son coté, pas mal réussi à relever ce défi de standardisation, il faudrait donc s’en inspirer sur ce point et ne pas laisser tomber en route la standardisation de l’affichage. Tout comme il serait intolérable que chaque navigateur affiche un code couleur a sa manière, ou décide qu’un titre h1 serait moins important qu’un titre h2, ou encore zappe du contenu, il est tout aussi anormal qu’une ombre de 4px #000 s’affiche de manière différente selon les navigateurs.

On est bien devant une contrainte qui n’est pas inhérente au média (comme les multiples tailles de viewport par ex, ou les multiples plateformes et OS) comme certains essayent de le faire croire, mais bien devant un bug correctible. Ne perdons pas ce point de vue dans l’élaboration des standards, le graphisme ne doit pas être laissé pour compte dans le web moderne.

Si c’était possible d’afficher pareil partout, diriez vous que c’est dépassé ou anormal ?

Notes

[1] oui je sais, l’implémentation est toute neuve et ça va progresser, mais c’est un exemple qui m’a touché récemment, c’ets le cas pour d’autres éléments plus anciens