Errors cause disappointment and frustration and we should prevent them when possible. When errors do happen, our feedback should be thoughtful and exemplify the conversations we want to have with our users.
If a full page or system is down, apologize, let the user know what’s going on, and tell them how long it might take to resolve the issue.
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.
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. See Input states for details.
Prevent errors ahead of time by identifying required/optional fields. See Forms for more information.
Character counters set users' expectations for how much content to enter, including any limits on characters.