Page MenuHomePhabricator

TOC scrolling is confusing when mouse focus changes pane
Closed, DeclinedPublicBUG REPORT

Description

See https://photos.app.goo.gl/NKAPLvAuCPUKb9HT8 I tried to upload the .mov to phab, but it rejected the file format.

To reproduce this you need a page which is long enough that it doesn't fit in the window, and a TOC which is also long enough that it doesn't fit in the TOC pane without scrolling. In the exmample here, I'm using https://en.wikipedia.org/w/index.php?title=Wikipedia:Arbitration/Requests/Case&oldid=1116247536

In the movie, I'm continuously scrolling down through the TOC with the trackwheel on my mouse. As I do this, if I accidentally move the mouse so focus crosses the pane boundary (I'm using exaggerated movements here to make it more obvious), I switch from scrolling the TOC pane to scrolling the main pane. And once I do that, it jumps the TOC scroll position to match the main pane's scroll position, so the TOC jumps backwards. And if I then slide over a little bit so I'm back in the TOC, I pick up scrolling that pane, which is no longer in the place it was a moment ago.

It took me quite a while to figure out how to reproduce this, I suspect most people will think it's just scrolling randomly and have no idea why.

I think this is fundamentally the same problem as I reported in T318600. There's bi-directional coupling between the scroll position of the two panes, and small changes in one pane get amplified when the other pane tries to catch up. This is a classic example of small perturbations leading to large changes in observed state due to feedback instability.

Event Timeline

Thanks for the report @RoySmith. @alexhollender_WMF - I'm wondering what your thoughts are on this one

alexhollender_WMF updated the task description. (Show Details)

I've attached a video of what I believe you're describing @RoySmith. I think the auto-jump/scroll feature of the table of contents (where it automatically jumps/scrolls itself so that the section of the page that is currently in view is also in view in the table of contents) will always come with the tradeoff of potential confusion. If you are scrolling down the page and the table of contents jumps/scrolls itself down, the potential for confusion is less than if you are scrolling the page down and the table of contents jumps/scrolls itself up. However that second case is much more rare (i.e. an edge-case), because it requires you having gotten the page and the table of contents out-of-sync (so to speak) in the first place. In both cases the potential confusion is a tradeoff we're making intentionally.

Specifically regarding the drifting-mouse-while-scrolling, and the table of contents jumping up: I think here you are highlighting an edge-case within an edge-case. Mainly because moving your mouse while scrolling is (I would say very) uncommon, plus the point I described above. Also, it's clear that you've crossed the scroll area because there is a visible scrollbar, and because a different part of the page starts scrolling.