Forms are tricky to get right. Which is why so many of us use pre-existing libraries and plugins for our CMS of choice to try and avoid as much of it as possible. But most of those get it wrong.
This document was written with funding from the Australian Bureau of Meteorology and is licensed under the Creative Commons Attribution Non-commercial license.
We hope you find it useful!