What I want to talk about in this entry isn’t strictly User Interface, as it would need a lot of effort at other levels to succeed, but since the end result is a behaviour change in the User Interface, it’s probably the best place to put it.
What I want to discuss, is an interface that does what I want, when I want. That sounds suitably broad doesn’t it? I’ll give two examples of what I mean:
- I’m typing something into a wordprocessor, a text field on a web-browser, or something similar, when a dialog box pops up over the top of what I’m doing and steals the focus. At best, some of what I was typing originally gets stolen by that dialog box. At worst, I agree to let some program do something I didn’t want them to do, and which may be destructive.
- I start my browser, which by default has about 6 tabs that I work with. I click the focus to the rightmost tab, which allows me to login to a specific system. I wait while the browser/computer splits the CPU/Network between all 6 tabs to load them all at once.
Regardless of how important you believe my ‘needs’ are in these scenarios, the basic problem remains the same: the computer has decided what it’s going to do for me – it hasn’t listened to what I’ve asked of it, or taken note of what I’m currently doing.
You might say I should change the way I work to avoid the problems with 2. Perhaps start the browser in a different mode (or profile) to load that one login screen, then load it differently to get all my tabs back. I could, but that’s more effort and despite all evidence to the contrary still believe these things are meant to make life easier.
However, the point I’m making, however, is that I’ve decided I need to focus on one particular program, and one particular window in that program. I’d like the computer to give more priority to that than to other things I’ve shoved into the background.
With problem 1, which OS (Operating System) or WM (Window Manger) you use can determine whether this behaviour occurs at all. Regardless, here’s what I’d like to see happen. I can see two scenarios for something that wants to pop up a dialog:
- It’s non-urgent. The program wants to tell me it’s finished something, or ask me a question, but it doesn’t matter if I do it now, or in an hour’s time. In this case, I’d like it to put something in a notification area, or flash an icon in the taskbar, or get my attention in one of the many other ways that we have built in. There is no need for it to take over my input without me telling it to. That’s just plain rude – and potentially dangerous.
- It’s urgent. There’s something a program, or the OS needs to tell me that needs urgent attention. In this case, I can quite understand a dialog popping up over the top of everything else. However, in this case, it needs to realise I’m typing (or clicking) on something else, and it may take a moment for me to notice the dialog. It shouldn’t accept input either for a second or two, or until it detects I’ve stopped typing. In other words, it shouldn’t take input not meant for it.
All I’m really asking is that when I, as the user, am focussing on something, the device needs to realise that. Whether it means allocating more resources to what I’m focussing on, or giving me time to realise it’s waving its hand desperately wanting to go to the toilet, then it means I’m more likely to get what I want done, and not make too many nasty mistakes.