The symbol is not explained, and the control has no required state in HTML.
Meaning depends on visual convention alone.
<label for="email">Email *</label>
<input id="email" type="email">
Accessible HTML forms
People need to know what is required before they submit—and browsers need the same information in code.
The principle
Required status needs two signals: visible words for people and a native attribute for software.
Two signals
An asterisk may be small, missed, or unexplained. The word “required” is unambiguous. The HTML required attribute exposes the same constraint programmatically and enables native validation.
The symbol is not explained, and the control has no required state in HTML.
Meaning depends on visual convention alone.
<label for="email">Email *</label>
<input id="email" type="email">
Try leaving it empty and pressing the button in the practice area below.
The requirement is visible and programmatically available.
<label for="email">
Email address (required)
</label>
<input id="email" type="email" required>
Field anatomy
Keep the accessible name concise. Put the requirement in the label and longer instructions in a description associated with the field.
Use at least 12 characters.
Names the field and visibly says required.
required exposes the state to browsers and assistive technology.
aria-describedby associates the persistent format hint without making it part of the name.
Choose a convention
Be consistent within a form. Mark required fields when the form is mixed. When nearly everything is required, say so once and clearly mark the exceptions as optional.
Mixed form
Mostly required
All fields are required unless marked optional.
Try it
Submit the form empty. Your browser will block submission, move focus, and expose the missing required value using its native behavior.
Quick test
required attribute?