mdipierro/evote

Ranked choice UI improvement: use to-from select boxes instead of dragging.

kfogel opened this issue · 8 comments

The current ranked choice interface starts out with all the candidates in a default (presumably random) ranking, which effectively forces the voter to rank everyone, even the candidates she knows nothing about.

There is a better way:

A better interface would be cross-select boxes: two vertical list forms, with the one on the left containing N empty slots (where N is the number of candidates), and the one on the right has the list of candidates in random order. The voter drags names from the right-side list into ranked positions on the left-side list, and can drag candidates up and down within the left-side box only.

A candidate's name can only be on one side or the other, never both. The voter is not required to fill in all the available slots on the left, though empty slots can only be at the bottom. Candidates that have not been dragged into the left-side list at the time of submission all receive the same ranking, nominally zero, which really means "lower than any explicitly ranked candidate, and the same for all the unranked candidates".

This would allow voters to rank the candidates they know about, and safely ignore the ones they don't, secure in the knowledge that all the ranked candidates will be ranked higher (on this particular ballot) than all the unranked ones, and that all the unranked ones will be equally unranked.

Thanks to Patrick Masson for talking this through and realizing there is a better UI.

Would this interface be accessible to visually impaired users? I don't know
how assistive technology would deal with drag and drop only actions.
On Mar 22, 2014 11:26 AM, "Karl Fogel" notifications@github.com wrote:

The current ranked choice interface starts out with all the candidates in
a default (presumably random) ranking, which effectively forces the voter
to rank everyone, even the candidates she knows nothing about.

There is a better way:

A better interface would be cross-select boxes: two vertical list forms,
with the one on the left containing N empty slots (where N is the number of
candidates), and the one on the right has the list of candidates in random
order. The voter drags names from the right-side list into ranked positions
on the left-side list, and can drag candidates up and down within the
left-side box only.

A candidate's name can only be on one side or the other, never both. The
voter is not required to fill in all the available slots on the left,
though empty slots can only be at the bottom. Candidates that have not been
dragged into the left-side list at the time of submission all receive the
same ranking, nominally zero, which really means "lower than any explicitly
ranked candidate, and the same for all the unranked candidates".

This would allow voters to rank the candidates they know about, and safely
ignore the ones they don't, secure in the knowledge that all the ranked
candidates will be ranked higher (on this particular ballot) than all the
unranked ones, and that all the unranked ones will be equally unranked.

Thanks to Patrick Masson for talking this through and realizing there is a
better UI.


Reply to this email directly or view it on GitHubhttps://github.com//issues/12
.

That problem would exist with the current interface too; I'm not sure whether it would get better, worse, or stay the same with the proposed new interface though.

Funny you should ask -- in the ballot we were working on that led to this bug report, we have the following text: "If this interface is problematic for you (e.g., due to visual or motor impairment), please contact us right away at (address here). All OSI members should be able to vote in these elections, and we will fix or work around interface issues as necessary to ensure you can participate."

In general E-Vote probably needs some work to become more accessible, but this is particularly important on the ballot pages.

I'm not sure I understand why the current interface would be an obstacle to
screen readers. I should try it in lynx.

I definitely agree that the drag to rank interface would be more intuitive
for most voters.
On Mar 22, 2014 12:32 PM, "Karl Fogel" notifications@github.com wrote:

That problem would exist with the current interface too; I'm not sure
whether it would get better, worse, or stay the same with the proposed new
interface though.

Funny you should ask -- in the ballot we were working on that led to this
bug report, we have the following text: "If this interface is problematic
for you (e.g., due to visual or motor impairment), please contact us right
away at
. All OSI members should be able to vote in these elections, and we will
fix or work around interface issues as necessary to ensure you can
participate."

In general E-Vote probably needs some work to become more accessible, but
this is particularly important on the ballot pages.


Reply to this email directly or view it on GitHubhttps://github.com//issues/12#issuecomment-38361689
.

The current interface is drag-to-rank. Given the way the javascript works, I doubt it works with text-only interfaces.

What this bug is about is the fact that the naive drag-to-rank interface causes spurious rankings, and it suggests an alternate interface that avoids that problem (though it could still involve drag-to-rank in one part of the UI, and thus wouldn't solve the accessibility problems of the current interface, although I believe those problems might be easier to solve in the style of the proposed new interface anyway).

Apologies. I should have looked at a more recent version; I didn't know it
had already done a less good version of drag-to-rank.

On Sat, Mar 22, 2014 at 7:07 PM, Karl Fogel notifications@github.comwrote:

The current interface is drag-to-rank. Given the way the javascript works,
I doubt it works with text-only interfaces.

What this bug is about is the fact that the naive drag-to-rank interface
causes spurious rankings, and it suggests an alternate interface that
avoids that problem (though it could still involve drag-to-rank in one part
of the UI, and thus wouldn't solve the accessibility problems of the
current interface, although I believe those problems might be easier to
solve in the style of the proposed new interface anyway).


Reply to this email directly or view it on GitHubhttps://github.com//issues/12#issuecomment-38370789
.

Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons. Intellectual property is
to the 21st century what the slave trade was to the 16th.

Oh, no worries. Yeah, Massimo put it in. Actually I'm more to blame -- I suggested drag-to-rank, and he quickly implemented what I'd described. Only later did I realize the spurious ranking problem, and figure out (with Patrick Masson, whom I'll bet is @massonpj here) that a slightly fancier two-sided interface could solve it.

I think we need to rethink the interface.
I do not think that for rank voting the current wysiwyg interface is adequate. There has to be some more abstract representation of the ballot so that options are represented by widgets, not simple input html elements.

Massimo

On Mar 22, 2014, at 9:21 PM, Karl Fogel wrote:

Oh, no worries. Yeah, Massimo put it in. Actually I'm more to blame -- I suggested drag-to-rank, and he quickly implemented what I'd described. Only later did I realize the spurious ranking problem, and figure out (with Patrick Masson, whom I'll bet is @massonpj here) that a slightly fancier two-sided interface could solve it.


Reply to this email directly or view it on GitHub.

Hi there, hope it's ok to comment here. I'm new to github and still figuring things out.

First off, thanks for putting this together,(and the web2py framework) I've been working on something similar and this is a much better starting point that what I was working on.

The current /default/edit page is very confusing to me. Would it be better if when you got to the page that you could select which type of election you want to run? (Ranked, pick 1 or yes/no on each choice) Depending on which type of election you choose, you can just enter in the candidates you want. Have a separate text editor area for describing the election/ballot and then another section for adding the candidates.

I also agree with kfogel's comments regarding dragging candidates from one list into the ranked list. Then you can just vote for the candidate's you want in your selected order and anyone you don't rank gets zero points.