V3.05.2Request-grant handoverdesign

Control handover needs request and grant as two independent actions

Aliases: request-grant pattern · two-step handover · floor negotiation

What it is

A well-formed handover of control is two independent actions: the wanting party requests, the holding party grants. One-step transfers (grab it, or have it auto-rotate) compress the two into one and lose two pieces of information — the holder does not know someone wanted it (ambushed by the seizure), and the requester does not know whether the other side was aware (was what they received a default or a consent?). Request-grant makes the transfer an explicit negotiation, completed with both parties informed. It is not "correct" as opposed to free grabbing; it is the choice for higher social density: two steps between strangers and in formal settings, one step with after-the-fact notice between teammates in tight collaboration.

Why it happens

What the two-step design protects is the holder's context. While holding the floor, a person is in the middle of an action sequence (halfway through an input, at the crux of a demo, mid-operation of a remote device); being grabbed outright means the action is interrupted at an arbitrary point, the unfinished input hangs in the air, and the recovery cost is shared by both sides. Request-grant returns the choice of interruption point to the holder: on seeing the request, they can finish the current operation, tidy the state, even narrate the context verbally, and only then hand over — the transfer becomes a clean switchover instead of a random truncation. For the requester, the wait buys a complete state on entry: they receive the situation as the holder left it, not half an operation. The cost of two steps is latency, and latency only truly injures operation-dense, high-tempo tasks — in most collaborative settings the recovery time saved by one clean handover far exceeds the seconds spent waiting.

Where it stops holding

Request-grant does not fit every rhythm. In operation-dense, high-urgency settings (remote assistance where the customer urgently needs the support agent to take over), the negotiation delay is itself the harm; allow pre-authorization (grant the supporter at session start) or a fast lane (request grants temporary control, revocable by the holder). Role-asymmetric settings (chair and audience) do not need two steps either — the chair may hand off unilaterally and reclaim at will; request-grant is a mechanism between peers. Ignored requests are the pattern's built-in failure: when the holder does not respond, the system cannot wait forever and needs a timeout and escalation path (auto-transfer to the requester, or chair arbitration).

Applying it

  • Make the request cheap (one button, one shortcut) and the grant explicit (a confirm click, never "timeout counts as granted").
  • On incoming requests, give the holder a gentle cue that does not interrupt the current operation (badge, sound) and let them choose when to deal with it.
  • Confirm the grant to both sides, and hand the new holder a complete operating context (current state, the handed-over object's focus position).
  • Set request timeouts with escalation: long silences route to chair arbitration or rule-based transfer instead of dead waiting.
  • Verification: log handover events from recordings — request-to-grant latency distribution and errors within 30 seconds after handover; errors clustered around handover points mean the context transfer is incomplete.

Related

  • Same group: V3.05.1 Scenarios allowing only one operator at a time need explicit control attribution · V3.05.3 The current holder of control must be persistently visible · V3.05.4 Disconnecting holders need automatic control reclaim · V3.05.5 Forced seizure of control must leave a traceable record
  • Nearby: V5.05 Hand-raising, Queuing and Moderation Tools · V6.01 Task Assignment and Claiming
  • Search terms: request-grant handover · floor passing · control transfer · interruption point

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/V3.05.2