Polls UX: Problems and solutions

(Claas Aug.) #1

I like Discourse’s poll feature, but I see a few minor problems:

Problem 1: New users have difficulties identifying a poll as such.
Explanation: There are only implicit (i.e. no explicit) visual aids to help identify a poll: There are the option bars that change colour on hover and the number of voters as well as a description of what the user can do, yet there is nothing that lets the user intuitively and quickly realise “this is a poll and I can participate”.

Problem 2: Users have difficulties identifying a multi poll as such.
Explanation: Again, there is no explicit visual aid in identifying that a poll allows multiple choice, except for the (textual) description and theoretically the additional button to submit the choice (cf. Problem 3).

Problem 3: Users tend to forget to submit their choice in a multi poll.
Explanation: While the button “Vote now!” (why the exclamation mark?) slightly changes colour upon selecting a valid number of choices, this change is hardly noticeable. It doesn’t help either that the button lacks an icon (in contrast to the surrounding buttons). Also, the user doesn’t get a warning when leaving the topic without submitting the vote. (For consistency, I would re-label the button “Submit” – we don’t write “Show poll results” and “Close poll” either, do we? – or at least “Cast Vote” in accordance to “Create Topic” in the composer.)

Problem 4: The button for closing a poll is red, even though a closed poll can be re-opened again.
Explanation: The button’s red colour has two effects here: First of all, it signals danger, even though this action is not dangerous. Secondly, it distracts from the surrounding buttons (which might not be such a big deal in the end, as moderators usually are experienced users, but why distract them anyway?).

