-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Check for duplicates
- I have searched for similar issues before opening a new one.
Problem
-
Holding a mouse click down while dragging can be an accessibility barrier for some, including (but not limited to):
a. Users of assistive technology
b. Users with a low quality trackpad
c. Young users with small hands and not much experience with mouse control
d. Users struggling with the cognitive mapping between hand movements and cursor control.
e. Touch screen users who struggle with the motor control required to maintain a drag action (but otherwise prefer touch over keyboard/etc) -
Current mouse drag implementation requires that you line up the connection point of a block, which isn't generally information that's presented to the user, and so doesn't always translate to intuitive behaviour. For standard mouse usage, the connection preview gives feedback that helps learn to workaround this, but sometimes using assistive tech to complete a mouse drag in two stages (selecting initial click location and then target), this becomes impossible.
For an example of (2), consider using eye gaze to define an initial click location and then a drag target. If you've clicked on a value block anywhere other than the left hand edge, you are required to look at a target offset an arbitrary amount from the connection you are aiming for in order to make a connection work.
Request
Provide an alternative way to move blocks, for mouse/pointer users, that circumvents the need for a mouse drag.
The minimum delta required for this could be:
- Make all potential connection targets visible when in move mode
- Provide a mouse-based trigger to enter move mode (such as a double click)
We may also wish to explore:
- Providing a way for a block to stick to the cursor while moving, in a new 'click and stick' style operation. This gives access to the preview feedback while allowing the move operation to be formed using sequential actions.
Alternatives considered
Using keyboard move mode
- It is indeed possible to avoid drag operations by using keyboard controls
- I do advocate for encouraging keyboard controls for mixed mode use cases, to allow people to develop their own preferred workflows and to be exposed to the potential efficiencies of keyboard controls
But...
- For those who can click/tap a point comfortably, direct access is preferable compared to several arrow key presses
- less physically demanding (fewer actions), and
- less cognitively demanding (direct spatial targeting rather than indirect mapping between keyboard presses and navigation)
- Touch screens are more accessible than keyboards for many users with motor difficulties, BUT the click and drag can be a challenge.
- Switching between cursor-based workflows and keyboard-based workflows adds cognitive switching demands on users of assistive tech or users of touch screens.
Using O/S level mouse options.
MouseKeys or ClickLock /Drag Lock or Chromebook's "Tap and drag to move items" all give you ways to perform a drag operation in steps. They are all a bit problematic (for example, Windows Click lock gives zero feedback when it triggers, and has an innate ability to not trigger when I want it, but always triggering when I don't). Also
- Students may not have access to O/S settings
- Students may not want this setting in their other apps
- Students and teachers may not know they exist
Other
I wrote a whole article here with workarounds: Guide on click and drag
I believe that this is a universal enough 'value add' that it deserves to be standard behaviour rather than signposting hacky workarounds.
Additional context
I've made a prototype implementation to play around with this. You can try it at click stick demo 15-oct-25).
Note that:
- this is not intended to be production-ready, it's just a UX prototype that Claude Code helped me build.
- double click trigger won't work on iOS
- you can change options in the left hand pane to play around with different options
How it generally works:
- you can put a block into 'sticky move mode' by double clicking (or one of the other triggers in the dropdown)
- in this mode you can:
- use arrow keys as usual, or
- move the mouse around to see previews
- tap/click to release (as per the preview, or
- tap/click directly on a connection to connect there, or
- tap/click on the workspace to drop there
- use Esc/Enter as expected
I also recorded a 12 minute presentation to argue for this. I've shared it with the CSTA listserve and am getting feedback from them on the next CSTA zoom meeting in a few weeks. I've had positive feedback from a couple of educators in private conversations, who emphasised the potential for touch screen users as well as eye gaze users.