The reason why Kobo doesn't support EPUB files, even though there's nothing wrong with the file itself, is due to Adobe.

Writer Andre Klein has compiled details of the trouble and the circumstances surrounding the issue, including how a new book published in
Your EPUB Is Fine. Kobo Disagrees. Blame Adobe - André Klein Dot Net
https://andreklein.net/your-epub-is-fine-kobo-disagrees-blame-adobe/

To distribute DRM- free EPUB files directly to readers, Klein used EPUBCheck , an open-source tool that verifies whether ebook format files comply with official usage guidelines. EPUBCheck will fail if any HTML elements or documents deviate even slightly from the rules set by the International Electronic Publishing Forum (IDPF) , but if it passes EPUBCheck, it is generally assumed that the book will function correctly in EPUB-compatible readers and applications.
However, Klein received messages from readers stating that his book, which had passed EPUBCheck, was 'corrupted.' Initially suspecting compatibility issues with older devices, Klein provided not only the newer EPUB3 version but also the older EPUB2 version, both fully compliant with the specifications. As a result, the same problem occurred with the EPUB2 version as well.
Further interviews with readers revealed that while the books work without problems on other platforms such as Amazon Kindle, Apple Books, and Thorium Reader, they cannot be opened on Kobo devices of any generation.

Kobo devices and older Sony/Nook devices use Adobe's 'RMSDK' as their engine. Klein points out that RMSDK was developed for EPUB2 around 2010 and, although slightly updated for EPUB3, has hardly been updated since. So Klein tried loading the same book into Adobe's e-book reader app 'Adobe Digital Editions (ADE),' which uses RMSDK, and found that the book did not load, nor did it display the 'book is corrupted' message that Kobo does.
To investigate the cause, Klein created 12 different versions of the book, each of which passed EPUBCheck. Most of them could not be opened with ADE, but he was able to successfully load a version with stylesheets disabled.
Furthermore, to pinpoint exactly which part of the stylesheet was causing the problem, we created 12 variations combining different sections of the stylesheet. As a result, we found that the following line was the problem. When we changed the relevant section to the more traditional notation 'max-width: 150px;', the file opened without any problems in ADE.
.copyright img {
max-width: min(150px, 30vw);
}This problem occurred because the RMSDK's CSS parser is stuck in its 2013 state and does not support flexbox, grid layouts, mathematical functions, custom properties, etc., causing it to crash without displaying an error message when it encounters something it doesn't recognize. EPUBCheck performs basic CSS checks, but it cannot validate CSS to match a faulty renderer. Also, while Kobo has two renderers, they only support Kobo's proprietary KEPUB file format and are not applicable to standard EPUB files.
Klein stated, 'Thanks to the shoddy RMSDK that Kobo uses as the foundation for book rendering, a single line of perfectly valid CSS code can turn a perfectly valid EPUB file into a 'corrupted file' on Kobo, causing the entire book to disappear. There are no clear error messages or alternatives whatsoever. If you want to make sure a book is compatible with Kobo, relying solely on EPUBCheck is insufficient; you have to throw it into Adobe's outdated app. Ideally, the RMSDK should either move away from its outdated CSS practices or at least provide some kind of error handling instead of simply making the book disappear, but that's not something to expect.' He further criticized, 'EPUB is a great open standard for ebooks, but many of its implementations are fundamentally flawed in the name of satisfying intellectual property rights. The digital publishing industry is obsessed with restricting access in order to prioritize copyright protection over providing users with the best reading experience.'
Furthermore, when Klein's blog post became a hot topic on Hacker News, it was pointed out that 'Adobe's problem is not only that it doesn't support the latest CSS, but the RMSDK doesn't even comply with CSS 1 from 1996,' and the possibility of deficiencies in even the basic implementation has been discussed.
Related Posts:







