J’explore le code des ePub et je tombe sur des choses étranges : du code que je n’aurai jamais accepté d’aucun intégrateur web avec qui j’ai travaillé jusqu’à présent, même d’un débutant.
Je ne parle pas des livres extrêmement mal faits mais bien de livres dont l’ensemble du code fait croire qu’il a été produit par des outils intelligents, voire nettoyé à la main par quelqu’un dont c’est le métier.
Ces livres là continuent à avoir un code qui me semble étrange. Les moteurs de rendu des logiciels de lecture sont parfois mauvais. Il semble que les astuces et compromis se doivent d’être bien plus nombreux que ceux sur nos navigateurs web. Alors je demande à ceux dont c’est le métier, pouvez-vous m’éclairer un peu sur ce qui est normal ou pas, habituel ou pas, jugé de qualité ou pas ?
Voici quelques exemples de ce que j’ai trouvé :
Images
<img alt="image" height="97%" src="…" style="width: 373px; height: 560px; ">
La couverture a pour texte alternatif « image ». Dans d’autres exemples j’ai trouvé « couverture », « cover » et même « image.png ». Malgré mes recherches je n’ai trouvé aucun livre qui ait un texte alternatif vide ou contenant le titre du livre (qui sont les deux choix que j’aurai discuté dans le cadre d’un site web, suivant le contexte).
Dans d’autres images j’ai parfois trouvé des textes alternatifs vides mais rarement. Le plus souvent c’est « image », « carte », ou « illustration ». Je n’ai cherché que sur un échantillon mais d’origine diverse : Aucun texte alternatif présentant une réelle alternative – même limitée ou tronquée.
Sachant que le livre numérique offre potentiellement une réelle avancée sur l’accessibilité des textes aux personnes malvoyantes, je me dis qu’on gâche là une superbe opportunité.
<img alt="cover" height="100%" src="…">
Dans mes explorations j’ai vu pour un petit quart de livres contenant certaines illustrations avec un texte alternatif anglais. « Cover » revient assez souvent. Là, il y a vraiment un laissez-faire que je ne peux pas comprendre quand le code est nettoyé à la main.
<img alt="image" height="97%" src="…" style="width: 373px; height: 560px; ">
Vient ensuite, et je l’ai retrouvé sur plusieurs sources différentes, un code qui m’étonne vraiment : un attribut hauteur spécifié à 93, 95 ou 97%, cumulé à une CSS qui précise un nombre de pixel exact. J’ai même vu un 562.255px traîner, c’est dire l’exactitude – et mon incompréhension. Spécifier une taille relative en attribut ou une taille fixe en style peuvent se comprendre indépendamment l’un de l’autre. Je n’arrive cependant pas à concevoir dans cas il peut être pertinent d’associer les deux.
Titres
Les titres c’est le domaine qui devrait être simple. On fait du <h1>, du <h2>, et ainsi de suite. Pour des raisons de compatibilité je peux comprendre qu’on ait une hiérarchie qui ne soit pas la hiérarchie théorique, mais…
<h1 id="Couverture" title="Couverture"></h1>
Je vois souvent des titres vides, tout simplement. J’aurai pu le comprendre pour des raisons de compatibilité pour des entêtes de chapitre mais à y regarder de plus près j’ai une part très significative de livres qui n’ont aucune balise <h1> du tout, et qui fonctionnent très bien partout où je les ai essayé. Pourquoi ces titres vides ?
<p><a id="a2"></a><span class="t1"><b>Chapitre I – </b></span><span class="t1"><i>…</i></span></p>
À l’inverse, j’ai donc bien des livres où les titres sont de simples paragraphes mis en gras avec une police de caractère spécifique. Je ne comprends pas.
<h1 id="PageTitre" title="Page Titre"></h1>
De même, la page de titre est un mystère pour moi. La grande majorité des livres choisissent de ne pas marquer comme titre <h1> le titre du livre, et de réserver ces balises aux titres des sections et des chapitres. Je dois avouer ma grande surprise mais je soupçonne qu’il puisse y avoir une raison vis à vis de la manière de fonctionner de certains lecteurs qui construisent des sommaires automatiques.
<h1 id="PageTitre" title="Page Titre"></h1> <div> <span>…</span> </div>
Sur un livre récent et probablement traité à la main j’ai même trouvé une combo avec une balise titre vide suivie d’un titre sous forme de paragraphe. C’était pour la page de titre (et non un titre de paragraphe).
Et le corps de document
<title>002</title>
Dans la plupart des lecteurs, la balise <title> reste inutilisée, mais tout de même… Une bonne majorité reprend le nom du chapitre en court ou une indication similaire. Quelques irréductibles continuent à simplement numéroter le fichier xhtml, avec de plus un numéro qui ne correspond pas à celui du chapitre. C’est dommage, on se coupe de potentielles réutilisations plus tard dans d’autres contextes.
<html xmlns="http://www.w3.org/1999/xhtml">
Un sur deux ne précise pas la langue du livre dans la balise <html> ou dans la balise <body> (ni aucune autre d’ailleurs). L’information existe peut être dans les métadonnées du livre lui-même, mais il s’agit selon moi d’une erreur si on veut permettre la lecture orale du livre.
<p> </p>
C’est cette marque qui m’a décidé à aller voir plus loin. J’ai l’impression de revenir aux années 2000. Même dans un traitement de texte plus aucun professionnel ne devrait faire de chose pareille, alors chez un éditeur… Je ne connais pas les problèmes de compatibilité des logiciels de lecture mais il y a-t-il vraiment des lecteurs qui ne sauront pas reprendre des règles CSS simples de marge et d’espacement ?
…moi ?</p>
C’est arrivé rarement, et plus exactement je n’ai pas réussi à retrouver de livres présentant ce problème, mais je me rappelle clairement l’avoir rencontré dans mes lectures : des manques d’espaces insécables devant ou après certaines ponctuation, avec des retours à la ligne malheureux. Sur des livres avec un éditeur dont c’est le métier c’est presque inexcusable.
<h1 id="Toc13" title="Treize">TREIZE</h1>
Dernier point relevé aujourd’hui, la présence de titres en lettres capitales, sans utiliser le style CSS dédié à cet usage. Je soupçonne un manque de compatibilité mais je doute quand même : Cette fonctionnalité est plutôt bien implémenté dans les moteurs web depuis longtemps.
Pouvez-vous m’aider ?
Vous allez me dire que je suis pointilleux et qu’on se moque de tout ça, mais je n’ai relevé que ce qui pour moi relève de la faute. Même avec les corrections ci-dessus on reste trop souvent avec un code en excès de <div> et <span>, avec des classes superflues et redondantes un peu partout, avec un mélange étrange et injustifiable de styles en ligne et styles externes.
Bref, je suis pointilleux par nature mais croyez bien que dans ce billet je suis encore loin de la qualité que j’attends d’un intégrateur web avec qui je travaille. Là j’ai l’impression de demander le minimum.
Je suis convaincu qu’il doit exister des raisons à certains de ces choix. Je ne suis donc pas vraiment là pour pointer du doigt, mais pour exposer ma pensée et espérer que vous saurez m’expliquer ces choix ou les contraintes qui ont mené à ces choix, pour que je comprenne et que je reparte moins ignorant que je ne suis arrivé.
Laisser un commentaire