This project contains 3 examples of the same form with different approaches to making them accessible. There's one example with no attempt to make it accessible for comparison and 2 others with correct aria attributes and semantic markup:
- With visible error messages as you type and focusing first error on submit
- With error summary on submit