GNOME Human Interface Guidelines Released
Seth Nickell writes: "We are proud to announce the release of the GNOME Human Interface Guidelines v1.0, the product of usability engineers, designers, hackers, and whatever-keeps-you-writing-calum irish wine[TM]. I hope they'll be useful for improving the usefulness of all free software, not just GNOME apps. Check out the release announcement for details and a plaintive plea for interface coordination between free software projects." (Also at the top of the new Gnome news site called Footnotes.)
UI design is the same way and apparently no one in the Linux/UNIX world understands this. You can't make a program intuitive to use by programming it willy-nilly and then putting the right-sized buttons or icons of the correct 16-bit colors on the top. Ease-of-use must be factored in on Day One.
That's why it saddens me to seen GNOME come out with their UI design guidelines fully 4 years after they started programming and after at least two major releases.
If UI design bugs (costing thousands of man-hours and millions of dollars via confusion and "human" error) got the same press that MS's security problems did, ZDNet would have the same biased field days that Slashdot enjoys on a monthly basis.
Likewise "OK" buttons: just what am I okaying? A verb would be a much better hint.
I was told that this was already required by the UI guidelines, but if so it is certainly neither prominent nor obeyed. I couldn't find any mention of it there. Among the programs most egregiously guilty are Evolution and Gnumeric -- just hit the go-away box in a newly-edited message or worksheet.
We should have a class of UI violation that automatically merits high severity in bug reports. Uninformative button labels should be in that list.
I like the little dig they take at the Mac UI:
On the other hand, a waste basket should not be used for anything other than holding discarded files. It should not be used, for example, to eject a removable disk such as a floppy or CD.
I never liked that... I was always worried that, when I put a floppy in the trash, it would reformat it or something. I'd be curious to find out who came up with that, and what exactly they were thinking. Tossing something in the garbage does imply that you're not ging to use it anymore, ever.
The document mentions a little ways down that multiple document interfaces have "inherent useability problems" and shouldn't be used.
... but it would have been nice of them to include something in the preferences menu to allow you to turn MDI back on.
To the contrary, one of the most annoying "features" of, say, Word 2000 is that it's got a single document interface that opens up multiple windows, cluttering your taskbar. Now, I understand why they did this--they probably got a lot of tech support calls from inexperienced users who believed they had lost their documents
By the same token, it would be nice if some of these single document applications were only single document by default, and could be changed into multi-document mode in the preferences menu. For experienced users, a tabbed interface is often a lot more convenient.
For those who are interested in usability, check out stuff from Jakob Nielsen and Bruce Tognazzini
Chapter 1: Secion 1 ... So, the first things to establish when designing your application are:
'Remember that the purpose of any software application
who your users are
what you want to enable them to do
'
'what you want to enable them to do'
should read,
'and what they want to do'
Personaly I think the 1st chapter is quite bad. Not in it's aims but in they way it presents them.
The document hasn't been writen for it's target audiance, namely Hackers/Programmers.
The definitions are too frilly and abstract and seem like something a designer might come up with not a groups with broad HCI implemtation knowlage.
e.g.
'Create a Match Between Your Application and the Real World'
This is the wrong thing to say, think of all the applications that take the statement literally, how useable are they?
any how here's a breif of my design principals!
Spelling not included
thank God the internet isn't a human right.
Ah, negative questions. "Don't close the document? [Yes] [No]"
That's why it's incredibly important to make sure alert boxes are simple, descriptive, communicative, and (most importantly) not interactive. The user should never expect that a choice made in an alert box will cause the program to do something different that what it's already trying to do. In other words, the alert box should read, "The document 'So n so' as unsaved changes. Closing it without saving will discard those changes," and the options should be "OK" and "Cancel." In other words, the only choices are to proceed with what you're trying to do despite the warning, or to abort the operation.
But that's just the thing. Don't try to read your user's mind. "OK" means "proceed with what I told you to do." "Cancel" means "stop what you're doing." If you tell the program to close the document, then "OK" means close the document, and "Cancel" means don't close the document.
This convention really makes perfect sense. If "OK" always means "go ahead" and "Cancel" always means "stop," you don't have to worry about being confused by the meaning of the buttons any more. After reading the alert message-- assuming it's well written-- you'll know whether you want to keep going with whatever you told the program to do, or whether you want to back up and do something different. If there's no consistency among button labels and meanings, then the user has to stop and figure out how to tell the program what he or she wants to do. That's not good for usability, and it will inevitably lead to more mistakes than a consistent approach will.
There's one overriding principle in human interface design: the human tells the computer what to do, not the other way around. If the user says, "Close this document," the program should warn him or her that the document has unsaved changes (and what that means, of course), but it's up to the user to tell the program if he or she wants to abort the operation.
Ironically, the Mac, which many people accuse of having a "dumbed down" interface, is actually built on the principle that the user knows what he or she is doing all along.
hmm...
'the user knows what he or she is doing all along.'
and that's my point about dialog you use it when the user doesn't know whats going on.
A lot of project management is run this way (in my experaince any hows) and it usually leads to a bad overrun project that doesn't do what the user wanted. Overrun badly managed projects have a greater visibility than poor UI and there's a lot of common elements.
Well that's just my thoughts and experiance.
thank God the internet isn't a human right.
and that's my point about dialog you use it when the user doesn't know whats going on.
Uhh.... one uses an alert box to tell the user what's going on. An alert box appears when something exceptional has happened, or when an action may have unintended consequences. The purpose of the alert box is to inform the user. Alert boxes have "OK" buttons because the user needs some way to acknowledging that he or she has read the message. "OK" means just that, "Okay."
In some circumstances, it's appropriate to give the user a chance to say "Never mind." Those are the situations in which the alert box should include a "Cancel" button. The "Cancel" button means "Never mind."
Dialogue boxes in general, and alert boxes in particular, are incredibly simple. There's no need to make them more complex than they are.
I'll repeat my self again!! .... to tell them what has happened.
'that's my point about dialog you use it when the user doesn't know whats going on.'
the idea that "'OK' is to acknowledging that they have read the message. " is odd, you're nsaying that 'OK' leaves things in an unknown state, and that people read things, they don't; There are enough jokes and TV programes based on people not reading the instructions to show that point. Hell i didn't even read the [ok] [cancel] bit of your first post i read [ok] [not ok].
The default option should always be to give the user an opotunity to recover from the unexpected, the first 'ahhhh..... something weird has happened' dialog should lead the user into the recovery process and should not require the user to fully understand or even read the dialog.
'There has been an error somthing will happen'
options
[ok] [cancel]
so ok makes something happen, what does cancel do? does it roll-back whatever was requested before hand 'context'?
'Continue closing the application even though you have unsaved changes'
[ok] [cancel]
This is poor, the user should be given the recovery option i.e. to save there changes. [ok] [cancel] gives the user no clear path to perform an operation on there unsaved changes.
thank God the internet isn't a human right.
The default option should always be to give the user an opotunity to recover from the unexpected, the first 'ahhhh..... something weird has happened' dialog should lead the user into the recovery process and should not require the user to fully understand or even read the dialog.
Bullshit. The default option is to do what the user asked you to do. Say I tell my word processor to quit. An alert box pops up. Can't be bothered! Don't have time! I don't read it. I just slam my hand down on the "enter" key to invoke the default button, whatever it may be. Wait a minute. My program hasn't quit. I'm right back where I started, and I don't know why! Shit!
Alert boxes exist to tell a user that something exceptional has happened, or to warn them of possible consequences. (That sounds familiar. I think I'm repeating myself here, because you're not getting what I'm saying.) Alert boxes are not interactive. They don't pose questions. They merely convey information. "Hey, I know you asked me to quit, and I'm gonna do that in a second, here, but first I though you'd like to know that you're about to lose your work." The user knows that "OK" means "proceed in spite of the warning" and "Cancel" means "abort the thing I told you to do." How does the user know this? Because every alert box works that way, every time. That's the point of a human interface guideline.
'There has been an error somthing will happen'
options
[ok] [cancel]
so ok makes something happen, what does cancel do? does it roll-back whatever was requested before hand 'context'?
That's why error alerts don't have a Cancel button. Error alerts only have an OK button. In that context, "OK" means "I hear you."
'Continue closing the application even though you have unsaved changes'
[ok] [cancel]
This is poor, the user should be given the recovery option i.e. to save there changes. [ok] [cancel] gives the user no clear path to perform an operation on there unsaved changes.
You've written a shitty alert message, and you're trying to fix it with buttons. Get this, and get it good: the message is more important than the buttons. Don't try to convey information in the buttons.
It should have been something like:
"You have made changes to 'Monica Stories.' If you quit without saving the document, you will lose those changes." [OK] [Cancel]
See? An informational alert box telling the user of a consequence that he or she may not intend, and giving the user the opportunity to proceed or to abort.
I mean no disrespect, but given what I've read from you yesterday and this morning, please tell me you don't design user interfaces for a living.
What's worse
....."
;->
" The default option is to do what the user asked you to do. Say I tell my word processor to quit. An alert box pops up. Can't be bothered! Don't have time! I don't read it. I just slam my hand down on the "enter" key to invoke the default button, whatever it may be.
Wait a minute. My program hasn't quit. I'm right back where I started, and I don't know why! Shit!
I'll have to click close again and read the blody message this time!!
or
I walk out of the office, got half a mile down the road and thought 'shit did I save my 1/2 days work before I left in a hurry'
Please don't tell me you design anything for a living, or maybe you write EULA's?
thank God the internet isn't a human right.
There are exactly two types of these exit boxes. Before Windows 98 everybody used the "Exit without saving text?" question. Try an old Macintosh if you do not believe me. "Yes" meant exit and discard the text, "no" returned you back to the program exactly as though you had not tried to exit. Though there are variations in the question and in the two buttons, I never saw any other type of exit box before 98.
The other type is the "Changes not saved" with "save", "dont save", and "cancel" buttons. Again the question is worded differently and the buttons are different, but the idea is that you can hit a button that is like going back to the program, saving this document, then exiting again. The other two buttons are the same as the yes and no in the previous versions. The problem here is that a lot of time the yes/no is swapped randomly, as the question is worded "Save this text before exiting?". I have lost untold amounts of data because I instantly hit "no" when I think I made a mistake, this three-button exit panel is a serious user interface goof. More recently they have realized this and changed the buttons to "save" and "don't save" though escape is often the don't save button so you can still screw yourself.
The exact same thing is true of Alt verses Ctrl for menu shortcuts. Until Windows 95 EVERYBODY (including MicroSoft) used Alt as the meta key for menu items. Take a look at some old software someday before you start accussing Linux GUI of being inconsistent!