It's surprising that we instantly send an RR on opening a room
I'd have expected that we waited a few 100ms to give the user to actually read something before proudly sending an RR. Looks like it's been like this since day 1 though: https://github.com/matrix-org/matrix-react-sdk/commit/86ef0e762ed50773d307e6f66d598bef4df311f5#diff-f9ae5a2c997a9381f2547c128b066592R178. I just spent a while tracking this down as it felt weird enough to be a regression
Is the concern just that this looks weird to other users in the room? Seeing X join and then immediately X has read everything?
It risks being even weirder if we implement a universal 'fake reading time' - at least if the two events happen instantaneously we know the user hasn't really read anything at the marker is just showing what's appeared on their screen.
Seeing X join and then immediately X has read everything?
I think this is a different issue. The title reads "opening", not "joining".
Possible solution: setTimeout on sending every RR? I'm thinking the 100ms would get washed out by network latency (and also, would anyone really notice?)
Ah yes, you're right - thanks.
I'm also of the opinion that people aren't likely to notice. It's a pretty subtle refinement - one that's worth considering in the future, though.
To reiterate what I told in element-hq/element-web#6386, I think 100 ms is too short. I think the app should wait a certain amount of time (e.g. 2 seconds) before acknowledging the read receipt. Let some time for the users to decide if this is the right room or not.