What you need to know
A placeholder is not a reliable label: it disappears while typing and may be difficult to read. A visible label remains available, helps users understand a field, and gives assistive technology a name to announce.
How to apply it
Give each input an id and connect its label with htmlFor in React or for in plain HTML. Add hint text with aria-describedby, mark required fields visibly, and place validation feedback next to the field.
Common mistake to avoid
Do not use aria-label as a replacement for visible labels when a visible label is practical. Test the form by tabbing through it and by checking how errors are announced.
