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 retu...