HumanSignal / HumanSignal/label-studio
[feature] [accessibility] arrowkey keyboard shortcuts to pan a zoomed-in image
- Dominant language
- TypeScript
- Stars
- 28.3k
- Forks
- 3.7k
- Avg merge
- 14h
- Merged PRs (30d)
- 15
Description
**Is your feature request related to a problem? Please describe.**
I have users who, for accessibility reasons, are averse to using mice, trackpads, and other pointer devices while annotating images. They LOVE that label-studio has flexible keyboard bindings for many annotation functions. One area they are struggling with however is image-panning while the image is zoomed in. The repetitive motion, especially on large images that need high-magnification, at best is slow (switching from mouse to keyboard) and at worst gets painful for sessions of any significant length.
I'm proposing the addition of a feature: to add arrow-key keyboard shortcuts to label-studio for panning around zoomed images.
**Describe alternatives you've considered**
All current methods of panning use the cursor, ie Middle-click-drag and the newer SHIFT-click-drag.
Neither alleviate the issue that a cursor motion is required to pan around.
**Additional context**
On label-studio v1.23.0 a new beta [Hotkeys](https://labelstud.io/guide/hotkeys.html#Customize-global-hotkeys-from-your-account-page) feature is enabled, allowing users to set their own hotkeys and view default hotkeys for various interfaces.
The left and right arrow-keys are currently used by `Time Series Control`, but the global/configurable hotkey system does allow conflicting key-bindings to coexist.
If a project requires Tasks with both Time Series Controls _AND_ zoomable-images, user hotkeys can be configured to not conflict using this feature.
Something I noticed was that when recording an arrow-key shortcut, currently the ui saves `ArrowLeft` instead of the keymap name `left`. Note sure if this has any functional ramifications but I thought I'd make mention.
Contributor guide
Research direction
Start with the Hotkeys guide linked in the issue and the zoomable-image panning behavior, comparing it with Time Series Control's arrow-key bindings. Done means arrow keys pan zoomed images without requiring a pointer and configurable bindings remain usable, with the ArrowLeft versus left naming concern checked.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- accessibility, frontend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100