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.