Problem
People need to copy or act on an answer, but a row of controls beneath every message can make the conversation harder to read.
Solution
Place the most useful actions in a compact row beneath the answer. Give common tasks, such as copying, priority over controls used less often. Put additional actions in a menu.
Keep controls available to keyboard and touch users. If older messages reveal actions on hover, reveal them on focus too and provide a touch-accessible option. Give icons clear names and tooltips.
For ratings, offer an optional way to explain the problem. Say how feedback will be used without requiring a form just to submit a rating.
Use when
People need to copy, revise, share, or give feedback on an assistant’s answers.
Don’t use when
The response is ephemeral or inline, like a ghost-text completion or a one-line inline rewrite. There the accept and reject controls are the action row, and adding copy or rating alongside them confuses the primary decision.
Trade-offs
Visible controls add clutter, while hidden controls can be missed. Icons save space but may be ambiguous. Feedback controls create an expectation that the feedback has a purpose, which the product should explain.
Checklist
- Is copy the easiest thing in the row to hit?
- Does the row reach keyboard and touch users, or only a pointer?
- What’s the order, and is it ranked by viewer behaviour or by internal need?
- Does a thumbs-down collect anything beyond one bit?
- Is it clear what happens to a rating after it is clicked?
- Does copy take the markdown, the rendered text, or the raw response?
- How many items does the row hold, and what’s the rule for adding the next one?
- Do the actions appear before the response has finished streaming?
- Can a single turn be shared or linked without sharing the whole conversation?
- Are the icons legible without their tooltips?
Compare
ChatGPT runs a compact row under each answer with copy, a thumbs pair, read-aloud and regenerate, and reveals it on the turn rather than holding it always-on down the page. Claude keeps the row narrower and moves the heavier actions onto the generated document when one exists, so the transcript row stays about the text and the artifact carries its own controls. Gemini treats sharing as a first-class action rather than an overflow item, exporting a response into a Doc. The row becomes an exit ramp into another product rather than a clipboard. Perplexity anchors its row on rewriting and re-sourcing instead of rating, which fits a product where the next move is usually another search rather than a judgement about the last answer.
Related
Message turn contains the answer these controls act on. Regenerate requests another attempt. Artifact panel gives documents their own controls.
Code block actions applies to a single code block. Streaming response affects when an answer is complete enough for an action.