Laurent initiated a discussion about the inconsistent placement and labeling of “Approve” and “Reject” buttons in Discourse’s review queues. He noted that the spam queue and flag queue swap these actions (e.g., “Reject” is on the left in one and on the right in the other), leading to accidental moderation errors during high-volume spam handling. nathank, bartv, and others agreed that the inconsistency adds unnecessary cognitive load, with merefield highlighting confusion around terms like “rejected” when agreeing with a flag.
In response, awesomerobot proposed a standardized approach: rephrasing questions to “Is there something wrong with this post/account?” so that “Yes” consistently means there is a problem. RGJ supported this, though RGJ later expressed concern that green “flag approved” badges might be misinterpreted as “post is okay” when they actually confirm the flag’s validity. mbauman added that the review logs were also confusing because the same words (e.g., “approved”) had opposite meanings depending on whether one was reviewing a user or a post.
awesomerobot implemented these changes in pull request #45915 and released them as an upcoming change called Consistent review queue answers (details). The update ensures “Yes” always indicates a problem and aligns badge colors and wording across different reviewable types. Laurent, bartv, and mbauman thanked the team for addressing the usability issues.
awesomerobot later cross-referenced a separate topic discussing whether this change affects how “Approvals” are perceived, specifically regarding user moderation versus post moderation. Ed_S added context that some communities require all users to go through approval regardless of suspicion, which might conflict with the new “Yes means problem” logic if not carefully explained.
We’ve been getting a lot of spam lately, sometimes 10-15 posts, and it’s very obvious they are spam so I go very quickly through them to delete and block the user.
Doing so made me realise that Discourse has two GUI to handle such messages - the spam queue and the flag queue. That’s fine, but the problem is that these two queue swap the Approve / Reject buttons.
See in the screenshots below - in the first one, the “Reject” actions are on the left, and the “Approve” one on the right. While on the second screenshot you would click on the left button to “Approve”, and on the right one to “Reject”.
Obviously when going through many posts it’s easy to end up restoring a post when you wanted it deleted or vice-versa.
So I’m suggesting putting the similar actions on the same side - maybe by changing queued topics to have the “Reject Post” button on the left instead.
Today I accepted again a post I should have deleted because of the constant flip-flopping between “yes” fo Approve and “no” for Reject. Given the care that the Discourse team puts into UI/UX I’m surprised this hasn’t been addressed at all.
That seems like basic usability, that you don’t flip the meaning of two Accept/Reject buttons. Or is there a rational for doing it, like maybe forcing the user to look closely and choose carefully? (if so it’s not working)
I find this interface confusing in general. When you agree with a flag it says “rejected”? Did I just reject the flag?! I wonder if there is scope to make all this workflow more clear and straightforward?
Exactly - it’s a task that’s mechanical - spam, reject, non-spam, accept, and it should be possible to do it quickly. But because of the confusing UI I always have to be careful for each decision, making sure I check what “yes” or “no” means, and I still occasionally end up getting it wrong
I am constantly unsure what the /review action logs mean because the same words mean completely opposite things on different types of reviewables. For example, when I get a “User needs approval” reviewable and decide that the user should be deleted, I get badges and wording like:
It’d be so nice to have a single consistent perspective. Either I’m reviewing the flag or I’m reviewing the item the flag is on. I can totally see it both ways, but please don’t do both at the same time!