Auto-complete
Overview
Project lead: Eric Poirier (@ericpoirier)
Purpose
The HTML5 input list
attribute and the datalist
element add auto-complete functionality to specific text input fields by dynamically displaying a list of words that match the user’s input. Because some browsers do not support this functionality natively, this polyfill emulates the same functionality using generic HTML and WAI-ARIA. Browsers that do not support the input list
attribute and the datalist
element natively ignore the auto-complete functionality and therefore, the text input field behaves like it normally does.
Benefits
- In cases where a browser doesn't support the attribute and element, the polyfill is automatically loaded.
- This polyfill ensures that the auto-complete functionality is added to the text input field and the necessary information is exposed to assistive technologies by adding WAI-ARIA.
Implementation
To use the polyfill, the standard input list
attribute and datalist
element must be used. In cases where browsers don't support this attribute and element, the polyfill is automatically loaded.
Example code
<label for="city">City</label>
<input type="text" id="city" name="city" list="suggestions" />
<datalist id="suggestions">
<!--[if lte IE 9]><select><![endif]-->
<option label="" value="Calgary"></option>
<option label="" value="Edmonton"></option>
<option label="" value="Iqualuit"></option>
<option label="" value="Ottawa"></option>
<option label="" value="Montreal"></option>
<option label="" value="St. John"></option>
<option label="" value="St. John's"></option>
<option label="" value="Toronto"></option>
<option label="" value="Vancouver"></option>
<option label="" value="Whitehorse"></option>
<option label="" value="Winnipeg"></option>
<option label="" value="Yellowknife"></option>
<!--[if lte IE 9]></select><![endif]-->
</datalist>
Examples
Development
Auto-complete functionality is dependent upon native support for the HTML5 input list
attribute and the datalist
element or the auto-complete polyfill.
- js/polyfills/datalist.js - contains the JavaScript code for the auto-complete polyfill
- js/sass/includes/_datalist.scss - contains the SCSS for the auto-complete polyfill
- js/sass/includes/_datalist-ie.scss - contains the pre-IE9 SCSS for the auto-complete polyfill
Known issues
There are no known issues at this point in time.
Version history
References
- Date modified: