21

This comment on another UX.Stackexchange question:

that's not to force you to read it, it's to ensure that websites don't pop up the window as soon as your mouse pointer goes to click something in the same position as the install button.

reminded me of a problem I do sometimes encounter - I'm in the middle of quickly typing a text and all of a sudden some unrelated application considers itself important enough to not only pop up and visually steal focus (which is annoying enough) but also steals input focus such that keypresses that already left my brain and will be executed by my hands a few milliseconds (or even microseconds?) after the focus steal, effectively causing my just pushed N or ENTER or similar to trigger a function of that popup, which then vanishes before I even realize what happens and merely notice a few letters are missing from my text. Well, until my PC suddenly restarts since it was an automated updater...

So, while said comments states Mozilla products add a delay to the extension installation dialogue to mitigate this partly, is there any valid reason for focus stealing? (Note I am not referring to intended focus shift, e.g. when I hit the Windows key I do expect keyboard focus to switch to Windows' start menu; I am talking about a shift of focus that has no correlation to my current input)

Tobias Kienzler
  • 668
  • 5
  • 18
  • 3
    I mean, sure enough the "You are running out of Oxygen" warning should be very visible on an ISS terminal, but even then the "Which of the following sections (2 inhabited) to evacuate first" input should not be shifted without user interaction... (sidenote: would "evacuate" refer to the atmosphere (to concentrate oxygen to other sections) or to the persons inside in this case? Bad choice of wording...) – Tobias Kienzler Sep 06 '13 at 08:21
  • related question asking on alternatives to this silly behaviour: http://ux.stackexchange.com/q/39595/7228 – Tobias Kienzler Sep 06 '13 at 08:25
  • To show an ad? (I'm kidding. Spotify does this and it's really annoying.) – Brian Ortiz Sep 11 '13 at 01:25
  • @BrianOrtiz It is indeed a shocking experience to once in a while browse the internet in general without adblock (of course I deactivated it on SE though) – Tobias Kienzler Sep 11 '13 at 05:13

3 Answers3

8

There is one situation where having an application steal focus is not only possible, it's desirable - when the application involved is designed to interrupt your flow.

I wrote an application to do exactly this - it's one of the most popular downloads from my website, called OOSAlarm.

OOS is a reference to "occupational overuse syndrome", also known as "repetitive strain injury" (RSI) and is a common problem for software developers and others who spend all day on their computers.

OOSAlarm is designed to interrupt your flow and "encourage" you to take regular short breaks to allow your body to cope with the stress of everyday work.

I use it on my own machine, configured to force a 15 second break every 4 minutes.

Focus stealing is an important feature of the program, as the whole point of the micropause is that that it actually does interrupt me for a short time. It's so important that the application includes an aggressive where it resteals the focus 5 times a second to prevent the user skipping the break.

That said, most programs that steal focus aren't doing so because you asked them to - they're just muscling their way in front and they shouldn't.

Bevan
  • 8,311
  • 3
  • 32
  • 41
  • 1
    I wouldn't mind you including a link to OOSAlarm here (found it though: http://www.nichesoftware.co.nz/oosalarm) and I agree this is a valid reason (+1). However it is, as you mentioned, a software specifically designed (and then installed) to catch focus while other software was not and yet does so. I'd imagine ideally a software like yours would explicitly ask for an OS's "flow interruption privilege" upon installation and if denied (or not even asked for) the OS would simply ignore any attempts at focus stealing by that program. Then again, ideally there were no OOS (or "out of oxygen") – Tobias Kienzler Sep 07 '13 at 06:51
  • I didn't include a link in my original post because I felt it was off-topic - and that it might have been regarded poorly. Glad you found it though. – Bevan Sep 07 '13 at 10:31
  • Well, since the program is an answer to this question, it is kind of on-topic :) But anyway, it's just two links through your profile away. Maybe I should start using it actually... – Tobias Kienzler Sep 08 '13 at 08:20
5

No, there aren't any valid reasons for an app stealing focus I can think of.

