Very nice implemenation re usability. I have seen this before, somewhere, years ago - perhaps even on HN.

Such a solution applies for text only instances. How would you solve it when graphs come into play? Display a graph next to it and pause the text?

That's the right answer, and it's pretty much what I’ve been considering since someone earlier in the thread asked about figures.

Epub makes it manageable because the images are just files in the zip. They are positioned at a set point in the spine, so I know exactly where in the word stream a figure belongs. Show it there, pause, and wait for a press to continue instead of auto advancing. You can pace text, but you can't pace a graph. There’s no sensible way to guess how long someone needs to view it.

The detail I keep reconsidering is captions. Right now, a caption flows into the stream as regular words, so you see "Figure 3 shows the relationship between" appearing one word at a time with no figure in sight. Those should be linked to the image and displayed alongside it instead.

Your question also made me realize that tables should probably be images too. Extracting text flattens a table into a series of values in reading order, which is worse than useless. Rendering the region as an image and pausing would be much better than what I do now.

Pdf is more challenging since I’d have to determine which images are real figures and which are rules and logos. Storage increases significantly too; everything is stored in IndexedDB on your device. So, a book full of plates is very different from a novel. I’ll probably need to downscale on import.

Where did you see it before? I’d really like to check out how they handled it.

Not sure if they are the "inventors", but https://spritz.com/ was where I first saw this ages ago

That's the one, thanks. Spritz is where most people discovered it and the reason why the highlighted pivot letter is the norm.

However, RSVP itself has a long history that dates back to reading research in the seventies done in the context of how quickly one can read words without eye movements. Spritz's main innovation was the optimal position of the recognition point, allowing to keep it fixed while the word around it moves to form a new word, plus the framing elements at the top and bottom. I'm using them, so no need to patent something that others have already pioneered.

What I didn't like about theirs is that it was only available as an SDK inside other apps, and not as a standalone reader. It came up on a Samsung watch and a couple of other readers, but you couldn't really submit your own epub. This is what gave me the idea to make this one.