philc / philc/vimium

Feature Request: Custom Clickable Element Selectors

Open
#4,711 0 comments 0 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

I use a few sites daily that have clickable elements that lack semantic indicators such as class names containing button, proper roles, etc. This makes vimium missing these elements in link hints, and I understand why and that it's hard and probably impossible to fix for all edge cases.

Most of them are different kinds of lists, see examples below.

It would be great if the vimium users had the option to add custom attributes and/or classnames, maybe even whole html-tags with wildcards, in the settings to fix these special case issues. Preferably domain-specific to not trigger false positives on the rest of the internet.

Example 1
Image

<div role="row" row-index="0" row-id="0" comp-id="660" class="ag-row ag-row-no-focus ag-row-even ag-row-no-animation ag-row-level-0" style="height: 48px; top: 0px;  " index="0">...</div>
<div role="row" row-index="1" row-id="1" comp-id="671" class="ag-row ag-row-no-focus ag-row-odd ag-row-no-animation ag-row-level-0" style="height: 48px; top: 48px;  " index="1">...</div>
<div role="row" row-index="2" row-id="2" comp-id="682" class="ag-row ag-row-no-focus ag-row-odd ag-row-no-animation ag-row-level-0" style="height: 48px; top: 48px;  " index="2">...</div>
...

Example 2
Image
not sure what hackery they did here, all these tr-lines are perfectly tabable eventhough they have the attribute tabindex="-1"

<tr class="cursor row-hover white" data-cid="c1853" tabindex="-1">...</tr>
<tr class="cursor row-hover white" data-cid="c1857" tabindex="-1">...</tr>
<tr class="cursor row-hover white" data-cid="c1861" tabindex="-1">...</tr>
...

Example 3
Image
Shouldn't tabindex > -1 make these hinted with f/F?

<div class="rt-tr-group table-tr" tabindex="0" draggable="true" id="1041">...</div>
<div class="rt-tr-group table-tr" tabindex="0" draggable="true" id="1042">...</div>
<div class="rt-tr-group table-tr" tabindex="0" draggable="true" id="1043">...</div>
...

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

No source files or tests are named. Start by tracing Vimium’s link-hint candidate detection and settings flow, then compare the three HTML examples; done means users can configure domain-specific selectors for these elements without introducing unwanted hints elsewhere, with regression coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend, web-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.