Page MenuHomePhabricator

Unexpected click behavior on RTL wikis with browser zoom >100%
Closed, ResolvedPublicBUG REPORT

Description

TL;DR: We believe this ticket isn't about a single issue but an unfortunate mixture of a (new?) browser bug, a skin that didn't exist when RevisionSlider was created, and several fragile pieces of code in RevisionSlider that respond poorly to said browser bug and some of the new features the skin introduced. You can find many more details in the linked Gerrit patches.

Steps to reproduce:

  • Go to an example diff like https://he.wikipedia.org/wiki/Special:Diff/37434768?uselang=he.
  • Use the new Desktop Improvements (Vector 2022), if possible. While the issue appears to be mostly unrelated to the skin, we found it's easier to reproduce in the new Vector. Note hewiki is among the test wikis that got the new Vector very early. See T254227. That's why this issue might be relevant especially for hewiki users.
  • Make sure your interface language is actually an RTL one, not English.
  • Make sure your browser zoom is >100% and/or you have the tools menu expanded (it's on the left side because of RTL).
  • Try to click the bars. It will not jump to that position, or even crash with a Cannot read properties of undefined (reading 'top') at SliderView.revisionsClickHandler.

Early tests made it look like this is related to the pinned tools menu on the left. Just collapsing all menus made RevisionSlider work again.

At least on hewiki the TOC in the sidebar seems to be expanded by default, which means the issue is potentially visible to all anonymous users on hewiki.

Later tests showed that parts of the issue can only be reproduced when the browser zoom is >100%. But not all zoom factors are affected (see https://gerrit.wikimedia.org/r/1007329 for details). The issue is known but appears to have a very low chance of ever being fixed, see https://issues.chromium.org/issues/41417874 and the underlying issue https://issues.chromium.org/issues/40384509.

Screen width seems to play a role as well. A page with only a few revisions doesn't have problems. No problem on very large screens. When you zoom in or make the browser window more narrow the issue is much easier to reproduce.

Reported here: https://www.mediawiki.org/wiki/Topic:Xuaj7i4ajtzj3pem

Event Timeline

thiemowmde triaged this task as High priority.Nov 28 2023, 3:12 PM

Change 978498 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Add fail-safe to SliderView.revisionsClickHandler

https://gerrit.wikimedia.org/r/978498

Change 978498 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Add fail-safe to SliderView.revisionsClickHandler

https://gerrit.wikimedia.org/r/978498

Change 993217 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Merge large chunk of code duplication in SliderArrowView

https://gerrit.wikimedia.org/r/993217

Change 994186 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Merge a small piece of code duplication in SliderView

https://gerrit.wikimedia.org/r/994186

Change 994186 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Merge a small piece of code duplication in SliderView

https://gerrit.wikimedia.org/r/994186

Change 993217 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Merge large chunk of code duplication in SliderArrowView

https://gerrit.wikimedia.org/r/993217

Change 998468 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Drop obsolete special case for Google Chrome before version 60

https://gerrit.wikimedia.org/r/998468

Change 998468 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Drop obsolete special case for Google Chrome before version 60

https://gerrit.wikimedia.org/r/998468

Change 999620 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Fix rounding error in revisionsPerWindow calculation

https://gerrit.wikimedia.org/r/999620

Change 999620 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Fix rounding error in revisionsPerWindow calculation

https://gerrit.wikimedia.org/r/999620

Change 999772 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Use existing data-pos attribute instead of pixel calculations

https://gerrit.wikimedia.org/r/999772

Change 999772 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Use existing data-pos attribute instead of pixel calculations

https://gerrit.wikimedia.org/r/999772

Change 1005773 had a related patch set uploaded (by WMDE-Fisch; author: WMDE-Fisch):

[mediawiki/extensions/RevisionSlider@master] Pass through pointer events from pointer-containers

https://gerrit.wikimedia.org/r/1005773

Change 1005773 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Pass through pointer events from pointer-containers

https://gerrit.wikimedia.org/r/1005773

thiemowmde added a subscriber: awight.
thiemowmde raised the priority of this task from High to Needs Triage.Feb 28 2024, 9:34 AM

Change 1007329 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Work around rounding errors in RTL scroll type detection

https://gerrit.wikimedia.org/r/1007329

thiemowmde renamed this task from SliderView.revisionsClickHandler broken on RTL wikis with Vector 2022 to Unexpected click behavior on RTL wikis with browser zoom >100%.Feb 28 2024, 2:10 PM
thiemowmde claimed this task.
thiemowmde updated the task description. (Show Details)
thiemowmde moved this task from Incoming to Doing on the Revision-Slider board.

Change 1007329 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Work around rounding errors in RTL scroll type detection

https://gerrit.wikimedia.org/r/1007329

Change 1010589 had a related patch set uploaded (by Thiemo Kreuz (WMDE); author: Thiemo Kreuz (WMDE)):

[mediawiki/extensions/RevisionSlider@master] Drop RTL scroll type detection, obsolete since 2023

https://gerrit.wikimedia.org/r/1010589

thiemowmde added a subscriber: JStrodt_WMDE.

Quick proposal for the TechNews:

RevisionSlider is an interface to interactively browse a page's history. Users in right-to-left languages reported RevisionSlider reacting wrong to mouse clicks. This should be fixed now.

Is this ok, @JStrodt_WMDE?

Change #1010589 merged by jenkins-bot:

[mediawiki/extensions/RevisionSlider@master] Drop RTL scroll type detection, obsolete since 2023

https://gerrit.wikimedia.org/r/1010589