ls1intum / Artemis

Artemis - Interactive Learning with Automated Feedback
https://docs.artemis.cit.tum.de
MIT License
484 stars 287 forks source link

Generally enhance display of buttons/choices #5089

Closed ge65cer closed 1 year ago

ge65cer commented 2 years ago

Is your feature request related to a problem?

We are constantly adding features to Artemis, and thereby the amount of buttons (or choices in general) in the user interface increases all the time.

User experience research tells us that too many choices are exhausting for users (paradox of choice). As a rule of thump, a user should only be shown at most 7 options at a time (on one hierarchy level).

Example: Programming Management

Desktop: More than 20 buttons/choices for the user!

Screenshot 2022-05-14 at 11 51 30

Mobile: Equally many choices. While the labels are omitted to save space, this reduces context for the button action at the same time.

Screenshot 2022-05-14 at 11 51 14

Describe the solution you'd like

We should consider limiting the amount of options displayed to the user at any point in time. Using other UI elements could help here. One solution could be to create hierarchy using Tabs or Accordions. Similarly, a popular approach would be to display some primary actions with a dropdown to show the rest.

Describe alternatives you've considered

No response

Additional context

As the number of choices increases, so does the effort required to collect information and make good decisions. Featuritis can be an exhausting disease for users. From: https://www.nngroup.com/articles/simplicity-vs-choice/

https://www.usertesting.com/blog/how-to-use-the-paradox-of-choice-in-ux-design

https://www.keepitusable.com/blog/the-psychology-of-choice-why-less-is-more/

julian-christl commented 2 years ago

I made a suggestion on how these buttons could be categorised. We can discuss this thoroughly before the implementation or implement it first and then wait for feedback.

Either way, if you have suggestions on how to improve it, feel free to participate in the discussion.