Validation
Tell someone what is wrong, where it is wrong, and how to put it right — in words, not in a red outline they have to guess at.
The three states
and what each one says
Free — the next number in the sequence
One day away — this customer's terms are 30 days
A rate cannot be over 100%. Did you mean 8.25%?
Checked as you leave the field
not on every keystroke — that is nagging
A summary at the top
for a long form, where the error may be off the screen
This invoice cannot be saved yet
Choose the account this line posts to.
Enter the address the invoice is sent to.
What the message should say
Invalid input — says nothing about what to do.
Field is required — which field, and required for what?
A rate cannot be over 100%. Did you mean 8.25%?
This number is already on INV-0241, raised on 24 August.
Each message is joined to its field with aria-describedby, so it is read out when the field is reached rather than only seen.