Large, expanded keyboard. Online forms make your web pages interactive by collecting information from your users. Common uses of online forms are surveys, order forms, business transactions, feedback, comment forms, job applications, and online tests.
Completing even the most carefully designed online forms may be difficult or impossible for users with certain types of disabilities, users of some adaptive technologies, and users of some Web-enabled devices. Individuals with mobility disabilities may have difficulty accessing small form controls, such as radio buttons and check boxes.
The design, content and layout of an online form must be considered in order to ensure access for the widest possible audience. Even though some accessibility features for forms may not be obvious to all users, everyone benefits from a well-organized form.
One of the most common ways of navigating through a form is by using the tab key. Web developers must ensure that the forms on a Web site can be completed using only the keyboard. If a form control can only be activated with a mouse or other pointing device, someone who is using the page without sight, with voice input, or with only a keyboard will not be able to use the form.
Because forms typically collect data that is stored in a database, the design of a form does not need to follow a specialized layout. For example, many people believe that an online version of a form must be identical to that of a paper form. The only reason to do this is to maintain familiarity. Forcing the layout of a form into a table with complex columns and rows can make it very difficult to navigate and complete, even if all accessibility features are included.
Web developers should ensure the simplest and most linear layout of a form, and educate their clients about accessibility issues when presented with a pre-conceived layout.
When electronic forms are designed to be completed online, the form shall allow people using assistive technology to access the information, field elements and functionality required for completion and submission of the form, including all directions and cues. [Section 508, Part 1194.22, Paragraph (n)]
Divide large blocks of information into more manageable groups where natural and appropriate. [W3C WCAG 1.0, Checkpoint 12.3, Priority 2]
Create a logical tab order through links, form controls, and objects. [W3C WCAG 1.0, Checkpoint 9.4, Priority 3]
The following markup and design techniques are required:
The following example demonstrates a majority of the above features:
This is the code for the above form example:
<form action="" method="post">
<fieldset>
<legend>Personal information</legend>
<label for="firstname">First name:</label>
<input type="text" id="firstname" tabindex="1">
<label for="lastname">Last name:</label>
<input type="text" id="lastname" tabindex="2">
</fieldset>
<fieldset>
<legend>Sex</legend>
<label for="male">Male</label>
<input type="radio" name="sex" id="male" tabindex="3" checked="checked">
<label for="female">Female</label>
<input type="radio" name="sex" id="female" tabindex="4">
</fieldset>
<fieldset>
<legend>Computer Type</legend>
<input id="mac" type="radio" name="radiobutton3" value="radiobutton" tabindex="5" checked="checked">
<label for="mac">Mac </label>
<input id="pc" type="radio" name="radiobutton3" value="radiobutton" tabindex="6">
<label for="pc">PC</label>
<input id="linux" type="radio" name="radiobutton3" value="radiobutton" tabindex="7">
<label for="linux">Linux</label>
</fieldset>
<label for="favcity2">Which is your favorite city?</label>
<select id="favcity2" name="favcity2" tabindex="8">
<optgroup label="Europe">
<option value="1" selected="selected" >Amsterdam</option>
<option value="3">Interlaken</option>
<option value="4">Moscow</option>
<option value="5">Dresden</option>
</optgroup>
<optgroup label="North America">
<option value="2">New York</option>
<option value="6">Salt Lake City</option>
<option value="7">Montreal</option>
</optgroup>
<optgroup label="South America">
<option value="8">Buenos Aires</option>
<option value="9">Asuncion</option>
</optgroup>
<optgroup label="Asia">
<option value="10">Hong Kong</option>
<option value="11">Tokyo</option>
<option value="12">New Dehli</option>
</optgroup>
</select>
<input type="submit" value="Submit Form" tabindex="9" accesskey="x">
<input type="reset" value="Reset Form" tabindex="10" accesskey="y">
</form>