projectbuendia / client

Android client app
Apache License 2.0
38 stars 23 forks source link

Add a "None of the above" button to multiple-select groups. #488

Closed zestyping closed 4 years ago

zestyping commented 4 years ago

Issues: Closes #367. Scope: BinarySelectOneWidget and its table group builder

User-visible changes

In each multiple-select question:

  1. Previously each option would be recorded with a "yes" or a "no" value; the default value is "no" and tapping an option toggles between "yes" and "no". Thus, submitting the form without doing anything would record a "no" for all the options. Now, the default value is "unanswered" and tapping an option toggles between "yes" and "unanswered", so that submitting the form without doing anything doesn't record anything for such questions.

  2. There is a new "None of the above" button at the bottom. Tapping this button sets the state of all the options to "no". This button is the only way to set options to "no" (rather than "unanswered"). When "None of the above" is selected, tapping any other option clears the "None of the above" button and reverts all the other options to "unanswered".

The appearance of options changes slightly:

Internal changes

The unwieldy name "BinarySelectOneTableWidgetGroupBuilder" (which ought to win some sort of prize) has been renamed to the more concise "BinarySelectTableBuilder".

Verification performed

I tested this manually on a tablet and confirmed that the options light up and clear as expected, in response to taps on the option buttons and the "None of the above" button. I submitted the form and confirmed that nothing is recorded if nothing is tapped, and that "no" is recorded for all options if "None of the above" is selected.

Rationale and alternatives considered

This design was intended to meet the following goals:

Screenshots

Here is a short video of the interaction:

none-of-the-above-mp4.zip

Here's what it looks like with a couple of options selected:

none-of-the-above-with-selections

And here it is with the "None of the above" button selected:

none-of-the-above-none-selected

zestyping commented 4 years ago

Ivan has tried this out and it looks good!