I often use applications and electronic devices for which I think: "Why on earth did they engineer that thing as it is? They must have known that it is a pain in the neck to work with".
On the other hand I often observed that I created a (G)UI that I was convinced about, that it'd delight my customers and was a breeze to work with. Although my customers thought that too, it became obvious that it wasn't at all easy to work with in day-to-day work.
Because of that I believe that there are many developers and designers out there who are genuinely convinced that their product has the perfect user interface, but it hasn't!
That's why I wrote this question: To collect some of the common misconceptions developers have about user interfaces and to prevent other developers (including me) from making the same mistakes.
EDIT: Please write only one thing per answer so that readers who agree with a certain misconceptions can upvote it separatly from things they don't agree with. As with all soft facts there tend to be controversial opinions. If you put two or more things in a single answer, one might agree with one but not with the others. So please use a separate answer for every separate aspect.
EDIT 2: Please don't write answers about a single application which annoyed you but about concepts and patterns which can be found in many applications and/or devices.
EDIT 3: Thank you for all the feedback. I'll frequently visit this question whenever I think about some new UI feature :)
Splash screens
Every application, and especially a background service such as a backup application or antivirus software, must display a splash screen that can not be turned off in settings.
Stealing Focus
Annoying update messages that pop up in the foreground and ask to be dismissed.
Web pages that grab my cursor from halfway across the password box and stick it back into the username field.
Web pages that grab my cursor from typing something in the URL field and stick it into the search box
Minimized applications that decide they have something important to tell me.
Currently my biggest gripe is with web applications that don't honour a browser's culture settings. I'm a native English speaker living and working in Germany, my German is OK but far from fluent. I have my browser's culture set to en-GB but sites (www.google.com to name but one) check my IP address and start serving me up information in German.
It amazes me that large companies that go to the trouble of creating multilingual sites/applications don't know how to detect a user's culture properly.
Accept-Language
request header field, such as Accept-Language: en-US
, for client browsers. - Filip Dupanović
I cringe whenever I see an error message like this:
If you continue to experience difficulties with this application, please see your system administrator.
At that point I start shaking my fist at the computer and the unseen developer. "I am the system administrator and I have no <bleep>ing clue what's going on!"
Having to wait for DVD menus
On DVDs I don't like it when I have to wait for the menu to become active.
Sometimes the viewer has to wait 30 seconds of movie snippets, animations and sometimes even advertising until it is possible to go to the chapter selection menu.
It becomes especially annoying when it is a TV series DVD where you often watch small parts and often start and stop the player.
I guess the designers thought it would be entertaining to watch all that stuff, but after the first time it really annoyes me. After all I just want to watch a movie...
Hijacking Windows Startup
Look, Adobe. We all know that Acrobat takes 30 seconds to load before it can show us PDFs. It sucks, but we're fine with it.
What's not OK though, is trying to fool us into thinking your thing is fast by instead loading it every time I turn on my computer. It's still 30 seconds of my time you're taking up, but now you're taking it 4 times a day regardless of whether I use your thing.
Shame on you.
Telling Me About Updates
"DUDE!!! It's Java again! Great news! There's another incremental update for you to install! Wanna download it now??? (if not, I'll be sure to remind you again in a few minutes!)"
"I know you probably started Firefox because you wanted to browse the web, but first, here are 6 obscure plugins that require your immediate attention. Oh, and we'll need to restart Firefox again before you can actually browse the web."
Utilities that think they should look cool.
I do not need my VPN client to be skinnable and have animations.
It probably doesn't need any UI at all, apart from an on/off switch.
Windows that are small and have so much content that you have to scroll in them. While it's impossible to resize the window!
Many of the dialogs in Windows behave this way. Folder options for explorer as example.
Adding Tray Icons
It's great that you want to "Monitor" my QuickTime usage and all. I mean, you're right, it would be hard for me to determine on my own whether movies were playing or not. But really, couldn't you have asked me first whether this is high enough priority for me to require an icon in my tray 24/7?
If you plan to put useless garbage like this in my system tray, please ask first.
Bad keyboard support
In UI's which are to be used for data input, it's really annoying that the user constantly has to switch between keyboard and mouse for input. A good UI will have all tab indexes set right and common keys (return, escape) mapped to the appropriate actions.
Using generic dialog box buttons (ie Yes / No ) instead of rephrasing what the buttons do (ie Save / Don't Save)
Even worse are applications which ask you a question requiring a Yes/No answer, and present you with OK/Cancel buttons.
Edit (from the comments below) :
Are you sure you want to cancel this process? [CANCEL] [OK]
Progress bar that restarts from the beginning several times during a single operation, which immediately makes it useless. Microsoft Installer, I'm looking at you.
I really dislike "cool" Flash websites that don't give you the slightest idea how to navigate their site until you hover over some image/dot.
Yes, thanks guys - that's the phrase I was looking for: Mystery Meat Navigation - ugh!
Sorry, but Flash designers seem particularly shy of usability knowhow!
Unresponsive GUI thread
I hate it when the GUI thread freezes. "This application is not responding..."
Please, do your intensive calculation or I/O in another thread, and keep the UI responsive!
Some people scream at concurrent programming ("multithreading" in these strange days) and prefer unresponsive applications, fearing thread bugs.
But this is a false dichotomy - threading bugs are introduced by cretin threading models. Quoting Joe Armstrong, from The Role of Language Paradigms in Teaching Programming [1] (.pdf):
[1] http://www.info.ucl.ac.be/~pvr/sigcse2003panel.pdf... Unfortunately, concurrent programming has acquired a reputation of being "difficult" and something to be avoided if possible. I believe this is a side-effect of the problems of thread programming in conventional operating systems using languages like Java, C, or C++. In a concurrent language like Erlang [2], concurrent programming becomes "easy" and becomes the natural way of solving a large class of problems. ...
Not allowing white spaces into passwords, or limiting their length !
A custom English sentence is so much easier to remember and harder to guess than a single word password.
Regarding limiting the length of a password, I can't think of a good reason to do that since only hashed passwords (which are constant length) are physically stored ... or are they ?
It really annoys me websites that don't allow a link to be opened in a new tab
browser.link.open_newwindow = 3
; browser.link.open_newwindow.restriction = 0
. This makes all popups open in a new tab. You have to set both settings for it to work. - Kyralessa
My favourite class of dialog:
"Are you sure you want to cancel this operation?"
"OK" "Cancel"
prompt()
when the buttons are clearly inappropriate. - Ben Blank
Text input fields that force the user to input the data the way the computer stores it, not allowing for the way humans conceptualize or see the data.
Enter your credit card number. NO SPACES OR DASHES!
It takes, what, one line of PHP/Python/ASP code to strip out all the non-digits?
Related: The English-centric view that every person has exactly one first name and one last name.
I think that speed or responsiveness is one of the most important UI concepts. I personally hate interfaces that are somehow notchy or rough (I don't know if these are the terms used in English, in German you'd say 'hakelig', which means 'not being smooth') - with Windows Mobile sometimes being a supreme example, or a satellite receiver's on-screen menu that takes half a second after each press of a button.
Websites that provide a 'Search' ability for within their own site that doesn't work properly. When Google can search and provide better/more relevant results within your site than you can, there's something wrong (thinking of MSDN here).
Adding menu items under system menu of application. For example, right clicking on the task bar button on command prompt shows:
I have a habit of closing apps by right clicking on taskbar button and clicking close specially when I am closing many items. I always end up opening properties, when I try to close running command windows. Another example is the chm help files.
cmd
, very important step), the position is much more limited and the whole process can be done in brainless mode. - Alex Brault
When the scroll wheel on your mouse is not supported and you have to rely back on old school scroll bars.
(Acrobat Reader 5 and later and many other apps).
A progress bar or a time estimate that changes in a seemingly random fashion (Windows Installer, IE file downloads, Windows' stock file copying box, etc.)
Cancelling a browser load should NOT cause the page I'm currently on to blank. This is especially troublesome on the iPhone.
When I try to scroll down a page, sometimes it thinks I clicked on something. So, I immediately hit the Cancel
button; which causes safari to clear the page. Lovely.
Useless descriptions, or begging the question
I hate it when the name of some element in an application has the same value as its description, or something quite similar, e.g., a checkbox is called 'Special Whizbang' and its tooltip says only 'Toggle Special Whizbang'. This tells me nothing about what Special Whizbang is, why I might want it turned on, or why it is perhaps off by default.
One of the biggest misconceptions is that people think a user interface can be designed by a single person. No matter how much you try to accommodate your users, you simply cannot foresee all situations, so it's important to test the usability of your product. Simply observing users interacting with your (prototype) product can reveal UI problems that you would have never thought of.
Disabled menu items without any indication of why they are disabled. To some degree, all operating systems and applications suffer from this.
Checkboxes that, when checked, do the negative thing. Examples of the wrong way to do checkboxes:
[ ] Hide details
[ ] Disable plug-ins
[ ] Don't check for updates
I especially hate dialogs that have mixed positive/negative checkbox selections. Checkboxes should indicate the affirmative when checked.
Having sites where you have to register ( Amazon [1], social networks, email providers, Stack Overflow...) that requires you to fill in way more information that is really required, and worst of all, they have a password policy that makes you go @#$@%@#!@#!@#!@@#!@. what on earth is wrong with a simple lenient password for my account? It's not the bank!!!! I just want to register to post in some forum....
[1] http://en.wikipedia.org/wiki/Amazon.comApplications with expressive 'skins'. Consumes memory and rarely provides better functionality. Requires getting familiar with the UI.
At least try to follow the OS' standard UI controls, including short cuts, keyboard use, copy/paste, Ctrl/Shift selection, hover/selection feedback, etc.
Good example: latest Windows Media Player. Bad example: previous Windows Media Players.
Web sites that don't allow you to hit the back button.
Even worse, pop up a message with "Don't go!" as I'm about to leave your site.
Opening a browser window after I uninstall a program.
"No, it was nothing personal, really - I just don't need this program anymore. If I don't want your program installed, I certainly don't want a browser window opened to load your web page asking me to fill in a survey."
Having a web site so crowded with banners and ads that you can hardly understand where the real content is. I like a clean design where visitors are respected and ads/banners are served in a way that minimally interferes with your browsing. Good examples are Google and Facebook (IMHO). Bad examples are everywhere...
When you are typing a message in a text input and therefore you use your space bar. But suddenly a modal dialog pops up and takes your space bar keystroke as the default action for its dialog button. Causing unintended actions to perform.
Especially annoying if it's the restart dialog for Windows Update and automatically reboots your system and therefore you lose all your work, because the OS thought you intended so!
User interfaces that consist of a list of 'things', each with a checkbox (e.g. to mark something for deletion) that don't provide a 'Select all' or 'Toggle button' at the top...
Roll on carpal tunnel syndrome.
Popups with "This can't be done" on half of possible actions. Those actions are to just be disabled instead.
It's annoying when I can't check(/uncheck) checkboxes and radio-buttons by clicking on the corresponding text labels.
Inconsistency. Seriously, in the long run it doesn't matter if any meaningful operation takes eight mouse clicks or keystrokes. As long as these mouse clicks and key strokes follow a consistent pattern, a user will automatically memorise them.
One "feature" that egregiously violated this was Microsoft's idea of menus that would reorder themselves to show the most often-used ones at the top. It made it impossible to select "third menu from the left, first option" and know it was eg "Transflutinate Founts". You had to visually inspect the menu each time to make sure you selected the right option, breaking your concentration.
If you are serious about user interface design, I highly recommend Jef Raskin's The Humane Interface [1].
[1] http://books.google.co.uk/books?id=D39vjmLfO3kC&dq=jef+raskin&printsec=frontcover&source=bl&ots=COqDbY3T-6&sig=92po9njGWT0Sbh4a3vOgUdapdho&hl=en&ei=t1Q7SueNGKSsjAfIspUN&sa=X&oi=book_result&ct=result&resnum=2Password recovery / login services that ask you to supply answers to mutable questions, such as:
As opposed to immutable questions, such as:
That dialog boxes are the best way to prompt a user for confirmation or input.
Special shout out to 99.999% of modal dialogs.
Forcing the user to answer questions that they have no possible way of answering with any authority.
Saving Your Document...
Do you want to use Big-Endian byte ordering (Y/N)?
What Unicode variant do you want (UTF-8,UTF-16)Adding Circle to drawing...
Use euclidean geometry to render the radical co-efficient?
That users want "slick animations". http://designinginterfaces.com/Animated_Transition
Most of the time, what they really want is a reliable indication of system responsiveness, if not system progress. "Visual flair" just becomes a distraction after its initial "wow" factor wears off.
One example comes to mind: the thin pulsing orange bar in Outlook 2007 that runs across your email pane, whenever you click on a hyperlink. Most of the time, the URL loads in your browser within 2 seconds, and thus the animation is short-lived. But sometimes, there's a delay in the background interprocess messaging, and it takes ~30 seconds for the browser (already open) to begin loading the URL. During this time, you're still looking at the same pulsating orange bar, with no idea when your "request" will be completed. These are moments when I get most enraged at snazzy animations. All they communicate is that my computer hasn't completely frozen on me.
Also note that "slick animation" for indicating system progress should adhere to not abusing the notion of a progress bar: i.e. having the progress bar steadily advance from 0 to 99%, only to hang on the 99% for a good minute.
Non-sizable dialog boxes. I can't stand trying to find a file in a dialog that is a few inches square and can not be re-sized. VSS [1] has a lot of these.
Web pages that require me to re-enter data because some other entry validation failed (password, captcha).
[1] http://en.wikipedia.org/wiki/Microsoft%5FVisual%5FSourceSafeThe thing I find most annoying at the moment would be the add-on update feature in Firefox.
Of course, it doesn't start Firefox before starting the update process (thisI can understand), but I can't understand why, after updating:
I just want to browse the web, I don't care about update processes, so please notify me only when unexpected things happen!
P.S. Unless I didn't search well enough and this behaviour is changeable, of course :)
"Color gradients and lots of animations are cool and lead to a great user experience automatically."
Ehhh... no. Not really. And by no means automatically. A crappy interface without gradients/animations generally gets even crappier when these things are added!
Every little application thinks it should be in the Quick launch bar and offers to infest it by default during installation. Same for the Desktop shortcuts.
Inconsistent "metaphor" usage.
Common examples are:
Uncancellable movies before game menus
In games sometimes when you have to watch short clips and screens of the developer, the publisher and each vendor who supplied some technology to the game until you get to the game menu.
That alone doesn't matter but it get's real annoying when long cancellable and short uncancellable views and/or separate loading screens alternate where you have to cancel each view separately.
That way you can't use the time to get a coffee, because the longer movies would still be playing when you come back and you can't just press escape several times because you have to sit throught the short ones and the loading screens.
Noteworthy exceptions are Doom 3 where you can already press the quickload key during the openings which immediately loads your game and Fallout 3 where the opening animations are actually a cover for some game initializations, which you can cancel as soon as the game is ready.
Pixel-based designs. Screen resolution has changed drastically the last decade, and there's a wider range of resolutions in use now than ever before, from mobile phones to the latest gaming rig. Double scroll bars and tiny interface components are both annoying.
max-width
). This has nothing to do with pixel vs. fluid layout. - l0b0
ATI Catalyst Control Center
That people read the text on modal dialog boxes.
I really hate websites that are not cross-browser friendly or require you to use a specific browser for it to work. As a web developer I understand how painfully difficult this is but that's part of the challenge of being a web developer.
Websites that automatically play music or video
I've occasionally been listening to music and opened several dozen tabs in Firefox, and then a song starts playing in one of them. Which one? I don't know. I have to go through my open tabs one at a time until I can find which one is open so I can turn off the sound.
If you are going to have your website automatically play sound or a video:
There should be a way to disable auto-play for all videos, globally across the website. Thank you, MLB.com, for a good example of this.
There needs to be a mute button.
There needs to be a volume slider, because sometimes the sounds are too loud. Some people use headphones, and they should not have to have our machine's volume control window open at the same time as your website.
Better yet, don't even play the sound or videos unless the uses asks for it. And make sure the audio-visual effects on the website serve a purpose before putting them there.
Acknowledgements: MySpace page designs that allow several songs or videos to start playing in the same page at the same time.
Running a maintenance task during system start-up.
I never re-start my computer unless I am already pissed off (it's a mac, it sleeps well). I certainly don't have time for disk scans, dialogue boxes, update dialogues etc.
If I re-start it twice in 5 minutes, that means I'm really really pissed off - do you think I welcome your application taking 30 seconds to do something I don't care about, and do it even if I remember to press shift (don't do normal startup maintenance)? What gives you the frakkin right?
Why don't you run them when you know I don't care, like just before automatic sleep, or at 4am in the morning?
Using the standard dialog buttons from the MessageBox class instead of meaningful ones out of laziness.
What is your Gender?
Click Yes for Male, No for Female, Cancel for Unknown.
[Yes] [No] [Cancel]
That looks and aesthetics don't matter.
Too many programmers think that as long as all the features are easily accessable and that all the controls make sense then everything is done. They don't care if things don't really line up, that the spacing between elements, sizes and fonts are inconsistent or that the colours are ugly and hard to look at.
This is the most annoying oven ever. Symbols on buttons are totally obscure, and you can't get it cook anything unless you know by heart the manual. There is a impressive voodoo combination of buttons to hit in a particular order to setup time, pre-heating and temperature correctly. And I swear I read the manual.
Plus, the number of button hits is proportional to the cook time you need. I.e: O(n). There is no exponential increase of the time when you keep the good button pressed. So to set "30 minutes", you have to keep the same button pressed almost 30 seconds (or press it 60 times).
So, rule #1 for an user interface: let at least a few humans (not engineers ;)) to test and accept it before releasing it in the wild.
Applications that attempt to cram so much UI into the main screen that you can't see what it's supposed to be presenting as it's main purpose.
Hello Lotus notes!
Windows that don't close when you click the close button.
Yes, this even goes for you main windows out there. I don't care how tray-bound or utility-like your application is, close means close.
Dialog boxes that block progress during long procedures.
Ever started something long, walked away, came back an hour later, and found it was stuck one minute from startup asking you something?
A dialog box at the very end works well. One immediately at the start can work, but I do mean immediately. If I'm in a hurry and click on starting something, I can't necessarily wait five seconds to see if any dialog boxes start up.
So, anything that will take a while should ideally check potential problems before the go button is hit, or at worst bring up dialogs immediately. Whatever it does should not include popping up a dialog requiring a response to continue during the process.
One example is syncing my iPhone on my Mac Mini. It likes to put up little dialog boxes like "Are you sure you want to modify more than 5% of your contacts/calendar items?" midway during the sync. (Note that, until you have over 20 contacts and calendar items, you will hit this with any single change. Note also that I've got two and a half years of calendar items in my phone now, so 5% of them is a much larger change that I'd expect to do, but this isn't related to my main point.)
Applications that keep asking stupid questions (to allow users to choose an alternative workflow that probably nobody has ever actually needed, wanted, or used).
Me: Copy these files over here
Windows: How about this one?
Me: Yes, copy them ALL
Windows: How about this one?
Me: Yes, copy them ALL
Windows: How about this one?
Me: Yes, copy them ALL
Windows: How about this one?
Me: Yes, copy them ALL
Windows: Sorry, I can't copy the 5th file, so you'll have to work out what you wanted to copy, work out which one I failed on, remove it from the selection, and then start the process all over again.
Arrrrrgh!
I've clicked "ALL". All means everything, which incidentally was heavily implied by my original request to copy the files I selected. JUST DO IT! Now I have to wait an hour for the copy to complete when I had hoped it would finish while I was away at lunch.
The 'Open, Save and Save As' model is the only way of accessing files
I'm frequently asked by not so computer literate friends: "How can I get all my work back, it seems to have gone?"
What's happened is that they've opened up a document, say "2008 financial accounts.spreadsheet", spent a few hours editing it to contain 2009 accounts, and then though, great, that's good. I'll save it. So, they press save. Then, later on they need some important information from their 2008 or 2009 accounts. Well, they can't find their 2009 accounts, because it's saved in a file called "2008 financial accounts.spreadsheet", and their 2008 accounts are lost because they've been overwritten.
There are a number of solutions:
I think the reason we ended up with the Open, Save and and Save As model for working is just for historical reasons. In older OS's that didn't have graphical user interfaces for manipulating files that were always available, they were seen as an OK solution to a technical problem.
Horizontal scrollbar
Providing a way to do something with the mouse but not the keyboard.
This irks me about the Mac, too. You want to access your menubar from the keyboard? You have to press something like Command-Shift-F3 to turn keyboard access on, and then another keyboard chord to actually use the menu. Likewise, there are some things that can only be done via drag-and-drop with the mouse.
My biggest gripe that hasn't been mentioned is the tiny-window infatuation many operating systems suffer from -- but Microsoft is definitely the worst.
For example, consider for instance most configuration screens under XP -- such as IE's internet settings / advanced tab. This window is small, contains a very long list, and is not resizable.
It is by no means the worst example, often people make the window unresizable and thinner than the table of data they present inside of it.
Don't make your windows unresizable if they contain a list. Don't make your windows small when they are important. (Sorry if that's two things).
Uncancellable actions pretending to be cancelable
What an annoying "feature" of Eclipse and some other programs:
A long process is running in a separated thread. You see a Cancel button and a (senseless) progressbar. It takes long, too long.
You would like to cancel it.
You really would like to cancel it.
You WANT to cancel it.
YOU WANT TO MAKE IT STOP!!
YOU WANT TO SMACK UP THE KEYBOARD TO CANCEL.
But no, there's no response that would be a hint the program is stopping.
I really hate it. Eclipse is veeery good in this.
Meaningless help texts
Tooltip/help text like "Customer id: this is the id of the customer".
When installing or updating software (especially having been prompted in the middle of the day with loads of apps open) You get the message that a reboot is required, however there is no option to delay this.
|--------------------------------------|
| You must reboot your computer. |
| |
| [ ok ] |
|--------------------------------------|
Applications that allow too much configuration.
Options are great, they let you use the software the way you like. Problem is, a lot of software goes overboard with how much the user can customize it. This results in dozens of options that make minor interface changes in order to mimic every competing app, or just for show (e.g. colours or skins). Or allow you to choose 20 different orderings for a list, when alphabetical is more than adequate.
Or to get around bad design in the first place ("we shouldn't have done it this way; the new way is far better, but we'll add an option to use the old method in case users don't like it.")
I think this is mostly true of FOSS [1], where the path is something like:
Strongly session-based websites
HTTP is an inherently stateless protocol. Session is useful for some things (e.g. user credentials) but some sites store nearly everything in the session state which makes for a poor experience:
Not allowing users to use an email addresses as a username.
In a more general case, not allowing @s in usernames.
This leads to the unfortunate scenario of not only having to remember a suite of passwords, but to manage an equally large suite of usernames. Did I use jfrey or freyj or jeremyf to log into this site?
Cargo cult [1]
Sometimes applications immitate UIs of other applications without adding real value, just to make them look like the "big ones".
Typical examples:
Especially for German programs:
I think that the biggest misconception of many designers is the belief they are capable of creating an optimal UI without input from users.
Unless you are creating a UI that is minor variation on something that already exists (and is good) you'll need to involve users in some fashion, such as doing usability testing etc.
The first two nitpicks I thought of:
When UI designers think they know better than to follow the OS standard (and I'm bloody well looking at you, Microsoft Office 2007-developers!). Microsoft did a dandy job of forcing developers to follow the general windows API when constructing GUI...which actually is a stroke of genius. It's not that I love Microsoft's interface so much, but there is no ultimate interface. What I do expect is to be able to find common menu options (like save, or new) without having to context switch.
Login screens that attempt to log you in instead of pass the cursor to the password field when you press Enter. There is no reason why I'd want to attempt logging in without entering a password first, so why not just assume that I pressed Enter instead of Tab?
I hate it when windows flicker heavily when resized. And this is something that about 90% of Windows apps out there can't get right. It's especially visible when you resize using the left border - usually all the controls are jumping around. This was maybe acceptable in the last century, but now in the world of quad cores this is just ridiculous.
Assuming a linear workflow - A lot of web sites will remove any text from input fields when using the back button, especially forums. At that point, there's no way to recover the text.
Restricting passwords to a MAXIMUM (not minimum!) length and to alphanumeric characters.
Whiskey. Tango. Foxtrot.
Install wizards that don't tell you what they are going to install. OK, admittedly if I downloaded it on Monday and didn't bother to run it until Saturday, I should accept some of the blame, but honestly, if you run xyz_v3.exe, the installer should say something more informative than just "this will install xyz version 3 on your computer". I mean come on, tell me what XYZ is! Put a URL on that dialog! Something!
Most users do not understand what the Apply button does. When users want to close a form that contains:
[ OK ] [Cancel] [ Apply]
They always hit Apply, and then OK. Nobody seems to appreciate that:
So, as a form designer: get rid of the Apply button. It only serves to confuse your users.
Unless: your software can actually react to Apply button, the user can see the effects, and hit Cancel if they don't like them. In which case Apply doesn't permananetly save changes, but is more of a preview. Since nobody writes code to handle this (not even me): take out the Apply button.
That there should be only one way to do a given task.
It may take more design and testing effort, but having multiple UI paths for a single task:
Allows less-savvy users to operate without reading the manual while allowing power users to get work done efficiently
Provides alternatives when users can't figure out how to use a feature, or a feature breaks
Giving no indication of what rules are enforced for your password.
If you remind me it had to be at least eight characters with two numbers I'll know which one I used. If not, I'll have to use all the possible ones it could be until I finally get it right.
Providing a 'Reset' or 'Clear Form' button on your web form. These button's cause significantly more harm than good and their effect can be devastating to the user. When's the last time you filled out a 25 question form and decided to start over?
To make matters worse, web developers usually design these reset buttons to look strikingly similar to their submit button counterpart and will even position the two dangerously close.
Applications that use the program directory as the default "save to" directory.
I have never, ever needed to save a project file in program files and with Windows Vista/7 you have to have opened the program as an administrator. Even using the current user's documents area as a default location or just loading the last directory a project was saved to would be better than that.
I know that getting progress bars to be accurate is hard, and for one-shot operations on an unknown PC it's basically impossible -- this isn't about that.
The problem is when some program needs to do 17 different things (or some unknown-to-the-user number of things), and it shows each one with the same progress bar. So the bar is going across, gets done, resets to 0, and goes across again, gets done, resets to 0 again ... what possible use is this to anybody? The very best examples of this use about 50 progress bars, each of which takes 0.3 seconds to fill. Windows installers are prime examples of this, but I've seen it elsewhere.
If you can estimate progress, great, use one progress bar. If you have no idea how many operations something is going to take, then OK, just show a spinner or "indeterminate progress bar" instead. It's not that hard.
Useless spinners, turned into simple animations
Applications that use spinners to entertain users while doing some time-demanding operation... but instead of updating the spinner only after each cycle of processing, so that the user know that something is happening, they turned spinners into simple, pretty useless animations.
Then, the time-demanding operation freezes for whatever reason, and you keep thinking that it is still processing, since the spinner is still spinning. To add insult to the injury, the application isn't smart enough to check that something is wrong, and interrupt/restart/do something about the hang.
This is so common that even Stack Overflow has this issue. Click to open the comments of a question or answer, and you see a spinner. If the server fails to respond, you just have a useless spinner on your screen that keeps giving you hope that the response will arrive, sometime... There is no timeout and no way for the user to cancel and restart the request (unless you reload the page).
Any application that looks/behaves radically different than the OS it is targeted for (this is usually a non-issue for the Macintosh folks).
Remote controls where the up, down, left and right arrows do not stand out from the other buttons and the button at the center of the arrows is not enter.
I find it irritating when programs swap the OK and Cancel buttons at the bottom of a window.
For app1 it's [OK] [Cancel]
For app2 it's [Cancel] [Ok]
I end up hitting the wrong button more often than not.
Websites that are overly concerned with promoting their own agenda at the expense of the user, i.e. too many popups, advertisements, etc. I especially hate sites that direct you to an advertisement and force you to look at it for x seconds. Further, they often make a token concession to the user by providing a tiny button somewhere that allows you to skip the advertisement ... if really want to help, make that button in a larger than 3 point font!
Over-use of metaphors. For example, circular motion is simple with a single finger (iPod), but it's is pretty awkward with a mouse pointer. Just use a slider instead. Also, backgrounds that look like drawing boards or physical desktops usually have none of the desirable properties of the physical object (friction, elevation, containers, flexible lighting), but all of the drawbacks (distracting background, inflexible surface) and then some (limits screen usage, much smaller than the physical object).
One thing that really annoys me.. A badly designed 'Options' window.
If you ever have to Google how to find a certain setting in an application's settings, the UI designer should be fired.. Visual Studio is a real pain for this, finding a certain option can take ages if you don't know where it is.
It can go too far the other way too, it can be even more irritating when an application gives you almost nothing to actually set.
Grrrr.
And another particular favourite - websites that don't double check their JavaScript, or that of their advertisers. Seeing as I have my machine set up to prompt me to debug JavaScript errors, this is particularly irritating...
(From one of my webpages at http://JonathansCorner.com/windows/.)
Lack of support for Dual Monitor Setups
I have recently come across 2 separate applications (one which was SQL Developer and one custom piece that the place I'm currently working at uses) that do not work properly with a dual screen setup. I shouldn't be restricted as to which of my two screens I can display the application on, and I certainly shouldn't have to unplug my second monitor because otherwise the application doesn't display properly.
My answer speaks to a "higher" and more philosophical level.
The worst UI design mistake is made, in my opinion, when a UI design decision is made by someone who is not a trained, experienced, talented, informed, and sensitive UI design engineer.
When a product marketer makes a decision like: "we need a splash screen to increase branding impact", or when an accountant decides "we cant afford to pay what a real UI design engineer costs to design this product", or even the worst case (IMO), when a lawyer says; "we can't use that word on that button, because our competitor uses that word, and we'll be sued." - then what is really happening is, the UI design decisions are put in the hands of non-UI designers.
WORSE - the actual design, test, and build tools are not in the hands of those people.
Good engineering happens; in any discipline, when the engineer carefully follows established practices, documents his or her work, performs testing, gathers performance metrics (and in this case, we mean, ACTUAL USABILITY TESTING; and no, you probably cant afford to do it - ), and that information is allowed to flow back into the actual design of the product.
If that were allowed to actually happen, of course, cell phones would cost $1000, not $50.
In some ways, we, the cheap-ass customer, are the worst UI-designers of all.
Mandatory registration.
Why do I need to "log in" to read the New York Times? The BBC can manage without me filling out a form.
It is even worse for companies who want me to download their software. Mandatory, arbitrary, questions will make me look for your competitor's product.
Big thread so someone may have mentioned this, but I hate it when people don't use form labels correctly in HTML forms. You should be able to click the label for a check box to toggle it, but you can't if you just use some text next to it.
Some applications are like this too. You should always be able to click the label.
Requiring two hands to perform a simple operation.
In particular, why can't laptop makers put a second Fn key on the keyboard, on the right-hand side? When I'm holding a baby in the middle of the night and need to push the page-up key, I could do it with one hand, if one of the buttons wasn't clear across the keyboard!
Here is one that no one seemed to mention, which I've seen in many Windows programs. I am annoyed when I right-click on an option in a dialog box and see an option called "What's this?". Sometimes it gives some hint as to what the option does, but sometimes it gives the unhelpful message "No Help topic is associated with this item.".
A big mistake is assuming that the design spec can be used to determine the frequency of use cases. This goes along with the oft-mentioned "You can't expect one person to get the design right without user feedback", but it specifically addresses the dilemma of flexibility vs. simplicity.
For example, do users need to be able to search records in a basic CRUD app? Do we assume that a simple text match will cover most cases and then provide a massive "Advanced Search" tab that provides custom matching for all fields? Do you include some of those advanced search options right along with the basic text box? It can be really surprising when users end up saying something like "Most of the time, we just need to narrow down by date or date and category. Narrowing down by phrases in the title or body might be helpful, too."
Sometimes I find it disappointing that I can't watch my users use my application, because often feature requests don't come in until after users have tried and fail to discover how to use an existing feature.
Buttons for sliders (scrolling, volume). Seriously, the iPod is the only device that gets this right at the moment - The click wheel combines speed and accuracy like no other device I've used.
I have a very simple approach nowadays. I give the site to my girlfriend and I tell her to have a go. She's not very Internet, or even computer, savvy. I basically just stand behind her and watch what she's doing.
I offer no advice and at times it's all I can do to just stand there and say nothing.
The upshot of the exercise is that I can see the holes in my design that I need to either plug or rewrite.
Services that think they are applications and load at windows login. Even for users that didn't want them. And fill up the task bar.
Such as SKY and Channel4 Clients, Many virus checkers and spyware.
These should be loaded at system boot time and have an optional loadable UI.
Websites that use a background image or color, but do not define, and assume a black text color. This also includes text boxes and buttons on websites (and even some native applications). If you're a person who likes lighter colored text on a dark background, you have to install Firefox add-ons to fix the color of a lot of websites.
Popups, generally.
Web pages that disable the browser's back button, because why would you ever need to see another site after visiting the ONE TRUE web-site with all the answers?
An often annoyance is that an application notifies of a potentially long running operation's success, which is in 99% of cases expected, with a focus-stealing modal message box.
Something in the lines of "Breaking news. Sun still sets on west (more or less)!".
(Annoying) music and animations. Websites are the worst here: e.g. I'm looking to buy widgets. I know what a widget is, that's why I'm looking at your site. I do not need a Flash animation of a cutaway widget, with a cheezy soundtrack, all taking time to load - just tell me the models and prices of widgets you sell.
Disabling common interface and input paradigms, i.e. websites that turn off right click, or applications that use their own arcane shortcut scheme rather than control-C, V, Z like the rest of the world. If there's a good reason, i.e. vim seems to have pre-dated lot of that, it doesn't mean that you shouldn't be updating to modern paradigms, particularly if this does not functionally change your program.
The use of the "Clear" "Reset" button for forms.
Have you accidentally clicked one of those?
Yes, I know, it's annoying.
You have to retype that sign-up form again.
One thing that annoys me - and is the cause of many of the annoyances you'll see on this page - are organisations that think they can figure out out how their customers will use their product without actually getting their customers to use their product!
I'm amazed at the number of companies who still don't invest in quick, cheap guerilla usability testing. Spending half a day and getting a little feedback would save them a barrel full of pain later on.
Great post.
My answer is probably far too late, and has also probably already been mentioned (I couldn't read through all replies!)
But, modal dialog boxes that fall behind the main window. If anything aches your balls, it's disappearing dialog boxes!
BBz
Requiring credit card numbers to be entered without spaces or dashes, e.g.
1111113111313133
instead of
1111-1131-1131-3133
(hint to site devs: can you say replace(/[- ]/g,'')
?)
Google Instant Search
There is nothing more annoying then seeing results as I type. My usual query takes about ~2-3 seconds to compose, and 99.99999% of the time I know what I'm searching for.
Thank god you can turn it off.
My Top 10 Myths, Misconceptions and Actual Quotes I’ve Run Into Over The Years:
Read more on my blog at: http://ux.fusionapps.com/2010/09/15/usability-myths-and-misconceptions/
Websites forgetting my search results when I click the Back button
... even when they don't let me use my browser's Back button and I click on theirs. I have to resubmit my search query and click through the results until I find the last one that I clicked on.
Related, and just as bad: Websites that allow me to order search results by specific criteria and then display them in a different or random order after I click Back.
"Lotus Notes".
That is all!
The most common UI misconception, by far, is that ease of learning and ease of use amount to the same thing. They don't.
A UI can score very well in one of these measures of goodness and lousy in the other.
That the installer knows better than I do where an application should go, without any option of changing it. My Program Files folder isn't on my C: drive... well, it wasn't supposed to be, anyway.
Any application that does not conserve the setting for load/saving files, and/or that does allow to define a default directory.
Using special symbols to respresent keypresses without indicating to the user what the heck the symbol means. I'm particularly thinking of Mac shortcut keys [1]. I've read through pages on which key the symbol corresponds to, but I end up having to guess most of the time.
[1] http://nedbatchelder.com/blog/200808/mac%5Fkeyboard%5Fsymbols.html
The above is pants. Would prefer to have a list box with the tab page shown when I select an item in the list, rather than spending ages trying to find something.
Don't change accelerators and basic UI (at least -- have a setting for backward compatibility).
Programs that change their interface, starring Office 2007 as worst (but not the only) example.
Being an MS Office power user in the past 10 years made me very fast and efficient.
But in each version I have to learn how to do the same things. Even worse, since every person got a different version installed, I have to remember all differences.
I don't want to accumulate useless bits of info, I want to use it.
More examples:
What annoys me the most is when an application show a progress bar and you have to deduce and make a guess what is the exact percentage of progress. No one actually bothered to render the numbers, but only the nice-featured bar.
Not allowing the plus sign in email addresses.
That people know the difference between an option and a preference.
When you press Shift+F10 or the Right Click Key on the keyboard it should make the application behave the same as if the mouse had been right clicked. Developers don't always set this up.
The tabs feature in Internet Explorer 8. It takes me a disgusting amount of time to figure out which tab is the active one. There should be clear differentiation between the active and unactive tabs.
Menus that only appear when you hover the mouse.
There's an increasingly common type of web interface where some of the actions only appear if you put your mouse in the right place and then they disappear if you don't keep your pointer within the walls of the element. It makes your UI into a test of hand-eye coordination.
Automatic updates that aren't truly automatic, and more: Couldn’t agree more - automatic updates suck [1].
[1] http://abramnichols.com/blog/?p=3449Animations and effects that can't be disabled. A lot of people like animations, but some don't. So just because the animation/effect settings of the latest version of Windows all default to ON, please don't hard-wire your application so that little notices come bubbling up from the screen edge, or dialogs fade in and out. (ahem reader) Please try to find out from the OS what the user preferences are in this area, or at least put some checkboxes on the preferences dialog?
Opt-out instead of Opt-in
When installing many software, non-related features or completely separate software will be installed unless you opt-out by unchecking the option.
Installing should be a one step thing or, at least, install only the featured software when answering yes to all the questions. Other features should be opt-in features only.
"Thank you for calling X. We have a new offer of blah blah blah blah blah blah blah ... 2 min later... press 1 for..."
specially annoying when you are abroad and those two minutes of calling are money
One of my faves is the dialog in SQL Server Management Studio, the one that pops up to tell you that you just pressed the cancel button on another dialog ("User cancelled out of save dialog"). Really? Is that what I clicked? Tell you what, why don't you pop up some more so I'm really sure of what I just did...
There are two UI and usability principles I adhere to: That the user's mottos are "don't waste my time" and "don't make me think".
It's a web app that looks and behaves like a desktop app! Right down to being a resource hog, breaking related processes into unnecessarily separate "windows," requiring a manual to use, and being slow as hell!
Hidden User Interface.
Whats wrong with a button looking like a button and inviting you to press it?
I have a TomTom sat-nav system. It shows a map and some information on its touchscreen. How do you change the volume? Well, you tap on the bottom left corner of the screen of course. There is no indication that there is a hotspot there, and certainly nothing to suggest that the area relates to volume. And if you inadvertently tap there, you have to change the volume to make the UI go away again.
Those awful point-and-click adventure games which consist of waving the mouse all over the screen to see if you can find a hotspot to advance the game. This technique now seems to be favoured by many websites, too.
Even Microsoft (in Vista/Win7) has started using areas of text that only highlight and admit themselves to be clickable buttons if you hover the mouse over them. It took them 20 years to get around to reading the Apple UI design guide and start to understand the basics, and then in the very next OS release they throw away everything they learned. Gah!
It's great to hide "secondary" or "advanced" user interface (like a hotkey to save you using a menu item, or drag and drop to save havign to copy & paste), but hiding everything so you can't see how to use the device??!
Sound.
I don't even know where to start: Ruins music or anything else you might be listening to, distracts. Takes up much more space than the whole computer display. Easily violates the user's privacy. Not always available.
It should not be a UI element. Not unless the user explicitly asks for it to be.
Second clipboard !
there should be another clipboard to copy another thing. all applications specially OS'es need it. may be something like
Ctrl+C to copy first value Ctrl+B to copy second value
Ctrl+V to paste first value Ctrl+M to paste second value
i hate when i need copy something while i already copied another thing on my clipboard
Already mentioned before, but the thing, that you don't know what is currently happening inside app you are using or trying to access. I would like to see some messages with timestamps, that shows current action, that is being performed, that allows me not only understand, where the delay was, or how much time it could take (if app cant calculate remaining time by itself).
Couple examples...
When network connection is starting up, we see just plain "Not connected" or we see a big error popup/baloon, that shows almost no useful information about steps that were taken and at which part it stopped with error. No straightforward buttons, to enable offline mode, and to start troubleshooting.
When installing a app to your computer, most of installers shows nothing what it is doing, it shows some "Installing..." message, and I had cases, where install is going for couple of minutes already, and it suddently shows something like "Error accoured... Reverting installation", progress bar rolls backwards in 500% faster speed (that is most funny part) and shows result of installation "Installation was interrupted cause error accoured [Exit]".
Games that connect to online servers and show plain "Connecting..." message and some moving/rotating image, that can take from seconds to minutes, and you cant guess what it is doing, you just notice, that moving image/animation is freezing for some moments, and animating again... Nothing happens, after a while, you can get your connection, or you can get "Error connecting" or other stupid error. No comments, no timestamped logfiles, nothing.
More and more applications are starting to use "The Sims" like loading screens, that contain some stupid loading messages, that "should" entertain a user, while he is waiting. What a nonsense! Give me an application faster, and allow me to interact with applications as fast as my computer allows, or give me a specific reason, why this is delayed!
Ok, I am speaking mostly about delayed processes, errors and troubleshooting options, and most of time, user would not be able to understand those technical words, that deeply explained errors or timestamped log files says, but in any case, this could help solve or understand problem, using support service or eaven neighbour computer-geek telling your problem by phone.
I would rather like to see my browser page filled with timestamped messages about what it is doing/downloading/parsing right now, than stare at blank page, waiting for minutes to something happen... I would like to see resource analysis for downloaded content by default, to see, what is being downloaded currently, what is taking my time, what I am paying for. I would like to see all modifications installation is doing to my system, without using some 3rd party tools, that entangle every application.
In the end, I don't think, that all or eaven a part of this, is needed by most of users, and I have only a clue, how to achieve some of this in some user-friendly manner... "Standart... Expert..." user modes works just for some specific applications, but there should be another way to visualize current progress and activity of system.
And WTF is interested in "Elapsed time", give me "Remaining time" goddamnit!
You know, time is money, and applications should save you money, by doing job in less time.
I hate, when there is no option to "delete my account", in most of sites you cant. I would like to be able to change every field that I have entered, including any login data (login name or e-mail, if it is used), and I would like not to give any more additional information, if possible.
I prize "Stack Overflow" for showing a user12445123 (that is userid, as I understand) as display name, if none is selected.
having the minimize / restore down / close button (upper-right corner) not aligned with every other normal application.
example... i have a lot of windows open, minimizing a bunch in succession, I get to Chrome - oops... I just made the window smaller... annoying
Websites that doesn't allow to open a right click or even worse that doesnt allow to open a new tab in firefox with CTRL + T.
Not allowing multi-select on search criteria that very logically fit together in groups
For example, if I am looking at job postings by location on one of the large job boards, I should be able to multi-select all of the specific locations that I want. I should not have to add every location separately using Country, State, and City drop-downs. And the worst interfaces are the ones where I can only search by one city at a time (resulting in multiple queries that are more demanding on the database, or the user just giving up) or have to include the whole state.
Similarly, there should be enough separate criteria on one of these interfaces to give the user what they want. If a user lives in Montana, it would be inappropriate to give them search results that are hundreds of miles away just because the state has a lower population than many other states and was divided into 2 or 3 very large regions. And if the user lives in New York City, it wouldn't be helpful to do a radius search that returned places that take several hours or more to get to in traffic. For reasons like these, I like being able to customize - very specifically - which places constitute acceptable commutes. And it's very helpful when I can select all of those easily in one go, using a control that is big enough to not require an obnoxious amount of scrolling.
From a *nix point of view, the biggest sin is to create a program that is not inherently graphic and give it only a GUI. A GUI program casts off the panoply of *nix CLI tools and cannot be automated by any ordinary means.
Programs like Photoshop/GIMP are inherently graphic and get a pass, although ImageMagick shows that even graphical things can be done by command-line tools.
Dialog boxes with errors where the error message is too long for the dialog box. That way you get an error that you can't read. Often the dialog box will not allow cut and paste. That way it is impossible to read it at all (I am thinking of Windows 7 right now!).
Dialog boxes without scroll bars and no way to realize them.
Unreadable color schemes.
It's more of an issue on the web, but I keep coming across websites where the designer decided that medium gray text on a light or white gray background looked "sophisticated". Sometimes the regular text is black but it's the link text that's medium gray, which makes it really hard to see what the links are labeled as.
That just makes me use a "zap colors" bookmarklet. If I visit the site more frequently, I set up a Stylish style.
Topmost splash screens, so that you can't multitask (i.e. go back to reading a document while a program takes a while to load, but hides your desktop with a big logo).
One thing that will drive users mad is when the order of fields on the data entry form does not match the natural order of entry (I saw one once where address was first before name) or the order the of the paper form they are doing data entry from. This is not only annoying, it generally causes massive data integrity problems as data is typed in the wrong place.
(On a side note, I notice that many of the answers on this question are things that would annoy programmers only but not users.)
Try some USABILITY!!
All the listed UI design failures in this question are due to failure to implement usability methods & context of use analysis.
The reason there are so many bad UI features mentioned just tells me that too many developers/designers know very little about or do not apply usability methods.
UI design is not usability. Usability guides/governs UI design along with many/all other aspects of the systems development. Remember, as much us developers think their system is so amazing, it is still just an interface between what the user wants/has to do & the results they require.
So my "UI" misconception: why do developers/designers need to be repeatedly be given justification for the importance of usability and usability engineering?
Every answer given here is your answer to that question. Now go read up on usability & become the answer.
Lack of thought when choosing a default value.
In applications where the same thing is done over and over again (ie. internal company applications), there should be thought put in to default values. If you have a default value for a select box / radio box, talk to the end users to find out which option -- if any -- will be correct the most often.
Although not specifically a design choice, putting random load times at inappropriate locations can lead to frustrations with using the GUI. In Visual Studio 2008 when I click on the "toolbar" side tab, it has to load the entire toolbox at that time. Leads me to think my application is frozen.
Maybe it's just me, but I think checkboxes, OK/Cancel dialogs, or any other user yes/no type of thing should be phrased in the more affirmative way, if possible. Whenever I see "Suppress warnings about XYZ?" I think "No, I don't want to see warnings about XYZ," not "Yes, I would like to suppress those." I'd rather uncheck a "Show" box than check a "Hide" box.
My biggest gripe is Websites and even some applications that completely ignore OS DPI settings. Sorry but that 8 pixel fixed font doesn't cut it on a 1920x1200 15" laptop screen.
The otherwise fine phpED program can't alter the size of menu and dialog fonts. What the ...? It seems whatever library/framework they've chosen has fixed that on OS DPI.
Even the otherwise good Chrome browser, which does have a Webpage zoom at least, can't set the default zoom level. You have to zoom on every page you open. It's annoying and stupid and the Web is full of threads complaining about it. It'd be so easy to fix too.
And no changing the default font size on a browser is not good enough. Most Websites can't handle that and if you're actually designing those pages you have to do it at default settings.
I think the biggest is that a programmer EVER knows how to code a GUI. No single person really knows the best way to program every GUI.
A good GUI is a combination of a programmer who knows what can be done and a user who knows what they want to do. From there it's iterative.
I get really nervous when I hear someone say they are a "GUI Specialist" and can define some arbitrary GUI without additional input.
The best GUIs I've done have been in collaboration with either Customer Support or QA. Once they have taught me the entire process they go through, I can make it quite simple to do by thinking from their point of view.
I've even coded a GUI based on a manual. As the Support person described how the device worked to me, he kept referring to a group of abstract pictures in the manual. They had already spent a lot of time figuring out the best way to present the information, so I just took 10 near identical pictures and combined them into a single "Live" image that would mutate depending on options selected.
We got a contract to provide all the DSUs (like a modem for a T1 line) for Microsoft's MSN network because of that project.
Microsoft popup balloons (e.g. "Your system may be at risk"). Norton's worthless ads, installed by the manufacturer. Clippy. Worthless names for programs under KDE. How about an English translation of what your poorly named program actually does?
When I was on Windows. Each time you install a new program it asks and prompts you to install their toolbar in Internet Explorer.
If I wanted their toolbar I would have added it myself. I hate browsers cluttered with crap they don't use. While I do have eBay companion on Firefox at least you can turn it off.
The thing that annoys and frustrates me the most:
Please, these two buttons should always be far enough from each other that I can't mistakenly click 'Cancel' when I meant to 'Save'
The worst is when you try and close a word processor, and you get the following message:
Do you want to save the changes you made to xxxxxx?
[Yes] [No] [Cancel]
I hate it when I click 'No' instead of 'Yes'
User interfaces that don't degrade nicely in the "Scrunch Test": that is, take the user interface, resize it as small or as large as possible and see what control layout really breaks.
It's amazing how many user interfaces just don't degrade nicely.
JavaScript errors. Enough said.
Nag screens telling the user when updates are available. Mac OS X handles this nicely by having a bobbing icon when updates are available - I wish applications like WinAmp and iTunes had a more subtle means of notifying me that updates are available instead of a pop up!.
Developers overestimating the skill set of their intended audience. I saw an accounting program at a business I once worked for that took the accountant a week to teach a qualified book-keeper how to use this specific program. While it wasn't really this hard. The program was very limited and not that easy to use.
An annoyance with GIMP's slider bars:
Forcing me as a user to check/uncheck a bunch of checkboxes/switches as the only configuration option.
I'd prefer the initial option to be more of a usage based thing, i.e.:
"Users using this application for this usually select these options."
Then I'd modify what I wanted inside those option sets.
Inconsistent UI sections or relative screen locatons for common items such as for headers, hint areas, status messages, including positioning of common control such as Save, OK etc. They should ALWAYS be in the same relative location.
When an application decides the language it will be installed as without asking the user.
Usually I have an English version of Windows but it makes sense for me to set up some regional settings to use Russian formats for currency etc. as well as default language for non-Unicode programs.
When I install Intel video drivers it reads one of the mentioned settings and decides that it should be installed with Russian UI and creates Russian menu items on desktop's context menu. It looks very inconsistent and ugly when you have menu items in different languages.
It is even worse when the application does not allow you to change its UI language or select one you want during install.
I really hate the UI which greets you using voice!
Sometimes it is even hard to find which window is produced the voice.
Quite simply, adding UI where there is no need for it.
Example are most Windows drivers. Why the hell would I, the user, ever want to talk to the drivers?
Reinventing the wheel.
HP printers', Wireless Card's, and many other devices' drivers that use custom solutions when a standard one exists (like Zero Config for WiFi on XP), I'm looking at you.
The best answer is to look at user interface design and accessibility requirements. There really are federally pushed standards for accessibility. In the case you have poor eye sight, blind or poor hearing. And those accessibility requirements also help with regular design requirements.
Also, there are actual courses and books out there for good UI design. I took a course and here are my thoughts.
I think in most applications I see out on the web and in desktop applications break all of the rules on UI design.
Big offender: creating a non-standard user interface. If you have an artisty site or something creative, do something new. If you are designing a standard business application like a shopping cart, please don't come up with a completely non-standard interface. A big offender is have submit buttons at the top of a page as opposed to the bottom or placing icons on the left of the display as opposed to the right.
Another big offender: I see this a lot with open source software. DO NOT COMPLETELY REDESIGN YOUR INTERFACE VERSION TO VERSION. Microsoft (God bless them) have kept a very similar interface version to version. And of course, they employ the top UI designers. Ubuntu and other open source systems completely revamp their interfaces. From a UI design perspective, that is bad. Obviously you should be able to add features but some systems may move widget bars / applet window. It may flow on the left with one version and then the right on another version and then on the left again.
GIMP follows a lot bad UI practices. The window interface is very unusable, don't do that.
Click a link, scroll down, click another link, a popup, a button, a tab, another link, back to the main screen, pick another tab, a popup, 2 drop downs, and a save button. All to post 4 pieces of related information. (Not counting the actual data entry). I get to deal with this 20+ times a day. Bonus points if you guess which CRM package I'm referring to...
Or worse yet, put ALL related info on one screen in no particular order and let the user figure out what to put where. Sites like this remind me of the cockpit of a 747. Yikes!
[FIXED]
Implementation of javascript's alert('Annoy me in every tab');
or basic auth modal dialog in Firefox and other not named browsers.
They annoy the hell out of me in tabbed browsing, if one pops up it switches the tab it originated from and prevent any action until dismissed.
Not reserving at least a minimal amount of resources for the GUI.
With the performance of today's computers, we surely could allow to reserve for example 0.001% of processing time exclusively for the GUI. It would not slow down the system in any noticeable way, but would avoid the very annoying behavior when because of a task or program using up too much memory or processor time, opening a menu will lead to the following: borders will be drawn one pixel at a time, and after that, the menu items will be filled with a speed of 2 seconds per item.
Especially annoying when it affects a very important part of an OS, like Windows waiting for half a minute or more just to draw the graphics of the Task Manager upon hitting Ctrl+Alt+Del. On a Dual Core processor.
This will end your Windows session.
OMG, you don't seriously want to quit, do you?
Come on, really?
OK, fine, give me a few minutes to close.
Installing multiple applications as part of a product suite.
For example, why wouldn't Adobe provide one common environment from which you could launch their Photoshop, Illustrator or InDeisng editors. Why wouldn't Microsoft provide a common environment for launching Excel, Word, Power Point editors?
Menus/Control buttons crammed in so close that it requires effort to not hit the adjacent button, and perform some different action altogether
A common misconception is that users will automatically understand how to operate a UI if the logic behind the UI is internally consistent. For example, when one control determining whether another controls is disabled - sometimes works, sometimes doesn't. The internal logic doesn't always ensure that it does.
Operating systems that haven't yet natively implemented tabbed file browsing in their file browser.
An Google Reader example, where "shift-n" is a valid shortcut, but "N" is not. Such things.
N
moves to the next subscription (and O
opens it). - unhillbilly
N
and shift-n
? n
seems to move to the next article. - unhillbilly
HTML DIVs with a fixed size (in pixels) containing lots of text and no scroll bars. If you change the font size in the browser then some of the text will overflow and be hidden.