Friday, September 2, 2011

What a difference a button makes...

While triaging some of the latest bugreports we've been receiving over the past 24 hours (man, it's as if someone opened the bug reporting floodgates again), a comment was brought up about Blender's popup panels for tweaking operator settings.

An example here is renaming PoseLib poses (or you may consider the Move to Layer popups instead). What these popups have in common is that they have no obvious button to click on when you're done.
Admittedly, it can be a bit of a disconcerting experience. Through years of brainwashing (or abuse? :P), we've probably been come to believe that anything that pops up and expects input needs to be explicitly dismissed. Or perhaps, by violating Nielsen's "Provide clearly marked exists" usability heuristics (from the "10 Usability Heuristics"), we're just playing to some inherent quirk in human psychology.

Even though, in this case, the button is completely redundant, as the operation will proceed immediately as soon as you finish interacting with any one of the widgets (e.g. finish typing in the name field text for renaming a pose, and click somewhere else in the panel so that the textbox loses focus), we still feel rather uncomfortable.

"But I want to click on something to confirm that something did happen!"
This discomfort I suspect has two main contributing factors:
1) A lack of visual feedback that the operation will be, or has been performed. Especially in the case of renaming things from the 3D view using a popup, you often can't immediately see the results, and hence you don't know whether it worked or not.

While this (nearly) explains the renaming case, it doesn't account for why the "Move to Layer" popup doesn't feel right either. With that one, we can clearly see objects disappearing, if we move them to layers which don't exist. Yet, when we're done with that, we still don't know what on earth to do with that popup.

2) As a modal blocking construct, such popups for tweaking the settings for some operation demand a "clearly marked exit", which consummates the operation as being Done. Without such a confirmation action, we end up with a case of cognitive dissonance, as the our mental models say that operations are "atomic events" which take place as a result of some direct invocation on our part (e.g. a click or a hotkey pressed), but yet, the GUI we're presented with offers us no guidance on any such action which we can perform to make this happen.

So, in this case, I think we should just go and put a "Done" button on these operator settings popups.

Beware: Caution Advised
Then again, I've been wrong about such buttons for clearer communication before.

In my original NLA design (which resembles what we currently have), editing a strip's action could only be done by using tab key to enter/exit an "Tweak Mode" on that strip. However, while thinking it over a bit more prior to implementing, I thought that perhaps it was lacking enough visual feedback that "Tweak Mode" was in force.

Hence, an infamous a button was added to the header to serve the dual purpose of providing visual feedback while also acting as a non-shortcut way of accessing this functionality. The response to this however was quite unexpected. Not only did it not aid the situation by making it clearer what was going on, but people actually hated using it, as AFAIK it felt too modally restrictive, and hence the ENTIRE system was called unusable.

Admittedly, there were some small things which didn't help this situation, like not being able to select other strips / change your current selection while this was the case. However, this was like, one tiny button on a header somewhere, and its mere presence or absence ends up making a gulf of difference!

What a difference a button makes... 

No comments:

Post a Comment