Technique H90:Indicating required form controls using label or legend
Applicability
HTML and XHTML controls that use external labels.
This technique relates to 3.3.2: Labels or Instructions (Sufficient when used with G131: Providing descriptive labels).
Description
The objective of this technique is to provide a clear indication that a specific form
control in a Web application or form is required for successful data submission. A
symbol or text indicating that the control is required is programmatically associated
with the field by using the label
element, or the legend
for groups of controls associated via fieldset
. If a symbol is used, the user is advised of its meaning before the first use.
Examples
Example 1: Using text to indicate required state
The text field in the example below has the explicit label of "First name (required):".
The label
element's for
attribute matches the id
attribute of the input
element and the label
text indicates that the control is required.
<label for="firstname">First name (required):</label> <input type="text" name="firstname" id="firstname" />
Some authors abbreviate "required" to "req." but there is anecdotal evidence that suggests that this abbreviation is confusing.
Example 2: Using an asterisk to indicate required state
The text field in the example below has an explicit label that includes an asterisk
to indicate the control is required. It is important that the asterisk meaning is
defined at the start of the form. In this example, the asterisk is contained within
a abbr
element to allow for the asterisk character to be styled so that it is larger than
the default asterisk character, since the asterisk character can be difficult to see
for those with impaired vision.
CSS: .req {font-size: 150%} HTML: <p> Required fields are marked with an asterisk (<abbr class="req" title="required">*</abbr>).</p> <form action="http://www.test.com" method="post"> <label for="firstname">First name <abbr class="req" title="required">*</abbr>:</label> <input type="text" name="firstname" id="firstname" />
Example 3: Using an image to indicate required state
The text field in the example below has an explicit label that includes an image to indicate the control is required. It is important that the image meaning is defined at the start of the form.
<p><img src="req_img.gif" alt="Required Control" /> indicates that the form control is required</p> <form action="http://www.test.com" method="post"> <label for="firstname">First name <img src="req_img.gif" alt="Required Control" />:</label> <input type="text" name="firstname" id="firstname" /> ...
Example 4: Indicating required state for groups of radio buttons or check box controls
Radio buttons and checkboxes are treated differently than other interactive controls
since individual radio buttons and checkboxes are not required but indicates that
a response for the group is required. The methods used in examples 1-3 apply to radio
buttons and checkboxes, but the indication of the required state should be placed
in the legend
element instead of the label
element.
<fieldset> <legend>I am interested in the following (Required):</legend> <input type="checkbox" id="photo" name="interests" value="ph"> <label for="photo">Photography</label></br> <input type="checkbox" id="watercol" name="interests" checked="checked" value="wa"> <label for="watercol">Watercolor</label></br> <input type="checkbox" id="acrylic" name="interests" checked="checked" value="ac"> <label for="acrylic">Acrylic</label> … </fieldset>
Other sources
No endorsement implied.
Tests
Procedure
- For each required form control, check that the required status is indicated in the
form control's
label
orlegend
. - For each indicator of required status that is not provided in text, check that the meaning of the indicator is explained before the form control that uses it.
Expected Results
- All checks above are true.