Si une boutique a refusé votre EPUB avec un code comme PKG-006 ou RSC-007, elle l’a passé dans EPUBCheck. C’est le vérificateur sur lequel les boutiques de livres numériques construisent leurs contrôles à l’envoi. Ses messages sont exacts mais difficiles à lire. Chacun est un code, un fichier, une ligne et une colonne, et une phrase écrite pour quelqu’un qui connaît déjà la norme. Cette page les explique.
Nous avons abîmé un EPUB valide un défaut à la fois et noté ce qu’a dit EPUBCheck, donc les messages ci-dessous sont ceux que vous verrez. Réussir ne garantit pas qu’une boutique acceptera le livre, puisqu’il peut être refusé pour des choses qu’aucun vérificateur ne regarde. Échouer, en revanche, peut faire refuser un fichier avant que quiconque l’ait regardé.
En bref
Trouvez votre code ci-dessous. Les codes PKG concernent la façon dont le fichier a été compressé. Les codes de référence, RSC et OPF, concernent quelque chose qui renvoie à un fichier ou à une ancre absents. Les codes de document, comme RSC-016 et RSC-005, signifient qu’un chapitre ou le fichier de paquet n’est pas écrit comme l’exige la norme. Corrigez d’abord chaque message FATAL, corrigez les causes plutôt que de suivre la liste, et relancez la vérification.
Les erreurs d’empaquetage
Un EPUB est un fichier ZIP soumis à des règles sur la façon dont le ZIP lui-même est construit. EPUBCheck les vérifie en premier, et compresser un dossier dans le Finder ou l’Explorateur les enfreint.
PKG-007 Le fichier mimetype contient plus que cette seule ligne
Le premier fichier doit s’appeler mimetype et ne contenir que cette chaîne, sans saut de ligne à la fin. Un éditeur de texte qui ajoute un saut de ligne à l’enregistrement en est la cause.
La norme EPUB interdit aussi de compresser ce fichier. Dans ce test, EPUBCheck 5.3.0 n’a pas signalé de fichier mimetype compressé, donc ne comptez pas sur lui pour le détecter.
PKG-006 Le fichier mimetype n’est pas le premier
L’ordre dans un ZIP n’est pas alphabétique, et les gestionnaires de fichiers ne permettent pas de le choisir. L’entrée mimetype doit venir en premier, pour qu’une liseuse puisse identifier le format dès les premiers octets.
PKG-007 concerne ce que contient le fichier, PKG-006 l’endroit où il se trouve. Lisez le message, pas le numéro.
PKG-005 L’entrée mimetype a un champ supplémentaire
Un EPUB décompressé puis recompressé avec la commande zip sur un Mac gardait le fichier mimetype en premier et non compressé, mais son entrée portait un champ supplémentaire, que la norme interdit. Le même dossier compressé avec zip -X, qui omet les champs supplémentaires, a réussi.
Les erreurs de référence
Toujours la même idée : quelque chose renvoie à quelque chose qui n’est pas là, comme un fichier renommé, déplacé ou jamais inclus.
RSC-001 Un fichier cité dans le manifeste n’existe pas
Le paquet promet un fichier que l’archive n’a pas, par exemple une image placée dans le manuscrit depuis votre disque et jamais copiée dans le livre numérique.
RSC-007 Un lien ou une feuille de style renvoie à un fichier absent
Le même échec vu de l’autre côté : un chapitre renvoie à une page qui n’est pas là. Il détecte aussi une règle @font-face dont le fichier de police a été oublié, ce qui peut arriver quand un thème est copié d’un projet à l’autre.
RSC-012 Un lien renvoie à une ancre qui n’existe pas
Le fichier est juste et l’#ancre qui le suit est fausse. Souvent, c’est une note dont l’appel a survécu à une modification alors que la note, non.
RSC-011 La table des matières renvoie à quelque chose hors de l’ordre de lecture
La table des matières renvoie à un chapitre qui existe mais ne fait pas partie de la suite que parcourt le lecteur. Prenez celle-ci au sérieux ; voyez la dernière section de cette page.
OPF-049 L’ordre de lecture cite une entrée absente du manifeste
Elle arrive avec une RSC-005 qui dit la même chose dans la langue de la spécification : un problème, deux messages. Le nombre d’erreurs d’EPUBCheck n’est pas un nombre de problèmes.
RSC-006 et OPF-014 Une image est chargée depuis Internet
The property "remote-resources" should be declared in the OPF file.
Un livre numérique doit contenir tout ce qu’il montre. Une balise <img> dont la source commence par https:// disparaît quand le lecteur est hors ligne, donc elle est refusée.
Les erreurs de document
RSC-016 — fatale — Le XHTML est mal formé
Le XHTML est du XML, et le XML ne tolère aucune erreur : une seule balise non fermée arrête l’analyse. Elle est signalée deux fois, en FATAL RSC-016 et en ERROR RSC-005, et rien n’est vérifié après la balise cassée. Corrigez-la et relancez avant de lire la suite.
Les navigateurs réparent le HTML cassé sans rien dire, c’est pourquoi un fichier peut paraître parfait dans un navigateur et être invalide ici, de façon fatale.
RSC-005 Quelque chose d’obligatoire manque ou est mal placé
Error while parsing file: Exactly one "toc" nav element must be present
RSC-005 est le message général « ceci ne correspond pas au schéma », et la partie utile est la phrase après les deux-points. Les deux ci-dessus sont un paquet sans titre, et un document de navigation dont la table des matières n’est pas marquée comme telle.
HTM-004 Un ancien DOCTYPE
Un chapitre d’un EPUB 3 prend <!DOCTYPE html>, ou pas de doctype du tout. L’ancien doctype XHTML 1.1 est une erreur. EPUBCheck 4.2.6 le laissait passer, donc un conseil qui le dit sans danger est dépassé.
OPF-003 — usage — Un fichier est dans l’archive sans être déclaré
EPUBCheck 5.3.0 ne le signale que lancé avec -u, qui ajoute les messages d’usage. Un lancement normal ne dit rien.
Généralement sans danger : un fichier oublié, un .DS_Store, une sauvegarde d’éditeur. Retirez-le quand même, parce que les lecteurs doivent télécharger ce poids mort.
Un fichier qui passe mais ne devrait pas vous rassurer
Une étiquette de langue qui n’en est pas une. english au lieu de en a donné 0 erreur. Les liseuses utilisent ce champ pour la césure et la synthèse vocale, donc une valeur fausse dégrade le livre sans bruit.
L’échec qu’EPUBCheck ne voit pas
Un chapitre entier a été retiré de l’ordre de lecture et de la table des matières, son fichier restant dans l’archive. Le résultat :
Messages: 0 fatals / 0 errors / 0 warnings / 0 infos
Un livre numérique valide, à qui il manque un chapitre. La norme exige seulement que les parties déclarées d’un EPUB concordent entre elles, et elles concordaient. Retirez le chapitre de l’un des deux endroits et vous obtenez RSC-011 ; retirez-le des deux et c’est un livre plus court.
Un rapport EPUBCheck sans erreur signifie que le fichier est bien formé, pas que c’est votre livre. Seul le fait d’ouvrir le livre et de compter les chapitres repère un chapitre manquant.
Lire un rapport
- Corrigez d’abord chaque FATAL. L’analyse s’est arrêtée là, donc le reste du rapport a été écrit à partir d’une vue incomplète.
- Un seul problème peut produire plusieurs messages. Corrigez les causes et relancez, plutôt que de suivre la liste.
- Pour RSC-005, lisez la phrase, pas le code.
- Les avertissements sont facultatifs et faciles à corriger. Éliminez-les, pour que le prochain nouveau se remarque.
Nous vérifions chaque EPUB que nous faisons avec EPUBCheck lui-même. Cette page cite les messages mot pour mot, parce qu’une paraphrase perd la partie qui dit quoi faire.