Advance apology to Nook users

The type of ebook I make is EPUB3. With a lot of accessibility features baked in for those who need them. I make these epubs backwardly compatible with older devices and rendering engines but I’ve hit a peculiar wall with Nook.

In the past, I’ve noticed buggy behavior with epubs when testing in the Nook Android app. Was the problem confined to the app? Or would it show up on a device? I had no way to know. So I bit the bullet and bought a 2023 Nook Glowlight 4 Plus for half price on eBay. And found out. The bug happens on the device too. Sigh.

Well, this is why testing is important. You can’t count on different devices or apps, even from the SAME company, to render ebooks identically.

Interestingly, there is NO TRACE of this bug in the Nook iOS app. None, zip, nada.

The problem, which only happens in the Nook Android app and on the Nook e-ink device is quite reader-unfriendly. TEXT GOES MISSING! Fortunately, there is a fix.

The problem is NOT affecting normal chapters. There is no issue at all with the main book text. Nook users should be able to read the author’s content in all my epubs. The affected pages are the “rights” page and the “about-this-book” page.

On the Nook e-ink device, only ONE page is affected, the “about-this-book” page. This page has several sections, including a description, source of the text, print page count, any changes, and a colophon.

If you use a Nook device, and text is missing, increase the font size! It’s only the two smallest font sizes where the text goes missing.

Unfortunately, there’s NO fix in the Nook Android app. I couldn’t enlarge the font enough to get all the text back.

I went absolutely berserk over the weekend troubleshooting. I removed any modern CSS that I thought the old Nook rendering engine might object to. I simplified code, making ONE CHANGE AT A TIME. I deleted the ebook from the Nook each time. I rebooted the device before re-loading the file each time! But I’m stuck. Nothing worked. I put my original code back, since no change made any difference.

I’ve been over and over my epub. The HTML is valid, the CSS is valid, the epub is valid. There’s no missing text happening on any other device or app. Which means, this issue is a NOOK bug! Barnes & Noble needs to update their epub rendering engine to work with modern epub standards and CSS.

Apologies for the poor photos, it’s been a gloomy, overcast day!

Update

Well. the mystery deepens. I’m working on the next book, and the last page displays just fine on my Nook and in the Nook Android app. I’ve gone over the code for both books yet again, and there’s NO difference in the structure on that page, though there are heading borders in Top Horse. I messed about with those again, no change. I changed embedded fonts entirely, because I’d used a different font in the Game-Legs, nope, it’s not that either. Still stumped. The only actual code differences on the page are extremely minimal, and shouldn’t be causing any issue.

The good news is that most books will be fine, a few may cause issues for people who read in the tiniest fonts on their Nooks. At this point, I think it could be an issue with the border styling CSS, and I will revisit that soon. I’m flying blind, because I don’t know what Nook is objecting to. Hopefully, I’ll find an answer.

Meanwhile, I will mark affected ebooks with a “NOOK quirk” designation and a link to this post for clarification.

Final Update

Problem solved! None of my theories were correct. It was not the multiple sections. It was not the border styling. It turned out to be an opacity property used for subheading tags. I used opacity instead of a gray color for the subheadings, because opacity often works better in dark mode.

The “about this book” page that uses the most subheadings is straightforward. It’s easy to understand the content even without seeing the subheadings. Dark mode can deal with text set to a specific color in most reading systems. There will be exceptions. However, it’s better for a few readers to experience a somewhat less legible subheading, than having text go entirely missing!