About This HTML Issue
The role attribute value combobox is not valid on an input element according to the W3C HTML standard.
The role="combobox" is valid only when applied to an element that acts as a container for the combo box widget, usually a div or similar element, and not directly to a native HTML input. Native input elements of type "text" or "search" already have implicit roles and accessibility semantics. To create an accessible combobox, wrap the input inside a container element with role="combobox" and use appropriate ARIA attributes.
Incorrect Implementation:
<input type="text" role="combobox" aria-autocomplete="list">
Correct Implementation:
<div role="combobox" aria-haspopup="listbox" aria-owns="suggestions" aria-expanded="false">
<input type="text" aria-autocomplete="list" aria-controls="suggestions">
</div>
<ul id="suggestions" role="listbox">
<li role="option" id="option1">Option 1</li>
<li role="option" id="option2">Option 2</li>
</ul>
Explanation of attributes:
-
role="combobox": Applied to the container (<div>) to define the accessible widget. -
aria-haspopup="listbox": Indicates the presence of a list of suggestions. -
aria-owns/aria-controls: Connects theinputand suggestion list. -
aria-expanded: Denotes whether the suggestion list is visible. -
aria-autocomplete: Defines the autocomplete behavior.
This markup ensures better accessibility and passes W3C validation.
Learn more:
Last reviewed: July 16, 2025
Find issues like this automatically
Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.