
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.
Hai provato a contattare gli store in questione per farti chiarire la cosa?
"Mi piace""Mi piace"
Ci ho pensato, ma quando mi è capitato di segnalare alcuni questioni tecniche molto precise siamo finiti a mille e una notte e non ho ottenuto nulla. Ci penserò.
"Mi piace""Mi piace"