Accessible Forms
Accessible forms are designed so that they can be operated entirely by keyboard, are understandable with screen readers and communicate errors clearly – requirements that follow, among others, from the WCAG criteria on labels, focus order and error handling.
In practice
Every form field needs a programmatically linked label (via for/id), because a placeholder alone is no substitute for a label and disappears as soon as someone types. Required fields should be clearly marked, and error messages should be wired up via aria-live so that screen readers announce them automatically. Related radio buttons or checkboxes belong in a fieldset with a legend, and the focus order should follow the natural reading order in the code rather than being corrected afterwards with manual tabindex values. In the end, only testing with a real screen reader and by keyboard alone will tell you whether it works.