e-book in formato ePub, standard e store digitali

Image by HowardWilks available on Pixabay. Relased with a CC0 license.

Di recente mi sono accorto di una cosa abbastanza sconcertante riguardo gli e-book e la loro validazione in alcuni store. Ma prima di discutere della mia “scoperta” vi devo spiegare alcune cose.

Cos’è una validazione di un e-book? Dovete sapere che l’e-book in formato ePub è un file compresso di formato ZIP al cui interno ci sono cartelle, file HTML/XHTML e CSS. La validazione serve per fare in modo che questo insieme di dati sia coerente con lo standard ePub, ovvero con le regole che si usano per creare il file ePub.

Un e-book validato è la base di partenza per pubblicare e-book. Questo perché un programma che visualizza l’e-book si aspetta un formato corretto, anche se oramai si sa bene che non tutti gli e-book riescono col buco e quindi il programma di visualizzazione di un e-book si deve “adattare” anche ad e-book non validati e con errori vari. Se ha modo di aggirare il problema, allora visualizzerà il contenuto dell’e-book senza che il lettore si accorga di questi problemi. Se non ci riesce potrebbe “dare i numeri”, ovvero produrre comportamenti non previsti e, a tal punto, evidenti al lettore.

Ho comprato degli e-book di recente e mi è venuta l’idea di passare il file nel validatore ePub. A quel punto ero convinto che chi avesse messo a disposizione l’e-book non conoscesse nemmeno le regole base per fare un e-book, oppure usasse qualche strano software per produrli. Qualcuno mi ha messo, però, una pulce nell’orecchio e mi sono spinto a verificare anche i miei e-book. Di solito quando pubblico in uno store mi capita di comprare anche il mio e-book per essere sicuro del lavoro finale fatto, oppure per verificare alcune funzionalità.

Ebbene, scaricando la versione acquistata dallo store di “Le parole confondono”, file aggiornato più o meno un anno fa sullo store, e confrontandola con quella che io ho caricato ho scoperto che lo store modifica gli e-book che mette in vendita rendendoli non più validati.

Questo è ciò che il controllo di validazione ha verificato sul mio file originale:

$ ./check-epub.sh giovanni_venturi_le_parole_confondono.epub
Controllo secondo le regole per EPUB versione 2.0.1.
Non sono stati trovati errori o potenziali errori.
Controllo completato.

E questo, invece, è ciò che il controllo di validazione ha trovato sul file scaricato dallo store:

$ ./check-epub.sh Le_parole_confondono.epub
Controllo secondo le regole per EPUB versione 2.0.1.
ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/volume.opf(58,42): È occorso un errore durante la lettura del file: trovato attributo "page-map", non permesso per l'elemento . Ammesso solo l'attributo "id".
ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/Text/copertina.xhtml(25,23): È occorso un errore durante la lettura del file: elemento "a" non ammesso in questo punto . Atteso tag di chiusura dell'elemento o elemento "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" o "ul" (con xmlns:ns="http://www.w3.org/2000/svg").
ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/Text/copertina.xhtml(25,329): È occorso un errore durante la lettura del file: trovato attributo "alt", non permesso per l'elemento . Ammesso solo l'attributo "class", "clip", "clip-path", "clip-rule", "color", "color-interpolation", "color-profile", "color-rendering", "cursor", "display", "externalResourcesRequired", "fill-opacity", "filter", "id", "image-rendering", "mask", "ns:actuate", "ns:arcrole", "ns:role", "ns:show", "ns:title", "ns:type", "onactivate", "onclick", "onfocusin", "onfocusout", "onload", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "opacity", "overflow", "pointer-events", "preserveAspectRatio", "requiredExtensions", "requiredFeatures", "shape-rendering", "stroke-opacity", "style", "systemLanguage", "text-rendering", "transform", "visibility", "x", "xml:base", "xml:lang", "xml:space" o "y" (con xmlns:ns="http://www.w3.org/1999/xlink").
ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/Text/copertina.xhtml(25,355): È occorso un errore durante la lettura del file: elemento "a" non ammesso in questo punto . Atteso tag di chiusura dell'elemento o elemento "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" o "ul" (con xmlns:ns="http://www.w3.org/2000/svg").
ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/titolo.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.
ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/copyright.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.
...
ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/cap-22.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.
ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/ringraziamenti.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.
ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/l-autore.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.
ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/altre-pubblicazioni.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.

Sono stati rilevati errori.

Controllo completato.

A quel punto mi era chiaro che il problema che avevo riscontrato su alcuni autori ed editori non era un problema loro, come non lo è mio sui miei file, se una piattaforma modifica ciò che noi carichiamo per motivi arcani. Il fatto è che renderlo non validato è un po’ tanto strano. Se qualcun altro fa il mio stesso ragionamento iniziale, ovvero che l’e-book dell’editore o dell’autore non è validato perché lui non lo sa fare capirete le ore perse ad assicurarmi che tutto sia corretto, vanno a farsi benedire, oltre che la mia reputazione, io che sono un tipo pignolo e preciso sulla questione della validazione e sul contenuto del codice che costituisce l’e-book.

Vediamo meglio questi errori.

Il primo dice:

ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/volume.opf(58,42): È occorso un errore durante la lettura del file: trovato attributo "page-map", non permesso per l'elemento . Ammesso solo l'attributo "id".

Vediamo la riga corrispondete nel mio mio file giovanni_venturi_le_parole_confondono.epub/OEBPS/volume.opf:

