Forums Bug Reports Thread

DM message reactions are unreachable on touch devices (hover-only react button)

Patrick Bass · Jun 6 · 8 · 1 Locked
[Major] [High Priority] [Bug Fixed] [Always Reproduces]
🚀 OP Jun 6, 2026 5:50pm

Area: Messaging & chat (audit p4) · Surface: /messages/{id} (MessageController@showConversation) · Dimension: Law 5 — mobile first-class · Severity: major

On phones/tablets the per-message react (😊) button never appears, because it is hidden by default and revealed solely via `:hover` on the bubble. There is no tap/long-press fallback and no `@media (hover: none)` override. The whole 'add a reaction' affordance in DMs is dead on mobile — a feature that exists in markup but is impossible to invoke. Mobile is supposed to be first-class.

Evidence

templates/messages/conversation.php:291-293 renders the react trigger with inline `style="...display:none;..."`. The ONLY rule that reveals it is style.css:4642 `.msg-bubble:hover .msg-react-btn { display: flex !important; }`. grep for `@media (hover: none)` or any touch fallback for `.msg-react-btn` returns nothing. Touch devices fire no hover, so the button stays `display:none` forever.

Suggested fix. Add a touch fallback: under `@media (hover: none)` make `.msg-react-btn { display: flex; opacity: .6; }` (always visible) or wire a long-press/tap handler in conversation.php's react script to toggle the picker. Reveal the button on `:focus-within` too so keyboard users can reach it.

Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.


Patrick Bass
@mobieus

🚀 Jun 7, 2026 4:59am

Resolved — fixed and deployed. Commit faa14fc59739, shipped dev-first then to all tenants on 2026-06-06.

Added a scoped <style nonce> block (with the script nonce) providing a touch/keyboard fallback for .msg-react-btn: reveal it permanently under @media (hover: none), and on .msg-bubble:focus-within plus :focus-visible, so the react affordance is reachable on touch devices and via keyboard. style.css only revealed it on .msg-bubble:hover, which never fires on touch.

Status: fixed. Thread closed and locked.


Patrick Bass
@mobieus

Log in or register to reply to this thread.