Optional ReadonlyannouncerAnnounce each keyboard step. Defaults to a live region of its own; pass one in to share the host's.
Optional ReadonlycontainerWhere the grip and the drop indicator are appended. Must be a positioned ancestor of the editing surface, or share its offset parent. Defaults to the surface's own parent.
Optional ReadonlygapDistance from the block's left edge to the grip, in px. Defaults to 6.
A grip beside the block under the pointer, for dragging it somewhere else.
The move goes through
MoveNodeStep, so the block keeps its identity: a caret, a decoration or an upload in flight inside it survives the move rather than being restored afterwards.Dragging is not the only way in. The grip is a real button: Space picks the block up, the arrow keys move it, Enter drops it and Escape puts it back. The same contract the toolbar's group grips use, announced the same way, because a reordering gesture only available to a mouse is not available at all to a good many people.