Je vais un peu redire ce que j'ai déjà dit il y a deux ans, mais peu importe.
Ce qui motive cette redite, c'est que mon dernier billet m'a valu le commentaire suivant, évidemment anonyme, qui se plaint de façon fort amène de la longueur des lignes de texte sur ce site :
T'as raison, utilise tous les pixels en largeur, faudrait pas que ça se perde, d'ailleurs tu devrais encore réduire les marges, elles sont encore à deux ou trois pixels.
Toujours agréable d'écrire un texte long comme un roman et de
recevoir des réactions sur des points de forme, comme ça, de la part
de gens qui n'ont de toute façon visiblement pas la moindre intention
de lire le texte. Toujours agréable, aussi, de recevoir des
commentaires agressifs et sarcastiques de la part de gens qui n'ont
même pas le courage de laisser un nom. (Oui, ça m'arrive moi aussi de
faire du sarcasme agressif, mais je le fais en mon nom, et
généralement contre des généralités, pas contre des personnes
individuelles identifiables à qui je m'adresse.) Et bien sûr, le
reproche tombe complètement à plat puisque,
précisément, j'ai prévu la
possibilité de régler la longueur des lignes en plus de la taille du
texte sur ce site (pour faire vite : cherchez le bouton en bas de la
page avec l'icône ‘⚙’ et le texte Click for site
settings
) et qu'en plus, comme je vais le dire, même si je n'avais
pas prévu ça, il y avait diverses façons de s'en sortir autrement.
Mais ça vaut la peine de s'attarder un instant sur l'absurdité bien réelle qui sous-tend ce commentaire désagréable, c'est-à-dire la situation du style sur le Web, et notamment sur un point qui ne déclenche pas la stupéfaction consternée qui serait méritée : pourquoi diable le style d'une page Web est-il complètement contrôlé par l'auteur de la page et en rien par le lecteur ?
Note : Pour éviter tout malentendu, je précise que
le terme style
, dans le contexte du Web et dans ce billet, fait
référence à l'apparence : couleurs, polices de caractères, taille des
caractères, largeur des lignes, emplacement du texte, ce genre de
choses. (Je ne parle donc pas, disons, du style linguistique.) ❧ Par
ailleurs, si vous avez besoin d'éclaircissements sur certains termes
techniques, je rappelle que j'ai écrit
un long billet pour vulgariser le fonctionnement du Web et des
technologies comme HTML et compagnie.
Au début du HTML (c'est-à-dire pendant la première moitié des années 1990), il n'y avait pas de style à proprement parler. Le HTML décrivait de l'hypertexte, c'est-à-dire du texte avec des liens, éventuellement quelques éléments supplémentaires comme des titres de section, la possibilité de mettre du gras, de l'italique et du souligné, mais c'était à peu près tout. Pas question de changer de couleur, de police, ou d'autres fioritures du genre.
C'était peut-être un peu limité, mais rappelons-nous qu'avec cette limitation venait un avantage : si ce n'est pas la page Web qui fixe la police ou la taille de caractères, cela laisse la porte ouverte à l'utilisateur pour la choisir — et de fait, vers le milieu des années 1990 des navigateurs offraient cette possibilité (qui existe toujours, au demeurant : il y a un réglage de police par défaut dans mon Firefox ; mais c'est juste que maintenant ça n'a en gros aucun effet puisque chaque page Web trouve absolument indispensable d'imposer son propre look).
Mais simultanément, les navigateurs (les mêmes, c'est-à-dire en
gros Netscape Navigator) se sont mis à permettre au HTML
de régler la couleur, la police, la taille, ce genre de choses, et ça
a abouti au Web de la fin des années 1990, tout clignotant de gifs
animés et où tout le monde abusait des balises
comme <font>.
Pour essayer de contrôler cette explosion on a inventé
le CSS selon un principe vertueux de séparation du fond
(confié au HTML) et de la forme (confiée
au CSS) : c'est-à-dire que le CSS est un
langage dans lequel on décrit le style à appliquer à une page Web,
le HTML se bornant à décrire le contenu. Puis
le CSS s'est complexifié à un rythme absolument
hallucinant depuis le milieu des années 1990, et trouve quand même le
moyen de faire toujours presque exactement ce qu'on veut mais à
une petite limitation près qui fait qu'on ne peut pas s'en
servir, et par ailleurs il est invraisemblablement confusant et
plein de bizarreries incompréhensibles
(voyez ici
ou là
ou là
ou là
pour des exemples divers de limitations connes ou de comportements
contre-intuitifs), mais ce n'est pas mon propos ici. Le problème est
que, fondamentalement, personne n'a jamais vraiment cru à cette
histoire de séparation du fond et de la forme, et les auteurs de pages
Web se sont rués sur le CSS comme la vérole sur le
bas-clergé breton, remplaçant simplement leurs
balises <font> par des
attributs style= ou éventuellement des feuilles de style
avec des classes ad hoc, et souvent avec une tendance à
micromanager le moindre détail ; mais le résultat pour l'utilisateur
était et est toujours exactement le même : la personne qui décide
essentiellement seule à quoi la page Web va ressembler est l'auteur de
cette page.
Évidemment on peut me rétorquer que quand je lis un livre (ou un prospectus publicitaire, parce que beaucoup du Web ressemble plutôt à ça), ce n'est pas moi, le lecteur, qui décide à quoi ça ressemble, donc le problème n'est pas nouveau. (Et de fait, ça arrive que j'achète un livre et que j'aie du mal à le lire parce que je déteste vraiment la police de caractères utilisée, ou — ce qui m'arrive de plus en plus avec l'âge — que je trouve les caractères décidément trop petits.)
Oui mais justement la technologie offrait la possibilité de faire mieux. Et elle n'a pas réalisé cette promesse.
Soyons bien clairs : je ne conteste pas l'idée que l'auteur d'une
page Web ait un certain contrôle sur l'apparence de celle-ci (ne
serait-ce que le branding : mettre un petit logo quelque part,
c'est raisonnable). L'idée de séparer complètement le fond et la
forme est, au demeurant, assez illusoire : le HTML n'a
pas, par exemple, de concept de paragraphe important
ou aparté
, donc au mieux ce que je vais pouvoir faire pour
mettre en relief un paragraphe important ou au contraire le marquer
comme secondaire, c'est lui donner une classe CSS
spéciale et ajouter des règles de style qui servent à afficher un bord
autour ou diminuer la taille des caractères ; et ensuite, si je dis
dans le texte comme je l'ai dit dans le paragraphe encadré
ci-dessus
ou comme je vais le dire en petits caractères plus
loin
, je viole le principe de séparation de fond et de forme et je
ne vois pas bien comment on peut éviter ça complètement sans limiter
sévèrement l'expressivité du Web. Donc il faut bien que l'auteur d'un
site Web ait la possibilité de mettre au moins un peu de style.
Mais les technologies Web actuelles ne permettent même pas un partage (souhaitable !) des responsabilités selon lequel, au moins pour un texte qui est généralement assez basique, ce serait l'utilisateur, i.e. le lecteur, qui choisit la police qu'il trouve la plus agréable, la taille de caractères qui convient le mieux à son confort de lecture, la longueur des lignes, les marges, les couleurs, ce genre de choses, et la page Web imposerait le style pour des éléments indispensables à son branding ou bien à la bonne compréhension du texte (encadrés, apartés et notes, légende des images, ce genre de choses).
Je conviens que c'est un peu compliqué de prévoir un style partiellement fixé par l'auteur de la page et partiellement fixé par l'utilisateur : par exemple parce que l'auteur ne peut pas pleinement tester toutes les possibilités (mais bon, il ne peut déjà pas pleinement tester toutes les possibilités de largeur d'écran ou de fenêtre !) et parce que c'est plus difficile de concevoir un style quand on n'a pas tous les éléments. (Le choix des polices pose par exemple la difficulté que toutes n'interagissent pas bien avec tous les caractères Unicode.) Mais le fait est qu'actuellement il n'y a même pas un début d'effort dans cette direction.
Alors oui, bien sûr, quand on conçoit un site Web, on peut
prévoir un mécanisme de configurabilité de l'apparence (le JavaScript
permet à peu près n'importe quoi). Mais d'abord il faut se fatiguer à
l'écrire, ce qui n'est pas du tout évident (surtout quand, comme moi,
on n'est pas du tout expert en JavaScript et encore moins
en CSS), ça va alourdir tout le site, et potentiellement
provoquer des artefacts d'affichage le temps que le JavaScript
s'active, et surtout, ce qui rend cette idée absurde, c'est
que chaque site Web devrait mettre en place son propre
mécanisme de configuration séparé, sans que le navigateur ne
joue de rôle de coordinateur, et que l'utilisateur devrait rentrer ses
préférences de police, taille, longueur de ligne, etc., une fois
séparément pour chaque site qu'il utilise (donc avec un mécanisme
différent à chaque fois), au lieu de les saisir une fois pour toutes
dans le navigateur. Un site Web n'a même pas de mécanisme pour
interroger l'utilisateur et savoir si, par hasard, il aurait une
préférence pré-remplie sur certaines variables standardisées. Il n'y
a même pas de bonnes pratiques
documentées sur la manière de
faire. (Et c'est pour ça que, bien que j'aie maintenant un mécanisme
pour régler la longueur des lignes sur ce site, les gens ne le voient
pas et se plaignent.)
Tout ça est profondément con.
Ce n'est pas mon boulot de décider comment vous lisez mon site Web.
C'est vous qui le lisez, ça devrait être à vous de choisir ce qui vous
plaît, pas à moi. Moi j'ai juste envie de dire au navigateur fais
ce qui est le mieux pour l'utilisateur pour lequel tu travailles :
c'est ton boulot de lui demander et de lui permettre de choisir
—
mais le CSS ne permet rien de tel. Du coup, j'ai fait
des choix qui me conviennent, parce que je suis quand même un lecteur
important de mon propre site, et si ça ne vous convient pas, ben je
suis désolé, mais ce n'est pas moi qui ai conçu le Web.
Alors, ce n'est pas tout à fait vrai qu'on ne peut rien faire, il y a de petits bricolages.