<spine toc="ncx">

e in Le_parole_confondono.epub/OEBPS/volume.opf:

<spine page-map="_page_map_" toc="ncx">

Effettivamente hanno inserito quel:

page-map="_page_map_"

Che non ci deve stare.

Altri errori:

ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/Text/copertina.xhtml(25,23): È occorso un errore durante la lettura del file: elemento "a" non ammesso in questo punto . Atteso tag di chiusura dell'elemento o elemento "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" o "ul" (con xmlns:ns="http://www.w3.org/2000/svg").
ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/Text/copertina.xhtml(25,329): È occorso un errore durante la lettura del file: trovato attributo "alt", non permesso per l'elemento . Ammesso solo l'attributo "class", "clip", "clip-path", "clip-rule", "color", "color-interpolation", "color-profile", "color-rendering", "cursor", "display", "externalResourcesRequired", "fill-opacity", "filter", "id", "image-rendering", "mask", "ns:actuate", "ns:arcrole", "ns:role", "ns:show", "ns:title", "ns:type", "onactivate", "onclick", "onfocusin", "onfocusout", "onload", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "opacity", "overflow", "pointer-events", "preserveAspectRatio", "requiredExtensions", "requiredFeatures", "shape-rendering", "stroke-opacity", "style", "systemLanguage", "text-rendering", "transform", "visibility", "x", "xml:base", "xml:lang", "xml:space" o "y" (con xmlns:ns="http://www.w3.org/1999/xlink").
ERROR(RSC-005): Le_parole_confondono.epub/OEBPS/Text/copertina.xhtml(25,355): È occorso un errore durante la lettura del file: elemento "a" non ammesso in questo punto . Atteso tag di chiusura dell'elemento o elemento "address", "blockquote", "del", "div", "dl", "h1", "h2", "h3", "h4", "h5", "h6", "hr", "ins", "noscript", "ns:svg", "ol", "p", "pre", "script", "table" o "ul" (con xmlns:ns="http://www.w3.org/2000/svg").

Vediamo il mio file copertina.xhtml:

<body>
<h1 id="cover-image"><img alt="Le parole confondono" height="100%" src="../Images/le-parole-confondono-cover-ebook.jpg"/></h1>
</body>

Le righe corrispondenti nel file manipolato:

<body style="margin-top: 0px; margin-left: 0px; margin-right: 0px; margin-bottom: 0px;"><div style="display:none;"><a id="GBS.0001.01"></a></div>
<a id="cover-image"></a><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="99%" viewBox="0 0 600 800" preserveAspectRatio="xMidYMid meet"><image width="600" height="800" xlink:href="../Images/le-parole-confondono-cover-ebook.jpg" alt="Le parole confondono"/></svg><a id="GBS.0002.01"></a>
<div style="display:none;"><a id="GBS.0002.02"></a></div></body>

Hanno inserito più tag A in punti in cui non ci devono stare. Questi tag particolari sono dei segnalibri e sono presenti anche all’interno dei vari capitoli più e più volte, forse servono per scandire il numero di pagine dell’e-book nell’app, non so.

Infine in ogni file XHTML che ho nell’ePub:

ERROR(HTM-004): Le_parole_confondono.epub/OEBPS/Text/titolo.xhtml(-1,-1): È stato trovato un 'DOCTYPE' errato: '-//W3C//DTD XHTML 1.0 Strict//EN' mentre era atteso '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'.

Questa la mia intestazione dei file XHTML:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

Questo è il modo in cui la hanno sostituita:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

Perché? Non saprei.

Lo store aveva anche inizialmente contribuito a creare questo standard ePub per cui non sarei mai andato all’idea che dopo aver preso un file validato (non viene caricato se non è validato al 100%) poi gli si fa perdere la validazione rielaborandolo.

Questa cosa sugli store che vendono ePub si è potuta controllare. Dove non viene usato l’ePub viene buttato tutto sotto al tappeto, il che è pure peggio.

Ma questi file ePub di cui parlo, comprati sullo store, si leggono correttamente anche su lettori diversi dalla loro app di lettura? Sì, e questo è importante, ma perché ci siano specifiche modifiche che rendono un file non più validato non saprei.

In questa faccenda ho colto un elemento importante. Non sempre la prospettiva da cui si guarda è quella corretta. Ero convintissimo che lo store rilasciasse e-book validati, lo davo per scontato, insomma. Ho imparato un’altra cosa. Continuerò a comprare gli e-book sul loro store ma ora so che non devo mai giudicare da ciò che sembra. Bisogna fare controlli incrociati a 360° o magari non farli e basta, non pensare che gli e-book c’è chi li sa fare o no e chi te li vende in formato non validato. Tanto alla fine, per fortuna, il lettore finale tutte queste cose non le vede proprio e, con molta probabilità, non conoscendo HTML/XHTML, nemmeno ha capito di cosa parlo.

Al momento sto leggendo il libro cartaceo “La Zona Extramondo” di Riccardo Pietrano e rileggendo il mio e-book “Certe Incertezze”. Tu cosa leggi di bello?

Se vuoi tenerti in contatto c’è il mio canale Telegram oppure la mia newsletter. Ti puoi iscrivere quando vuoi e cancellare quando vuoi. In particolare ci sarà l’anteprima del primo racconto della raccolta di racconti sul ferragosto quando sarà tutto ultimato.

Pubblicità

2 pensieri su “e-book in formato ePub, standard e store digitali

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.