views:

89

answers:

3

I think it's considered a bad practice to have controls appearing and disappearing and the size of the window changing in a single GUI screen dynamically based on a user's input. However, I can't seem to find a definitive reference that states this.

I've been asked to create a GUI that has a text box at the top in which a user enters a file name (using a file chooser). Of the files that can be chosen, each has certain properties, however some of these properties can be null for a given file.

Below the file name text box are rows of pairs of labels and text boxes with values for each of those properties. I've been asked to not show a label and a text box if the associated property is null.

The user can repeatedly choose different files and the values in the text boxes should update accordingly. In addition, the labels and text boxes should appear and disappear depending on whether the values are null. Moreover, the value of the screen should shrink or expand so that there isn't empty space (because of null values and, hence, missing controls).

This seems to me like it would be very jarring to the user (to have controls appearing and disappearing and so on).

Is this bad GUI design? If so, could someone quote an authoritative reference that I can use in trying to argue against this design?

(What I would prefer is to just leave the text boxes blank for null values.)

A: 

I think it's considered a bad practice to have a single GUI screen that changes dynamically based on a user's input.

Honestly, that seems like a very odd guideline, at least when formulated this broadly. In fact, in order to get a result, the GUI has got to change dynamically reacting to user input.

This seems to me like it would be very jarring to the user

Try it. I don’t think that it will be a problem, as long as you don’t make the input field shift while it has the focus. The user shouldn’t be chasing the text box she’s typing into.

Konrad Rudolph
I mean controls actually appearing and disappearing and the size of the window changing.I certainly realize that a choice taken in one control might constrain choices presented in a control lower in the screen.
Paul Reiners
Size of the window changing is probably not a good thing, granted. But then, there are container controls which take care of this by offering scrollable content.
Konrad Rudolph
A: 

No, that sounds like a normal GUI design. No matter what the file type is, you're doing the same basic task. You just slightly change the details of which properties are shown. Same task = should be on the same screen.

Brian Schroth
+3  A: 

I have to disagree with Konrad and Brian here -- this will end up being jarring for most users.

While dynamic response is definitely a valid GUI paradigm, hiding/showing and resizing displays dynamically based on selections from the same list (or entry into the same text box) tends to be very jarring for normal end users. This is why the so-called "smart" menus in Office (and Win2K/XP) were loathed by many -- features seemed to appear and disappear for no good reason.

The correct paradigm in this case is disabling ("graying out") the controls. If you're looking for specific citations, I believe this has been discussed in About Face: The Essentials of User Interface Design. I know that the Microsoft Office usability team also produced the same results from their labs.

Pre-emptive Note:

Showing/hiding is not always a bad paradigm. But use it when it makes sense. It makes sense for the Windows Explorer detail bar to show different contextual information based on whether you've selected a Word Doc, an image, or an MP3. That's a small, borderline incidental piece of the UI, with no discernible (and especially no editable) controls. It's expected that navigating to a new tab will hide the controls from the previous tab and show the ones from the new tab -- but then again, tabs are a navigational paradigm.

Showing and hiding within the same view, for what (to most users) will appear to be the same kind of data, is the jarring experience.

John Rudy
Joel has argued quite convincingly against graying controls out in one of the earlier SO podcasts, and for hiding irrelevant UI elements. Showing but disabling is arguably much more irritating for the user (“But the button is *there*! Why can’t I click on it?!”) Anyway, I don’t see any issue with resizing containers, *provided* they are fit into a scrolling view. The same happens every time you change the folder in your Windows Explorer. Resizing a dialog non-stop while the user’s typing is obviously a big no-no.
Konrad Rudolph
Joel is not a usability expert. I respect his opinion on a variety of subjects (I didn't even jump on him for the duct tape thing), but the software his team works on is geared at developers and engineers. We are not normal end users. There is potential frustration with something being grayed out, but the shifting positions of arbitrary controls destroys muscle memory over constant use, is counter to Fitt's Law, and thus is generally frowned upon.
John Rudy
@John: oh but Joel was only *relaying* a point originally made by usability experts (or so he claims). I remain unconvinced, and I don’t see how Fitt’s Law applies here. In fact, by keeping unnecessary controls out of the dialog, and thus making the dialog area smaller, we might even apply Fitt’s Law *against* your claim.
Konrad Rudolph
You're still not addressing muscle memory, which is the biggest issue. But yes, even Fitt will apply as you're arbitrarily moving interactive controls around. The only way it doesn't is, maybe, if they're all plain text entry and the user is expected to tab through them. But even there -- data entrants in particular form muscle memory about how many tabs between field x and y for entering their data ... But I think, at this point, we'd need to agree to disagree.
John Rudy