Le blogde Chapal & Panoz

Ne le fais pas juste parce que tu peux le faire

Il arrive parfois que nous voulions faire quelque chose à tout prix. Nous passons alors des heures à chercher une solution technique, nous en trouvons assez souvent qui fonctionnent chez untel et untel mais pas chez d’autres, nous essayons alors de trouvons le moyen de la faire fonctionner partout et nous abandonnons parfois parce qu’il n’y en a pas.

Que se passe-t-il quand un revendeur veut faire quelque chose et propose une fonctionnalité technique à tout prix ? Que se passe-t-il quand il ne va pas voir plus loin que la possibilité technique, par exemple en ne voulant pas voir les conséquences que cela peut avoir sur le développement/la production de livres ?

C’est un peu ce qu’Amazon a fait avec le fixed layout, notamment pour la BD et son mode de lecture « case par case ». Explications.

Le fixed layout Kindle a déjà un goût amer

Pour le texte fluide (reflowable text), il est possible de développer en EPUB en prenant en compte la conversion Kindle. Cela facilite beaucoup la tâche et permet un développement particulièrement confortable, la conversion Kindle n’étant pas un facteur ayant un impact trop notable 1.

Pour le fixed layout, il en va tout autrement. Avec un fichier fixed layout Kindle, le zoom de l’utilisateur n’est pas libre (par libre, on entend « comme sur iPad ou tablette Kobo »), ce sont en fait les développeurs qui décident de ce qui peut être zoomé par double-tap et, surtout, comment. Autrement dit, la structure HTML est totalement différente de ce que nous faisons pour le fixed layout EPUB. Il faut donc refaire le fichier totalement, parce qu’il n’y a pas moyen d’intégrer le fichier Kindle dans le développement de la version EPUB. Il faut refaire le travail deux fois.

Ce travail supplémentaire est bien évidemment conséquent, d’autant qu’il faut intégrer chaque zoom un par un (positionnement absolu dans la CSS pour chaque élément + divers réglages).

Tout bénéf pour le prestaraire ? Pas vraiment. Les éditeurs ayant un budget limité pour ces projets numériques, décision est souvent prise de soit faire des compromis — comprendre simplifier —, soit ne pas faire de version Kindle du tout. Bref, au final, ce n’est pas forcément ce que nous souhaiterions.

En EPUB 3, supporté par iBooks et les apps Kobo (ici Android).

Le mode « case par case » est un cauchemar de production

La lecture « case par case » est une fonctionnalité que nombre d’applications de lecture BD proposent. Aussi, c’est un argument commercial assez fort et la volonté d’Amazon de proposer cette fonctionnalité pour les livres Kindle est tout à fait pertinente. D’ailleurs, beaucoup de lecteurs ont connaissance de cette fonctionnalité et demandent à l’occasion pourquoi elle n’est pas intégrée sur tel ou tel livre.

Amazon a certes trouvé une solution technique pour proposer cette fonctionnalité, mais elle est tout bonnement abominable.

Puisque cette fonctionnalité n’est pas gérée au niveau du moteur de rendu, il faut spécifiquement développer les fichiers pour elle. Logiquement, vous pourriez penser qu’elle implique de tout gérer case par case. Eh bien non. Il faut gérer la planche en entier, et c’est là que les choses se compliquent.

  1. Il faut poser la planche une première fois, celle qui s’affichera par défaut.
  2. Il faut ensuite déterminer des zones de zoom en % dans la CSS2, basées sur les cases de la planche. Cela reste facile à faire pour peu qu’on utilise la bonne méthodologie, bien que particulièrement chronophage.
  3. Il faut ensuite déterminer les zones d’affichage de la case zoomée en % dans la CSS (positionnement et taille, ce qui ne va pas sans de nombreux calculs). Elles sont à considérer comme des lightboxes.
  4. Il faut enfin, et c’est l’étape la plus embêtante, repositionner la même planche, avec des dimensions supérieures, de manière absolue en % dans la CSS afin que seule la case à zoomer apparaisse dans sa zone d’affichage (le reste de la planche étant caché). Là, les mathématiques ne peuvent rien et il faut y aller par itérations sur le fichier EPUB, en convertissant en Kindle après chaque modification pour constater le résultat…

Ceci n’est en aucun cas quelque chose d’adapté pour la production. À ce niveau, avec cette solution technique retors, ce qui est adapté est :

  1. Amazon fournit une application ;
  2. l’utilisateur sélectionne les zones de zoom avec sa souris ;
  3. le logiciel va calculer lui-même la zone d’affichage de la case zoomée ;
  4. l’utilisateur fait ensuite glisser l’image dans cette zone d’affichage avec la souris pour qu’elle soit correctement calée ;
  5. l’utilisateur récupère son fichier sans passer des heures à caler les cases à coup de dixièmes de pour cent.

C’est exactement ce qu’Apple a fait avec iBooks Author.

Mode case par case Kindle, confort de lecture, cauchemar de développement.

Non pas que la chose soit particulièrement complexe à comprendre — encore que, vu son illogisme… —, mais le faire « à la main » demande énormément de temps. Vraiment. Une BD de 64 pages, c’est plusieurs jours de boulot rien que pour positionner au plus juste les cases (l’exemple fourni par Amazon est au centième de pour cent près, ce qui me fait dire qu’un stagiaire y a passé l’intégralité de son stage… ou qu’ils utilisent un logiciel secret qui automatise tout mais que c’était plus drôle de ne pas le fournir aux développeurs).

Voilà en quoi ce système est une énorme abomination, et voilà aussi pourquoi les lecteurs ne pourront pas bénéficier de cette fonctionnalité sur un certain nombre de livres… voire ne bénéficieront pas du livre du tout sur Kindle. Et voilà aussi pourquoi les éditeurs doivent dépenser plus pour simplement compenser un mauvais système dont on a mal pesé les conséquences.

* * *

  1. Paradoxalement, des apps et fabricants supportant EPUB ont un impact beaucoup plus grand sur la manière de coder… Ce qui fait quand même rire assez jaune.
  2. Vous pouvez également le faire en pixels, et cela doit simplifier pas mal les choses, mais le livre ne sera alors plus adapté aux résolutions d’écrans des futurs appareils Kindle…