Under Construction: The content on this site draft material. It is not the official content of this site and should not be followed at this time.

Not Legal Advice: The content on this site is provided for informational purposes only and does not constitute legal advice. Consult a qualified attorney for advice specific to your situation.

Purpose

A select control lets users choose one (or multiple) options from a dropdown list. The native <select> element provides keyboard support and accessibility for free.

Usage Guidance

  • Use native <select> for simple option selection
  • Always associate a <label> with the <select>
  • Reserve custom select implementations for scenarios where native styling constraints cannot be overcome
  • For multi-select, native <select multiple> is preferred

Keyboard Support

Key Action
Tab Move focus to the select
Alt+Down / Space Open the dropdown
Arrow Up / Down Navigate options
Enter Select the focused option
Escape Close without selecting
Home / End Move to first/last option

Screen Reader Behavior

Screen readers announce the label, “combobox” role, and the currently selected option. Opening the dropdown announces the number of options available.

ARIA Requirements

Native <select> requires no ARIA. Associate it with a <label> via for/id.

Common Mistakes

  • Custom select dropdowns without keyboard support
  • Using aria-label instead of a visible <label>
  • Multi-select without instructions on how to select multiple items

Live Example


Code Example

<label for="priority">Remediation Priority</label>
<select id="priority" name="priority">
  <option value="">Select a priority level</option>
  <option value="critical">Critical</option>
  <option value="high">High</option>
  <option value="medium">Medium</option>
  <option value="low">Low</option>
</select>