André Klein found that one valid CSS line can make Kobo devices reject an EPUB that passes EpubCheck, exposing a gap between open standards and older ebook renderers.

Author André Klein traced a Kobo compatibility failure to Adobe’s Reader Mobile Software Development Kit after his DRM-free EPUB passed EpubCheck and opened in Kindle, Apple Books, and Thorium.
Klein said a reader reported that Kobo devices called the file corrupted. He then tested an EPUB 2 version, rebuilt package files, changed metadata, altered manifests, and created fresh UUIDs. Adobe Digital Editions showed the same failure as Kobo, which gave him a target.
He found the trigger in one CSS rule: max-width: min(150px, 30vw);. CSS supports that math function, but Adobe’s RMSDK parser choked on it. After Klein changed the rule to max-width: 150px;, Adobe Digital Editions opened the book.
The episode matters to ebook authors because EpubCheck validates the package against EPUB rules. It does not test each old rendering engine that vendors still ship. A file can satisfy the standard and still fail on a device that uses an old parser.
Kobo’s dependence on Adobe’s engine gives authors another test target. Kobo sells modern readers through its Kobo store, yet Klein’s report suggests some device paths still depend on rendering behavior from Adobe’s Digital Editions era.
Developers will recognize the pattern. A standards-compliant file passes a validator, then fails in a runtime that supports part of the standard. Web teams handle this with browser testing. Ebook publishers need the same habit for Kobo and Adobe Digital Editions.
The counterpoint comes from distribution reality. Vendors use mature engines because they support DRM, legacy books, and long device lifecycles. That choice reduces vendor risk, but it moves debugging cost to authors and readers.
Klein’s fix gives publishers a practical rule: keep EPUB CSS conservative if Kobo support matters. Avoid CSS math functions, custom properties, flexbox, and grid in core reading files. Test with EpubCheck first, then test in Adobe Digital Editions before shipping.
The broader lesson lands beyond ebooks. Open standards help, but readers experience implementations. If a vendor ships an old engine, authors have to write for that engine or accept support tickets from readers who did nothing wrong.

Comments
Please log in or register to join the discussion