Une application de lecteur e-Pub orientée accessibilité

On ne trouve sur le marché que très peu d’applications de lecture EPUB pour Windows, MacOS ou Linux. Ces applications sont généralement peu maintenues, souvent peu ergonomiques, presque jamais accessibles aux personnes malvoyantes, aveugles ou dyslexiques. Ces applications gèrent pour la plupart l’ancienne version 2.0 du standard EPUB, plus inégalement les différentes options de la version 3.0 ; rares sont celles qui permettent l’import d’ebooks via des flux OPDS.

Aucune ne gère la toute nouvelle version 3.2 du standard EPUB. Et aucune ne gère la nouvelle solution de protection (DRM) Readium LCP, en cours de déploiement mondial.

L’exception notable à ce constat est le logiciel iBook d’Apple, qui équipe tous les ordinateurs Mac, les iPad et iPhone. Ce logiciel évolué gère correctement les publications EPUB 3.0 et il est proprement accessible. Un bénéfice dont ne disposent donc pas les nombreux propriétaires de PC Windows, qui est pourtant l’ordinateur possédé par la plupart des malvoyants et aveugles, car les principaux logiciels dits « lecteurs d’écran » ne sont disponibles que sur cette plateforme.

Le premier lecteur e-Pub accessible

Le principal enjeu était donc de proposer une technologie open source en réponse aux restrictions des livres électroniques actuellement disponibles sur le marché et qui, bien souvent, excluent les utilisateurs présentant des handicaps. Pour exemple :

  • l'incapacité d'entendre l'audio et la vidéo intégrés pour les personnes sourdes ou malentendantes ou malentendantes;
  • l'interactivité et les animations faisant appel à la reconnaissance des couleurs pouvant exclure les personnes daltoniennes ou qui ont des difficultés à distinguer les contrastes de fondu;
  • l’activation vocale qui a tendance à se généraliser sur les nouveaux devices peut potentiellement rendre la lecture difficile pour les personnes ayant des troubles de la parole.

Un Kit de développement et une application clés en main

Il est apparu également important de travailler sur un projet constitué de deux couches logicielles distinctes :

  • d’une part une application prête à être téléchargée par des utilisateurs finaux, sous la marque EDRLab et dotée d’un design propre à cette marque. Le kit de développement, nommé Readium Desktop, est ainsi développé sous l’égide de la Fondation Readium (www.readium.org), une association de développeurs collaborant pour le développement de toolkits de lecture EPUB en open-source.
  • d’autre part un kit de développement logiciel (toolkit) open-source, gérant les traitements des ebooks au format EPUB, et permettant à quiconque de développer une application complète selon ses contraintes et ses goûts ; l’application prend le nom de Thorium, et sert de terrain d’expérimentation pour le développement de fonctionnalités innovantes et accessibles.

Présentation de Readium

Ce kit de développement fonctionne de la même manière sur PC Windows, Mac ou PC Linux. Il repose sur la plateforme logicielle Node.js et il est développé en Typescript.

Principales fonctionnalités

Ce toolkit est composé de modules réutilisables dédiés à :

  • La représentation et la manipulation d’une « publication », objet associé à une publication EPUB 3. Cette représentation comporte des éléments évolués, tels que le « media overlay », c’est à dire la couche audio qui peut être associée au texte d’une ebook. 
  • L’analyse complète d’une publication EPUB, permettant de générer un objet « publication », en mémoire ou bien sérialisé en format json.
  • L’exposition sous forme d’un service http d’une publication sérialisée en format json et des ressources associées (texte et médias).
  • L’affichage et la navigation au sein d’une publication.
  • La représentation et la manipulation d’un « flux OPDS », un standard de syndication de publications à travers le Web, permettant en particulier à une bibliothèque en ligne d’exposer son contenu de manière standard.
  • La gestion de la DRM LCP : demande de mot de passe, déchiffrement à la volée.

L’ensemble de ces modules permet de développer facilement une application de lecture EPUB, telle que l’application Thorium décrite ci-dessous.

Readium Desktop est le seul kit de développement de ce type, multi-plateformes et open-source, disponible aujourd’hui.

L’extension du toolkit à d’autres formats de publication, en particulier le format PDF, est prévu sur le moyen terme.

Présentation de Thorium

Ce logiciel fonctionne de la même manière sur PC Windows, Mac ou PC Linux. Il repose sur la plateforme logicielle Electron.js, qui permet de créer une application exécutable à partir de technologies Web (javascript, HTML et CSS). Il est développé en Typescript.

La version alpha de l’application a été finalisée mi-mars 2018 :

Voir :https://www.edrlab.org/2018/03/21/public-release-of-readium-desktop-alpha1-for-macos-windows-and-linux/

La version beta, dotée d’un design beaucoup plus abouti, sera finalisée en mai 2019.

Principales fonctionnalités

Bibliothèque

L’application s’ouvre sur une vue de la bibliothèque personnelle de l’utilisateur. Après installation initiale du logiciel, cette bibliothèque est vide.

L’utilisateur dispose d’un mode de présentation en mosaïque ou en liste.

Langue de l’interface

Il est possible de changer la langue de l’interface (actuellement anglais/français/allemand, mais on peut s’attendre à une dizaine de langues).

Aide

Il est possible de visualiser une aide à l’utilisation du logiciel, simple, qui mène à une aide complète en ligne.

A propos

On y trouve une page classique de version, copyright et remerciements.

Import d’un ebook

Il est possible d’importer des publications par simple glisser-déposer, ou par un import de ficher classique depuis un menu système. On peut ainsi importer des publication EPUB 2, EPUB 3, optionnellement protégés par la DRM LCP.

Import d’un ebook depuis un flux OPDS

Certains serveurs d’ebooks mettent à disposition des flux de données au format OPDS (Open Publication Distribution System). Ce sont des flux de données dans lesquels on navigue comme dans un système de fichiers, avec des collections (nommées) contenant des ebooks ; on y trouve également une fonction de recherche en ligne et des facettes d’affinage de recherche.

Il est possible de coller dans un champ l’URL d’un tel flux. Si l’URL est valide, le titre et le contenu du flux apparaissent ; le flux est alors mémorisé. Il est possible de naviguer dans le flux, de choisir un livre et de le télécharger directement dans la bibliothèque. 

 

 

Il est bien sûr possible de supprimer un flux d’ebooks dont on ne se sert plus.

Contenu de la bibliothèque

La fenêtre principale contient la bibliothèque personnelle de l’utilisateur. Chaque livre est illustré par sa couverture, son titre et le nom de son (ou ses) auteurs.

On peut imaginer qu’un utilisateur ait de nombreux livres dans sa bibliothèque : pour les retrouver facilement, il peut effectuer une recherche sur titre / auteur(s).

Lecture d’un ebook

La simple sélection d’une couverture permet la lecture d’une publication.

Visualisation d’informations sur chaque ebook

On peut accéder à une liste de métadonnées sur le livre, issues du fichier EPUB. Les métadonnées disponibles sont plus ou moins nombreuses, mais on peut avoir une description, une date de publication, des tags, des autorisations (nombre de pages imprimables, nombre de caractères copiables).

Supprimer un ebook

L’utilisateur peut supprimer un ebook de sa bibliothèque.

Exporter un ebook

L’utilisateur peut exporter un ebook de sa bibliothèque vers le répertoire de son choix.

Gestion des tags

Les tags sont des libellés libres, qui permettent de classer librement la bibliothèque sur plusieurs axes. On peut ajouter des tags à un ebooks, les modifier, les supprimer.

Ces tags sont affichés au bas de l’écran Mes Livres, et permettent de réaliser facilement des sélections pratiques.

Gestion des prêts

Certains ebooks de la bibliothèque ont été empruntés à une bibliothèque publique (voir PNB, Prêt Numérique en bibliothèque), et importés dans l’application. Ces ebooks sont un peu spéciaux, car ils contiennent des informations supplémentaires.

Grâce à ces informations, l’utilisateur peut faire virtuellement ce qu’il fait en réalité avec des livres empruntés, c’est à dire les « retourner » après lecture ou demander une prolongation de prêt (sans paramètres).

Lecture d’un livre

La lecture d’un livre s’effectue dans une fenêtre spécifique (le menu de la vue bibliothèque est remplacé par un menu plus adapté).

L’utilisateur peut ouvrir plusieurs livres simultanément, ce qui lui permet de comparer deux ouvrages.

Réglages utilisateur

Il est possible de régler de nombreux paramètres de l’application :

  • Le thème qui peut être neutre, sepia ou nuit.
  • La taille et la police de lecture.
  • L’affichage défilé ou paginé, aligné à gauche ou justifié, sur une ou deux colonnes.
  • Les espacements, marge, mots, lettres et lignes, qui permettent à une personne dyslexique de régler l’interface finement afin de bénéficier d’un meilleur confort de lecture

Navigation page à page

Il est possible de feuilleter l’ebook par la souris ou par le clavier (touches gauche/droite).

Note : En mode « paginé », les touches permettent de sauter de page en page horizontalement.  En mode « défilé », ces touches permettent de sauter d’écran en écran via un défilement vertical.

Navigation rapide

Il est possible de savoir où l’on se trouve dans « l’épaisseur » de l’ebook, et de se déplacer rapidement avec la souris entre son début à sa fin.

Table des matières

Il est possible de faire apparaître la table des matières de l’ebook, qui donne un accès direct à chaque chapitre.

Table des illustrations

Il est possible de faire apparaître la table des illustrations de l’ebook, qui donne un accès direct à chaque illustration.

Signets

Il est possible de poser des signets sur chaque ebook. Une page marquée fait apparaître un signet sur la page.

Aller à la page X

Il est possible d’aller directement à une page donnée (au numéro de page du livre imprimé) en entrant ce numéro de page.

LCP

Serveur LCP/LSD et son interface de gestion

Un serveur LCP a été développé en Go et est disponible en OpenSource. Il permet à n’importe quelle organisation de chiffrer ses publications. Il embarque aussi un serveur LSD qui prend en charge le cycle de vie d’une licence LCP:

  • révocation
  • renouvellement (prolonger la durée de vie LCP)
  • retourner la publication (dans le cadre d’un emprunt dans une médiathèque)

Module Node LCP

Un module Node implémente le déchiffrement des publications chiffrés avec LCP. Ce module a été développé en C++ et vérifie l’authenticité de l’application appelante.

Intégration LCP/ LSD dans Thorium

L’application embarque plusieurs éléments pour pouvoir gérer des publications LCP :

  • le module node LCP
  • un serveur de streaming des publications qui déchiffre les contenus en utilisant le module node
  • tous les éléments de UI permettant la manipulation des publications LCP