Listen to this post:

I have not been using sayoutloud, the Firefox addon from my TTS setup, as much as I expected to when I built it. It requires too many clicks, is too hidden in right-click menus. Also, browser add-ons are not getting much love from browser vendors these days, and I would rather avoid them when possible.

I made tts-bookmarklet instead: it is just a simple bookmarklet, templated with whatever gopipertts endpoint and config you want, that inserts a bunch of “listen” buttons into the current page’s (hopefully) relevant elements.

So it’s one initial click to get the listen buttons to show up, and then one click per paragraph, instead of selecting the text you want to hear, right-clicking, finding sayoutloud, etc., for each paragraph/section.

Having to think about what you are selecting with sayoutloud got tiring too: too large a selection, and funky web design means you might drag in random side navs or adverts along with it; too small, and you keep having to select, right-click, look for the option in the menu, look for the suboption for the proper language, repeat.

A lot of fancy sites restrict which origins an in-page script is allowed to fetch from through their Content Security Policy: GitHub allowlists a handful of its own hosts in connect-src, and Reddit sets no connect-src at all, falling back to a default-src 'none' that blocks the request. Plain CORS on the TTS endpoint fails the fetch too (but that one you can fix on your gopipertts deployment). When the request is blocked, the bookmarklet opens the TTS audio URL in a new tab, instead of playing it through the in-page button.

sayoutloud is still useful for custom selection or full-page reads, and I will keep it around for now, but I am hoping this bookmarklet pushes me to use TTS more.