<label>, aria-label, or aria-labelledby.When a screen reader focuses an unlabelled input, it announces "edit text" or "text field" with no context. The user has no idea what to type.
<label for="email">Email address</label>
<input id="email" type="email" />
<!-- Or with aria-label -->
<input type="email" aria-label="Email address" />