My suggestion to face these problems would be to …

  • Add icons to poll options (PR #4265),
  • Highlight cast votes button and add icon (PR #4266) and
  • Remove danger from close poll button. (PR #4267)

… and this would look like this:

Status: Fixed. :heavy_check_mark:

(Alan Tan) #2

For problem 1 and 2, perhaps the proper fix is to use checkboxes/radio buttons and style them accordingly?

:+1: I kind of agree with this. We are using .btn-primary for other forms as well.

This feels a little bike-sheddy to me. I think Vote now! is OK and hasn’t caused any confusion that I know of.

(Jeff Atwood) #3

Where is your evidence of these problems? I have literally never heard any of these complaints before from our 400+ hosted customers, or here on meta.

I appreciate the effort, but “because claas said so” is a weird way to propose changes.

(Claas Aug.) #4

Here’s what I can I say: I have set up a new corporate Discourse instance and created a [multiple choice] poll. What I then noticed was that

  • at least one colleague responded to the vote in a reply rather than voting,
  • more than one colleague stated they had voted when in fact their vote had not been saved and
  • at least one colleague stated he didn’t identify the poll as such, but rather thought it was a simple text list of options.

Based on these indications, I discussed these issues, established a connection with UX design and came up with the above mentioned hypotheses and explanations.

This is all the evidence I can offer. On the contrary, I would argue that not having heard of these from 400+ hosted customers does not prove the inexistence of the problems either.

Just for the record: This is not about me.

(Jeff Atwood) #5

I generally do not act on isolated feedback from one site. We gather feedback from multiple Discourse instances at minimum before changing anything. You can read a little bit more about that here:

I’d be more inclined to act here, if I had heard even once that people confronted with a Discourse poll had no idea what to do.

(Mittineague) #6

Can you post a screen capture of how the poll was rendered?

It might be some custom CSS affected its styling?

(Claas Aug.) #7

This is totally reasonable, but note that there exist in general issues that are valid even if they’re not reported or even consciously perceived by many users. This does not mean that these issues are necessarily important, but if you exclude issues like this in the first place, you will very likely miss certain types of issues (especially UX) and issues that seemingly “only” affect minorities (there are minority rights for a reason).

Once an issue is decided to be valid (or “could-be-valid”), we can talk about solutions and their pros and cons. And that would be the perfect moment to weigh in and juxtapose the advantages of the improvement and the disadvantages of the change as such.

Note last but not least that I’m not saying “this is a issue, [please] fix it”, but rather I’m pointing out issues, explaining them and proposing solutions, which – I think – is a cooperative way of reporting issues.

If you really do, great! I suppose you’re talking about changes to the interface, but just to be clear: Would this mean that PRs for “not so important” improvements in the interface could be rejected if the effort of gathering this feedback outweighs the general interest? I could imagine this and wouldn’t even contest its validity, but then I probably wouldn’t make the effort for PRs like this in the future. (And just to be clear: I’m trying to understand your response and have no intention what-so-ever to escalate anything here.)

PS: The description of the “Read guidelines” badge ends with “Be nice!” You just closed a topic in which I had replied without leaving a comment about why you close it. Just to let you know: That did not feel nice.



I too find Discourse polls to be less intuitive than they could be. When first confronted with one I had no idea that it was a poll at all. The tweaks suggested by the topic poster would help mitigate the issues, but it would be better if the standard inputs would be used, as provided by the web browser.

Also, I think it would be better if the “submit” button would be located directly under the options list (instead of below the line) and that a label such as “Cast vote” would be better.

(Claas Aug.) #9

Yes, that would probably be the best solution (which would also be more easy to customize, if desired).
For my PR, I simply chose the least invasive solution (which was to add icons).

Another solution would be to display a warning if one tries to leave a topic with selected poll options that have not yet been cast (or to just cast them automatically).

I can live with it. But to clarify:

  • I find it confusing that it says “vote” even though it’s not mentioned elsewhere (except in “n voter[s]”) that you can vote.
  • I wonder if “vote” (which has a notion that I translated) is general enough for all questions that come up in Discourse polls (more for native speakers to estimate).
  • I think the “now” postfix is inconsistent with other actions that don’t have it (such as “Reply” in the composer instead of “Reply now!”).

(Claas Aug.) #10

@uwe_keim @fefrei @Tom_Newsom @Yuun @thefreekick @gerhard @scombs @jomaxro As you liked the topic, would you like to elaborate on your opinion? :slight_smile:

(Tom Newsom) #11

I agree that radio buttons and checkboxes are more familiar indications of “single choice”, “multiple choice” and indeed “this is a choice”

(Daniel Foerster) #12

Agreed on the “now!” prefix, “Cast Vote” makes more sense to me.

(Jeff Atwood) #13

In general I need to organically hear about this from other live instances, on their own, not in a topic specifically soliciting for it, or where you weirdly name-mention a bunch of people on meta begging them to support it.

(Jeff Wong) #14

While I’m not a fan of adding so many glyphs in the options, I’m inclined to agree that there isn’t currently a good way to identify whether I am filling out the poll (to be submitted later), or submitting a vote when I click an option, at a glance. It was about 5 seconds of staring at my first multiple poll in the wild before I realized it didn’t submit on a click of an option.

I’ve since learned, but it is a little bit of a UX hurdle initially.


Sorry @codinghorror, but that doesn’t make any sense.

In this topic alone there are 6 people offering valuable solutions to make your product better, but you aren’t even willing to listen to it. Instead, you dismiss their input because you’ve “never heard about it before” or because you think solicited input (because it’s in a topic on your support forum) is invalid.

People aren’t slamming Discourse here, they are trying to make your product better. Why would you dismiss helpful input from those people?

(Jeff Atwood) #16

Sorry, I need to hear it from independent Discourse instances. As cited above.

I’ll definitely keep this under advisement over time, but feedback from multiple independent sites is how this works, and how this has always worked.

If that is unacceptable to you, perhaps there are other places you would prefer to be right now?

(Jeff Atwood) #17

Just to clarify. This is how polls looked in 2014.

The mockup I gave Regis to improve this was copied and pasted from another site that does polls exclusively. I tried to dig up the actual screenshot I cited, but Slack searching is abysmal, so I can’t locate it right now.

There are multiple things I find absolutely f***ing infuriating about this topic:

  • It is completely a color-of-bikeshed discussion at its core.

  • It is an entire series of proposed UX changes based largely on one person’s opinion and one site’s experience with absolutely zero context or understanding of how we got where we are today.

  • As shown above, It’d be going backwards to switch to native check and radio button UI.

  • The new poll UI we introduced 2015 was copied and pasted from another site that builds polls as a core part of their business, and that we thought looked nice and clear and simple, so if the current Poll UI is so OMG NOBODY CAN POSSIBLY UNDERSTAND ANY OF THIS POLL UI HOW DARE YOU BUILD THIS CONFUSING MONSTROSITY IT MUST CHANGE IMMEDIATELY, how exactly did that happen?

I guess if you want to carry forward with this, you are proposing a redesign of poll UI. So the thing to do is copy and paste examples of how polls work elsewhere, ideally on sites that do nothing but build polls, to propose that we adopt that design.

If I had heard one, even one actual customer ever complain that their users are having trouble using polls, I’d be more sympathetic. For example, BBS (a huge site that’s been in operation since 2013) has done a ton of stuff with polls and there’s not a single message anywhere on that site that says “hey, this poll UI is confusing!”

TL;DR if you wish to continue this discussion, stop talking and start pasting in images. Find someplace that builds polls as a product they sell, and cite that design by screenshotting it and cropping it into a reply here as an example. You are proposing we redesign polls from scratch, so be aware that it may take many months to get to.

(Claas Aug.) #19

Jeff, I’m a big fan of Discourse, I sincerely admire your work, and so, despite your ad hominem reasoning (*), I still have good faith that we can have civilized discussions about improving Discourse and the validity of problems (as well as, given that they are, discussing solutions that fix these).

(*) = Remember, this is not about me. And as a side note: Neither do I want to switch back to native check and radio button UI by itself nor do I propose a redesign of poll UI.

As you keep on pointing out that you haven’t heard about the problems, I feel like I should be more explicit about why I think it is not surprising, but rather inherent to issues like these that nobody usually reports them:

  • Who would publicly admit that he/she had trouble identifying a poll?
  • And, if you don’t identify a poll as such, how would you find out that you couldn’t identify the poll in the first place?
  • Who would publicly admit that he/she forgot to submit it vote to the poll?
  • And, if you think you participated in a poll, how would you find out that you forgot to vote?

To me it feels like you just don’t approve the problems, let alone the proposed solutions (which you have every right to do so), and so it seems to me you try everything to invalidate them, even by weighing in requirements that hardly anybody outside of the team could fulfill (like “[…] understanding of how we got where we are today.”)

Next time someone goes through all this struggle (of submitting a PR, having it closed due to lack of prior discussion, opening a discussion as suggested with a structured, screenshot-enhanced post), I suggest you save some of your time and nerves by answering something like this (given that you would mean it):

Thank you, X, we really appreciate your input!

I have to say it is the first time I hear of this, and you should know that we prioritize issues according to how critical they are and how many users are affected.

I’ll come back to you, once I gathered feedback from sites that use this feature.

TL;DR I have invested far too much effort in this already and therefore renounce from further contribution. I have some hope that you will realize at last that your reaction was unfavorable (to say the least) and that, in fact, you biased the discussion yourself by dispraising those who confirm the issues and/or approve of the proposed solutions.

Which brings me back to the pattern: Who would publicly give one’s opinion, if he/she has to fear being tackled?

Over and out.

(Jeff Atwood) #20

Sorry, that’s not how I work. I appreciate the effort, but this contribution is 100% bikeshed.

“We don’t like the way polls look!”

As I said, if I had ever heard any customer sites complain about this – even once – I’d be much more sympathetic. I will keep my ears open for future complaints on other sites, for sure.

(Sam Saffron) #21

I think you are missing a key tenant of Discourse which is critical you understand as a contributor. We, in particular, @codinghorror chooses defaults. That said we are a system of rainbows, if you are uneasy with the way polls are themed you should be able to theme them however you want in your forum.

Since it is quite clear core are not going to merge in your proposed design change instead focus on extensibility.

Is there anything about our HTML structure that stops you from achieving the changes you want on your forum?

(personally, I am not a fan of the changes, I find them cluttered and distracting, but also I only deal with like 1 poll a month so its not as though I have much skin in the game)