Search code examples
user-experience

Should dialogs be automatically closed?


Scenario: You're writing an application that performs an on-going critical operation over a network. Communication with the network breaks and it is a requirement that the user is shown a modal dialog indicating that the connection to the network has been lost. Some time later (with the modal dialog still showing) the connection is re-established and the operation can continue.

Question: Given the above scenario, should you:

  1. Automatically close the dialog and the allow the operation to continue (i.e. no user interaction with the dialog)?
  2. Wait for a response to the original dialog before allowing the user to continue?
  3. Update the dialog to indicate that the connection has been restored and wait for a response before continuing?

Solution

  • This is mainly opinion based, but I will try to give some arguments:

    In solution 1, a modal dialog disappears suddenly. But the rationale for a modal dialog is to suspend the UI until the user has done a certain action. So IMHO having it to desappear suddenly without another message give an inconsistent user experience

    Solution 2 is consistent and simple (and robust) to implement. The only problem is that the user may feel that the application could have noticed itself that the network was on again, and could blame a lazy developper for that.

    Solution 3 can looks stupid if you only replace a message Network is down with Network is up. If the user stops looking at the screen for a moment (drinks a coffee, speaks to a co-worker) and the network goes down and then up during that time, when he looks at the screen again he only see a modal dialog asking to confirm that he is aware that network is up. What an important information, will he think!

    My advice would be to always leave the information network lost at time, possibly followed by network went up again at time, that way it is always a sensible information that can require an acknowledgement.

    The question remains whether a modal dialog is the appropriate tool for that. Maybe a status panel with red messages when network is down and green when all is fine could be a possible alternative. But you know better your application than I do...