Skip to main content
HTML Validation

Bad value “combobox” for attribute “role” on element “input”.

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 the input and 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

Was this guide helpful?

Find issues like this automatically

Rocket Validator scans thousands of pages in seconds, detecting HTML issues across your entire site.

Ready to validate your sites?
Start your free trial today.