I build a read-aloud Chrome extension. Early on, a user asked the obvious question: "Can it read my Kindle books?" Kindle has a web reader at read.amazon.com, so surely it's just another webpage, right?
It is not. And the reason turned out to be a genuinely interesting front-end rabbit hole.
The DOM returns garbage
The naive approach to any read-aloud tool is simple: grab the text from the DOM, send it to a speech engine. This works on 99% of the web.
On Kindle Cloud Reader it returns nonsense. Select a paragraph, copy it, paste it into a text editor — and you get a jumble of characters that don't match what's on screen.