If you ask me, the OS should be ultimately responsible for this by not allowing it (people coding apps in a misguided or malicious way will always exist).

  • +1 That is exactly the way MS has (and probably the others have) gone. Inexplicably much to the displeasure of many that think their application is so important that they absolutely, positively, no other way about it, have to have the user's attention and have it now. "What if two programs did this?" – Marjan Venema Sep 06 '13 at 12:27
  • 3
    @MarjanVenema I must have missed the part where MS has gone the way of not allowing focus stealing - there's almost infinitely many programs stealing focus thanks to multiple mechanisms Windows provides for this (well maybe not on purpose, but they definitely failed at prohibiting this) – Tobias Kienzler Sep 06 '13 at 14:16
  • @TobiasKienzler: I didn't mean that they have made it impossibly, but they actually have made it much, much harder to accomplish. The programs that are still doing it are making use of stuff that used to be possible in an almost "casual" way and that MS still need to support for backward compatibility reasons. Please also bear in mind that stealing focus is something that people will try to do, regardless of how many obstacles are put in their way. Can't find the article on that, but just search [SO] for "bring to front" and you will see that it is something that seems very hard to stamp out. – Marjan Venema Sep 06 '13 at 14:22
  • 2
    @MarjanVenema There's the problem - they shouldn't have made it possible to start with. And this is a "feature" that really doesn't need backwards compatibility. I understand there are people with the strong desire to do it anyway, but those are probably the same people that use rand(rand(rand(time()))) because "one rand alone isn't random enough", and ideally there shouldn't be a need to support their "products"... – Tobias Kienzler Sep 06 '13 at 14:26
  • 2
    @Tobias: Of course they shouldn't have, but they didn't know or have the experience then that they do now. Actually the feature does need backwards compatibility, because if MS wouldn't provide that, they would get blamed for the fact that a program stops functioning when users go to upgrade their Windows system. If you don't believe me, try and research how much code there is in Windows that is application specific -> ie fixes in Windows code for bugs in applications written by other companies. Hint: look for why Asp.Net MVC etc. is open source (at least that's where I think I found it). – Marjan Venema Sep 06 '13 at 14:36
  • @MarjanVenema That makes me sad :( – Tobias Kienzler Sep 06 '13 at 14:45
  • In my opinion backwards compatibility (or historical raisins as one friend calls it) is one of the worst reasons for providing crappy user experience. My view is that you have to make the best OS you are capable of in terms of UX disregarding everything else. If your users need "backwards compatibility" they should not upgrade their OS. That's why OS X frequently breaks applications on OS updates. It is the responsibility of the app maker to fix them, not Apple's. On the other hand, iOS is more stable in terms of backwards binary compatibility 'cos everything was sandboxed to begin with. – Ricardo Sanchez-Saez Sep 06 '13 at 15:49
  • @TobiasKienzler Me too. – Marjan Venema Sep 06 '13 at 16:22
  • 1
    @RicardoSánchez-Sáez: May be it is, but what you seem to ignore is that UX is just one aspect with regard to Windows. Business wise it wouldn't make any sense at all to tell people not to upgrade their Windows because that would be the only way to keep their applications running. And the comparison with Apple is interesting, but not quite fair either. Their turnover is not quite in the same league and they focus more on consumers than on businesses, and the latter are much more liable to sue MS even when it is a completely different vendor's application at fault. – Marjan Venema Sep 06 '13 at 16:29
  • @Marjan: Hehe, sorry for opening this can of worms. I see your point and I understand the business rationale for Microsoft wanting to keep backwards compatibility. Nevertheless my personal interest is in end user experience. Everything else (including b2b models, corporate environments and possible litigation due to lack of backwards support) is irrelevant for me. I say that Microsoft is slowly turning into what IBM or HP are now: boring although economically viable (for how long?) b2b companies. – Ricardo Sanchez-Saez Sep 06 '13 at 16:50
  • @Ricardo: no worries, but remember that keeping applications running that shouldn't is part of the user experience for an OS... Btw IBM is now more innovative than Apple, certainly wrt company culture. Apple has turned into the Big Brother they turned against in their successful tv add in the eighties/nineties). Oh and personally I think you are selling yourself short if you focus on "just" user experience. You risk getting more and more frustrated because you will often be held back by people who do need to consider those other aspects... (speaking from experience wrt software code quality) – Marjan Venema Sep 06 '13 at 17:00
  • @MarjanVenema & #RicardoSánchez-Sáez: Maybe we should have a separate question on the compatibility of ux and backwards compatibility ;) Anyway, MS didn't exactly do a perfect job with the latter either, I encountered quite some - admittedly exotic - applications that needed some very weird runtime frameworks installed in Win7 to merely start up, while they ran fine on Win95... Anyway, backwards compatibility somehow reminds me of the monkey-banana-waterhose story... – Tobias Kienzler Sep 07 '13 at 06:43
  • @TobiasKienzler: Maybe wo need a separate question. Maybe we don't. I just think that OS's are in a league of their own when it comes to backwards compatibility and UX. Monkey banana story is well known to me (studied behavior modification as a hobby), interesting that you have an association between it and backwards compatibility. I wonder however whether there is a true analogy there. The monkeys are "trained" to do something without knowing why, while users requesting/demanding backwards compatibility know perfectly well why they want it, as do the vendors catering to that request/demand. – Marjan Venema Sep 07 '13 at 10:40
  • @MarjanVenema I was more thinking of banana = ux, monkey = OS vendor and water hose = users that once upon time sued OS vendors for their crappy application no longer working... – Tobias Kienzler Sep 07 '13 at 16:25
  • @TobiasKienzler: Ah, yes, does make sense when you look at it like that. :-D – Marjan Venema Sep 07 '13 at 19:04
0

MS Outlook is a focus thief. I hate it!!! When I'm writing down the VPN password Outlook is starting and it steals the input focus several times, mostly when I'm entering the long password.

The reason is bad design, not especially of Outlook but of the OSs in general.
The UI designers need a way to post messages to the user that are more or less guaranteed to be seen, and I don't see any such solution.
I use Windows and it bugs me with messages like "an update is ready to install" that don't really steal the focus but slide the task bar (which I have normally hidden) over the place I'm working on.
We need a "communications area" for the applications to post messages that could steal real estate from the screen until the messages are acknowledged, or set a tag in a corner of the screen with a button to show the messages, or ... whatever.
The public communications area is adeal for abuse, so each message of every application should automatically acquire a "Kill this silly messages class once and forever" button.

Juan Lanus
  • 3,369
  • 14
  • 13
  • Application startup focus loss is another problem indeed, but that applies to basically any application that doesn't start immediately. So all of them... Yeah, a designated notification area that never is used in any other way might be useful, but maybe an Android-like feature that an application needs to actively obtain "post notifications" privilege should be required then... The basic problem is however developers not once stopping to think "is this message really important enough to bug the user?", and that related question – Tobias Kienzler Sep 11 '13 at 05:17
  • @Tobias "that related question" (users becoming notification-blind) IMO is not about users but about the design of the notifications, the evaluation of what is important or not (regarding the user, not the application). Like what you said in your comment. – Juan Lanus Sep 12 '13 at 12:19