What's Going On?

Where possible, an application should keep users informed about the state of the application. Are there any unsaved changes? Is background processing in progress? Is the current document or record in a valid state? All of this information should be communicated in an unobtrusive manner.

If our UI is shoddy enough, maybe they'll use the costly automated service... What's worse than simply not providing data is to present a misleading or ambiguous picture of system state. After selecting a specific account from a combo box, Bank of America allows a user to download statements. Unfortunately, the user must confirm account selection before it is made active. Not only is this intermediate step pointless, but a user has no way to determine if the selected element is active. One is liable to hit the 'Download' button and end up with the wrong results. Bonus points for resetting the date ranges when a different account is activated!