<datalist>
Definition
The HTML datalist element is a way to provide a list of options to users when they are filling out a form. This is helpful because it allows users to select an option from the list rather than having to type out their own response. It's also useful for providing a list of pre-defined options or for providing suggestions as the user is typing.
The datalist element is typically used in conjunction with an input element, and the list of options is specified using option elements inside the datalist element. Here is an example of how you might use the datalist element in a form:
Examples
<label for="city">City:</label>
<input type="text" id="city" name="city" list="city-list">
<datalist id="city-list">
<option value="New York">
<option value="Los Angeles">
<option value="Chicago">
<option value="Houston">
<option value="Philadelphia">
</datalist>
In this example, the input element has an id attribute of "city" and a name attribute of "city". It also has a list attribute whose value is "city-list", which specifies that this input should use the list of options defined in the datalist element with an id of "city-list".
The datalist element then contains a list of option elements, each of which has a value attribute specifying one of the options that should be available in the list. When the user starts typing in the input element, they will see a list of suggestions based on the options in the datalist element. They can then select an option from the list, or continue typing to enter their own response.
Attributes
This element makes use of the global attributes.
Best Practices
- Use the
datalistelement in conjunction with aninputelement to provide a list of options to users when they are filling out a form. - Use the
listattribute on theinputelement to specify whichdatalistelement should be used to provide the list of options. - Use the
optionelements inside thedatalistelement to specify the options that should be available in the list. - Use the
valueattribute on theoptionelements to specify the value that should be used if the user selects that option. - Use the
labelattribute on thedatalistelement to provide a label for the list of options. - Use the
disabledattribute on thedatalistelement to disable the list of options. - Use the
accesskeyattribute on thedatalistelement to specify a keyboard shortcut for activating or focusing the element. - Use the
formattribute on thedatalistelement to specify the form that the element belongs to. - Use the
autofocusattribute on thedatalistelement to indicate that the element should be focused automatically when the page loads. - Use the
tabindexattribute on thedatalistelement to specify the tab order of the element. - Use the
titleattribute on thedatalistelement to provide additional information about the element.
Accessibility Considerations
When using the datalist element, there are a few accessibility considerations to keep in mind. First, it is important to make sure that the datalist element has an appropriate label attribute. This will provide a label for the list of options, which will make it easier for users with assistive technology to understand what the element is for. Additionally, you should make sure to use the value attribute on the option elements to specify the value that should be used if the user selects that option. This will make it easier for assistive technology to understand the meaning of the options in the list.
Another important consideration is to make sure that the datalist element is keyboard accessible. This means that users should be able to interact with the element using only their keyboard, without needing a mouse. You can achieve this by using the tabindex attribute to specify the tab order of the element, and by using the accesskey attribute to specify a keyboard shortcut for activating or focusing the element.
Finally, it is important to make sure that the datalist element is properly marked up with the appropriate semantic elements. For example, you should use the label element to provide a label for the datalist element, and you should use the option element to specify the options that should be available in the list. This will make it easier for assistive technology to understand the structure and meaning of the datalist element.
Browser Compatibility
| Chrome | Firefox | Safari | Internet Explorer | Microsoft Edge | Opera |
|---|---|---|---|---|---|
| Yes | Partial | Yes | Yes | Yes | Yes |