Keyboard
The Keyboard sensor responds to Keyboard events. It is one of the default sensors used by the DndContext provider if none are defined.
In order for the Keyboard sensor to function properly, the activator element that receives the useDraggable
listeners must be able to receive focus. To learn more, read the in-depth Accessibility guide.
Activator
The keyboard activator is the onKeyDown
event handler. The Keyboard sensor is initialized if the event.code
property matches one of the start
keys passed to keyboardCodes
option of the Keyboard sensor.
By default, the keys that activate the Keyboard sensor are Space
and Enter
.
Options
Keyboard codes
This option represents the keys that are associated with the drag start
, cancel
and end
events. The keyboardCodes
options adheres to the following interface:
The default values are:
You can customize these values, but keep in mind that the third rule of ARIA requires that a user must be able to activate the action associated with a draggable widget using both the enter
(on Windows) or return
(on macOS) and the space
key. To learn more, read the in-depth accessibility guide.
Keep in mind that you should also customize the screen reader instructions using the screenReaderInstructions
prop of <DndContext>
if you update these values, as the screen reader instructions assume that the Keyboard sensor is initialized with the default keyboard shortcuts.
The move
keyboard codes are not a customizable option, because those are handled by the coordinate getter function. To customize them, write a custom coordinate getter function.
Coordinates getter
By default, the Keyboard sensor moves in any given direction by 25
pixels when any of the arrow keys are pressed while dragging.
This is an arbitrary sensible default that may or may not be suited to the use case you are building.
The getNextCoordinates
option can be used to define a custom coordinate getter function that is passed the latest keyboard event
along with the current coordinates:
While the example above is fairly simple, you can build complex coordinate getters to support advanced use cases. The Sortable preset uses the getNextCoordinates
option to build on top of the Keyboard sensor and move the active sortable item to its new index depending on the arrow key that is pressed.
Scroll behavior
This option represents the scroll behavior that should be used when scrolling to new coordinates. The default value is smooth
, which results in the scroll container being scrolled smoothly to the new coordinates.
The other possible value is auto
, which results in the scroll container being scrolled directly to the new coordinates without any animation.
Last updated