As suggested by @Krinkle in T205683. This would be less jarring and more consistent with payments forms. It's also more important now that there can be multiple required choices on the form (amount + opt-in).
We should probably test this on banners too.
I've done this for the email opt-in now. Amount will be a bit more tricky as there's multiple possible error messages, and some need to include min/max amounts.
We now have this for amount, payment method and email opt-in across all our banners: example
The last place to add it is on donate.wikimedia.org for amounts. This is tricky and we're entering peak banner season, so it will probably have to wait until next quarter.
This is done on donate.wikimedia.org now as well. See the donationForm.validate method in https://donate.wikimedia.org/wiki/MediaWiki:DonationForm.js