Naming a form control
First of all: use a visible label.
Order of retrieving the accessible name
- label
- aria-label
- aria-labelledby
- aria-describedby
The HTML5 way
A placeholder is not a label
aria-label
Disadvantage: you don't have a visible label. But it does give the form control an accessible name.
A placeholder and aria-label
Aria-labelledby
Aria-describedby
Is additional to the label text, and is useful to add extra information.