philc / philc/vimium

Navigating Multiple Scroll Bars on a Page

Open
#4,656 0 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
27k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

On certain websites that have multiple scroll bars, such as my school's internship application site, I cannot find a way to switch the active scroll bar (that vimium dictates j and k to) between different ones. As of right now, it detects some scroll bars, but not all. In the screenshot below, the default scrolling behavior is mapped to the outermost scroller. By pressing f (as in the screenshot) and then 12 (labelled "12: Scroll."), I can switch to the left pane scroll window. From there, I cannot switch back to the outermost, and I also cannot control the right pane window (starting with "Business Development Co-op"). Switching frames (through gf and gF) does not change anything, as this site any many others do not use them.

One workaround I have found is through my two link keybinds:
map X LinkHints.activateMode action=hover
map C LinkHints.activateMode action=focus

By focusing on an element in either of the panes, I can then use the arrow keys (built into Chrome) to scroll on that pane. However, vimium bindings do not switch to this scroll window, so j, k, gg, etc do not affect it.

Image

To Reproduce

Go to a website with multiple scroll bars and attempt to scroll in different areas using vimium keybinds.

Browser and Vimium version

I'm currently on the latest dev version of Vimium for Chrome. I have cloned the repo and added it in chrome://extensions as described in the tutorial. I also pull occasionally.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue on a site with multiple scroll bars, using Vimium's f, j, k, gg, gf, and gF bindings. Trace how scrollable elements are detected and selected, then verify that the outer and nested panes can be selected and controlled independently.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.