Errors provide contextual and actionable feedback to help users resolve failures and avoid future complications.
Problem Statement
Errors disappoint and frustrate users. Prevent them whenever possible. When errors happen, provide thoughtful feedback and exemplify the conversations Morningstar strives to have with our users.
Types
System-level Errors
System-level errors should use the Top Hat component. In the message, start by apologizing, describe what’s going on, and indicate how long it might take to resolve the issue.
Page-level Errors
If there are errors about page-level or out-of-view events, use a Notification. Combine with inline form errors to further describe the error in detail.
If there are errors at a component-level, Alerts can be used in combination with field-level validations to further describe the error in detail. Notifications are typically not necessary in addition to Alerts.
If a user enters an input incorrectly or fails to take proper action, alert them with red, in-line error messaging. Ideally, this messaging would show as the user types.
If a user can’t access certain information, tell them why, or hide the component entirely if it’s not pertinent to their role. Provide a way to resolve access issues, if it’s possible.
Preventative Measures
Deactivating Controls
Deactivate the primary action button on the page until all required information has been provided.
Offer helper text in tooltips if user must take action before a page is rendered. See Buttons and Tooltips for more information.
Character counters set users' expectations for how much content to enter, including any limits on characters.
Guidelines
Editorial
Never make a user feel foolish, guilty or patronized. Use natural language to help them get out of whatever jam they’re in.
Use full sentences with punctuation.
Acknowledge what is keeping a user from proceeding, but don’t make them feel like they did something wrong.
Provide a user at least one way to resolve the problem.
Write it as if you were telling a friend how to resolve an issue.
If an error has the potential to repeat, tell a user what they should do, i.e., “If the site continues to not recognize your account, email us at ___.”