Errors Aren’t All Bad
Adam Silver wrote “Don’t use the maxlength attribute to stop users from exceeding the limit” which seems like one of those obvious things that needn’t be said, but I’m glad he says it.
Have you heard of the “error prevention” heuristic?
It means “do everything you can so users don’t make mistakes”. And it’s good advice. But some designers take this to mean “don’t let users see an error” which is bad advice.
There’s a big difference between helping users with errors and making users avoid errors.
Errors can be like mistakes: good for you if they help you learn.
A classic example of this is composing a tweet/toot in a field with a maximum length.
If I try to submit over 140 characters, that’s an error. It’s not supported by the system. I will be blocked.
But that doesn’t mean I should be prevented from inputting over 140 characters.
Don’t block me, inform me. Let me go over 140 chars. Let me cross that boundary into “error” territory. Don’t accept its submission, but allow its composition.
Allow me to make errors and give me the space to correct them, rather than preventing them altogether. In this case, let me write out my thoughts and pare them down later vs. being rebuked to input anything beyond your threshold.
Preventing me from going over 140 doesn’t help me. It slaps me on the hand and blocks my thought process. I can’t think about what I’m trying to do because you’re too busy telling me why I’m in the wrong.
Errors are good if they’re helpful — in UI interaction and life :)