I present "notifications", from time to time (as do most apps). These may be error messages, reminders, etc.
In many cases, I do NOT want the user to have to acknowledge the notification for it to be dismissed -- this adds another step to the UI that may not be convenient for the user.
Assume device is tied to a particular user (at some point in time -- i.e., can be "customized" for their needs)...
How to determine the duration of such "notification displays"? It's impractical to allow a time to be specified for each specific display. Adopting a single timeout means ALL notifications must be parsed in that interval, regardless of how familiar/novel any particular one may be to the user.
Perhaps a set of timeouts -- short, medium, long -- that the developer assigns to particular notifications that the user can then tweek (i.e., "make all 'short' notifications take3 seconds")? [I've been examining various apps/devices to get a feel for how long they interrupt the normal flow of operation for these events. All seem to favor terse messages that the user can recognize quickly and mentally dismiss. The idea of presenting more detailed context/assistance would make such short timeouts impractical]
Or, notice how long it takes for user to move past a particular notification (they self clear when the user continues whatever he was doing DESPITE their presence) and use that to "learn" the timeouts appropriate for each (notification,user) tuple?[User can always resort to an "ACKNOWLEDGE" to dismiss the notification without having to recall what he was doing when "distracted" by the notification. Doing this each time a notification appears is undesirable]
Dealing with a device that *isn't* tied to a particular user gets a bit more complicated...