# Accessibility Assertions

- Field has associated label
- Error message is specific and linked (`aria-describedby`)
- Invalid state uses `aria-invalid="true"`
- Focus moves to first invalid field after submit
- Keyboard-only path can complete correction and submit
