HCI (Human-Computer Interaction) is a very interesting field for me. Maybe because I’ve been interacting with computers wince I was 12 years old. In any case, I still find many very bad interface decisions.
Case and point: pop-up focus. No, not the annoying web-based ads. The pop-ups we all deal with on a daily basis. Weather it’s a calendar alert dialog, an IM window, or a critical error dialog, most modern OSes use pop-up dialogs. Now, I know some may say pop-ups are bad, I’ll leave that one alone and talk instead to those of you that see some value is a pop-up.
No window should allow you to close it less than a second after it was created or new information was added.
A poorly timed and placed dialog can pop-up just under my pointer/cursor and allow me to close it when my intended action was to interact with some other window. If my IM window pops up with a msg from my friend, and just then, milliseconds later, I click [ESC]. My intent was not to close the IM window, heck, I barely has enough time to realize the window was even there and now gone — not much more than a quick blink. If the pop-up intent was to alert me to some piece of information, giving me 100ms before the data is gone doesn’t make sense.
I suggest all interrupt-driven UI elements ignore user input for upto 500ms. If I was about to enter my password and my IM window pops up… please don’t accept my input just yet. If I’m about to [ESC] in Photoshop and a critical virus dialog pops up… please don’t allow me to cancel in less time than the screen refreshes.
Of course some power users will want the abillity to dismiss 10 dialogs per second; sure, given them an option to disable this feature.