qanda is the shared display for a live Audience Q&A session. It shows the five highest voted audience questions and updates as phone controls submit and upvote questions.

Open /qanda/ on the shared screen. Participants scan the displayed QR code, or open /qanda-c/?r=<room> directly, to join the same RCWeb room from their phones.
The display is designed for a TV, projector, laptop, or signage screen. It shows:
qanda-c in the same room.Questions are ranked by upvote count. Ties are ordered by the time the question arrived at the display, so earlier questions stay ahead until another question receives more upvotes.
The display keeps up to 100 live questions and trims question text to 220 characters. If the limit is reached, controls receive a visible rejection status instead of silently dropping submissions.
The display is the source of truth. Controls send submit and upvote requests to qanda, and the display validates them before changing state.
Each control has a locally stored participant ID, which prevents duplicate upvotes from the same browser. Participants can upvote questions from other users and tap again to remove their upvote. They cannot upvote their own submitted questions.
Poster names come from the shared RCWeb local storage key rcwebName on the control device. The control app lets participants edit and save that name before submitting, and saved name changes update that participant's existing questions across the display and all controls.
Controls request the current snapshot when they open or refresh. The display sends the current question list, upvote state, total count, and revision back to controls.
If the display refreshes, the live Q&A state resets because the display owns the in-memory session state.
Audience Q&A uses RCWeb's room WebSocket layer through comms.js. Controllers call display functions with rc.sendFunctionCall("qanda", ...), and the display broadcasts authoritative snapshots back to qanda-c controls.