HTML / Element / Initial coverage

The <select> Element

Status: Initial coverage Scope: HTML Living Standard Reviewed: 2026-09-25

Technical Summary

The select element represents a form control for selecting from a set of options. Without multiple, it selects one option; with multiple, it can select zero or more options.

A select is form-associated, labelable, listed, submittable, and resettable. Current selection is represented by an option's selectedness, and selected option values participate in the form's entry list.

Definition / Categories

ItemSpecification summary
MeaningA control for selecting from a set of options
ContextWhere phrasing content is expected
CategoriesFlow, phrasing, interactive, listed, labelable, submittable, resettable, form-associated, and palpable
Content modelFor a drop-down box, zero or one leading button, followed by option, optgroup, hr, script-supporting, noscript, or div content
Tag omissionNeither the start tag nor the end tag is omissible

The leading button is permitted only for a drop-down select and must be its first element child. The HTML Standard marks that button inert: it replaces the select's in-page rendering and is not a separate submit control. The option list, selected option, and form value still belong to the select. See the option page for the allowed option content and the exact relationship between option children, its label attribute, and selectedcontent.

Customizable drop-down select

A customizable drop-down keeps the native select control and its selection model while allowing structured markup for the button and picker content. The optional first-child button can contain one selectedcontent; the latter reflects the currently selected option's child nodes. This mechanism is enabled only for a single-select: it does not provide selected content for a multiple select.

<label for="fruit">Fruit</label>
<select id="fruit" name="fruit">
  <button type="button">
    <selectedcontent></selectedcontent>
    <span aria-hidden="true">⌄</span>
  </button>
  <div class="option-group">
    <optgroup>
      <legend>Fruit</legend>
      <option value="apple"><img src="apple.svg" alt="">Apple</option>
      <option value="pear"><img src="pear.svg" alt="">Pear</option>
    </optgroup>
  </div>
</select>
PartSpecification boundaryWhat to verify in an implementation
First-child buttonOptional, drop-down only, and inert; it is part of the select's renderingPicker opening, focus, keyboard behavior, and accessible name/state are still browser observations
selectedcontentCopies the selected option's child-node structure; it does not copy text from an option's label attributeCheck the displayed selected item after user and DOM selection changes
optgroup / legendA first-child legend supplies the group label; the group itself is not selectableCheck group label exposure and its relationship to child options
appearance: base-selectThe CSS Basic User Interface Module Level 4 Working Draft defines it for select and ::picker(select)Support, picker behavior, forced-colors behavior, and interaction must be measured per browser/version
select,
select::picker(select) {
  appearance: base-select;
}

The HTML structure and CSS styling are separate: appearance: base-select opts the select and its picker into a styleable base appearance where implemented. The CSSWG document is a Working Draft, and this page does not infer a browser support matrix from the draft or from the selected legacy-select observations. See optgroup, option, and legend for their respective content and label rules.

Single selection, multiple selection, and display size

ConditionMeaning / display boundaryMain consequence
No multipleSingle selectionNormally one option is selected; selecting another option makes the others not selected
multiple presentMultiple selectionZero or more options can be selected, and multiple values can be submitted
size greater than 1May be rendered as a list boxMultiple visible rows and an accessibility mapping boundary are involved
size omittedThe default display size depends on the selection modeDo not confuse the attribute value with the historical IDL default behavior

multiple is not only a visual switch. It changes the number of values, interaction model, form submission, and accessibility mapping boundary.

Option list and selectedness

The option list is formed from the option elements in the select's relevant tree order. An optgroup organizes options; it is not itself selectable.

ConceptMeaningWhat to check
selected attributeMarkup-level initial selection requestIt is related to the default state used by form reset
SelectednessWhether an option is selected nowIt can change through user interaction or DOM APIs
selectedIndexThe index of the first selected optionIt is -1 when no option is selected
valueThe value of the first selected optionIt is the empty string when no option is selected
<select id="format" name="format">
  <option value="html">HTML</option>
  <option value="markdown" selected>Markdown</option>
</select>

The selected attribute and current selectedness are not the same thing. Use select.value, select.selectedIndex, and select.selectedOptions according to whether the code needs the current value, index, or selected option collection.

Content attributes and form association

AttributeRoleCondition / boundary
nameName used by form submission and form.elementsGive the submitted control a meaningful name
multipleAllows zero or more options to be selectedChanges submitted value count and UI / AAM boundaries
sizeNumber of option rows to showA valid positive non-negative integer; also relates to display and accessibility state
requiredRequires a value to be selectedHas a special boundary with a placeholder label option
disabledMakes the control non-interactiveRelates to constraint validation and exclusion from form submission
formExplicitly sets the form ownerCan associate a control outside the ancestor form with a form in the same document
autocompleteAutofill hintUses the shared form-control autocomplete processing

Associate a label explicitly by matching the label's for and the select's id, or implicitly by placing the select inside the label.

<label for="country">Country</label>
<select id="country" name="country">
  <option value="jp">Japan</option>
  <option value="us">United States</option>
</select>

Required and the placeholder label option

For a single-select whose required attribute is present and whose display size is 1, the first option can be a placeholder label option when it is a direct child of the select and has an empty value. Leaving that option selected makes the control suffer from the missing-value constraint.

<select name="plan" required>
  <option value="">Choose a plan</option>
  <option value="basic">Basic</option>
  <option value="pro">Pro</option>
</select>

When multiple is present or the display size is greater than 1, the single-select placeholder rules do not apply unchanged. Check the selection mode, display size, option position, and option value together.

Form submission

When a select is not disabled and satisfies the relevant submission conditions, its name and the values of its selected options participate in the form's entry list. A single select normally contributes one value; a multiple select can contribute several entries with the same name.

This boundary includes more than reading a value: successful controls, disabled state, form owner, entry-list construction, encoding, and server-side interpretation all matter. Browser constraint validation is not a replacement for server-side validation.

DOM interface

The select element is exposed as HTMLSelectElement. The interface covers the option collection, current selection, form validation, and label relationship.

const select = document.querySelector('select');

select.value;
select.selectedIndex;
select.selectedOptions;
select.options;
select.form;
select.labels;
select.validity;
select.checkValidity();
APISummary
optionsThe HTMLOptionsCollection for the option list
selectedOptionsAn HTMLCollection of options whose selectedness is true
selectedIndexIndex of the first selected option; it can also be set
valueValue of the first selected option; it can also be set
willValidate / validityParticipation in constraint validation and current state
checkValidity() / reportValidity()Check constraints and report them to the user
showPicker()Shows the applicable picker UI subject to activation and security conditions

Fact / Evidence

Major facts are mapped to their conditions, review state, and specification locations. Browser behavior and assistive-technology observations are separated into Implementation Evidence below.

Major facts and evidence locations
TypeFact / claimCondition / scopeStatusEvidence
SPECThe select element represents a form control for selecting from a set of options.The HTML Standard select element definition.ReviewedHTML Standard: the select element
SPECWithout multiple selection is single; with it, zero or more options may be selected.Selection mode and form-submission boundary.ReviewedHTML Standard: multiple
SPECThe selected attribute, selectedness, selectedIndex, and value are distinct concepts.Initial state, user interaction, and current DOM state.ReviewedHTML Standard: the option element
SPECA required single select can have a placeholder label option when the specified conditions are met.No multiple, display size 1, direct first option, and an empty value among the relevant conditions.ReviewedHTML Standard: placeholder label option
SPECselect is form-associated, so name, form, disabled, and constraint validation interact.Form owner, successful controls, entry list, and validation infrastructure.ReviewedHTML Standard: form control infrastructure
SPECA drop-down may have an inert first-child button; its selectedcontent reflects selected option children in single-select mode, not the option's label attribute.Customizable drop-down content model and selectedcontent update algorithm.ReviewedHTML Standard: select · selectedcontent

Evidence

  1. HTML Standard: The select element — meaning, categories, content model, attributes, selection, and DOM interface
  2. HTML Standard: The option element — option values, selectedness, the selected attribute, and option lists
  3. HTML Standard: The optgroup element — grouping options and labels
  4. HTML Standard: The selectedcontent element — selected option child copying and the single-select boundary
  5. CSS Basic User Interface Module Level 4, Working Draft (6 May 2026): appearance — base-select on select and ::picker(select)
  6. HTML Standard: Form control infrastructure — form owners, disabled state, constraint validation, and shared control infrastructure
  7. HTML Accessibility API Mappings — accessibility API boundaries for list-box and drop-down-box select controls

Implementation Evidence

Browser implementation, WPT, and accessibility observations are recorded separately from specification claims. Unexecuted items are not treated as confirmed.

Shared fixture / environment: A labeled single select, an empty-valued placeholder label option, required, a multiple select, a disabled option, and a submit button inside <form id="evidence-form" method="get">. Chrome 152.0.0.0 / Windows NT 10.0 / checked 2026-09-13.

Implementation evidence register for the select element
TypeObservation scopeConditions to recordStatus
IMPL Single / multiple mode, selectedness, value, selectedIndex, required, disabled, and form owner Initially the single select had value="", selectedIndex=0, selectedOptions.length=1, and matched :invalid; the multiple select had no selected options. Changing the single select to ja and the multiple select to a,c updated the values; disabled option b remained unavailable. Both form owners were evidence-form. Reviewed
WPT Tests related to the select element, option selectedness, required, multiple, and form submission Mapped to select-parsing.html, select-options-id.html, and select-events.optional.html. On 2026-09-15 in Chrome 152.0.0.0 / Windows NT 10.0, parsing and options passed 20/20 on wpt.live; events passed 0/2 because action_sequence() is not implemented by testdriver-vendor.js. Unselected WPT coverage and other browsers remain open.

The test version used was not recorded. The linked test may change, so this result cannot be repeated with certainty against the same version.

Partial (20/22 pass)
WPT Customizable select interactions, selectedcontent updates, rich option content, and optgroup legend 2026-09-25 / Chrome 153.0.8010.53 / Windows 11 Pro build 26200 / wpt.live. Ran 7 files / 41 subtests: 40 pass, 1 fail. In selectedcontent-mutations.html test6, selectedcontent child copying in a multiple select differed from the expected result. The optgroup legend visual reftest was not evaluated.

The test version used was not recorded. The linked test may change, so this result cannot be repeated with certainty against the same version.

Partial (40/41 pass; 1 fail)
AAM Accessible name from label, single select drop-down box, multiple / size > 1 list box, required and disabled states Chrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13. The AX tree exposed the single select as a collapsed pop-up button named “単一選択” and the multiple select as a list named “複数選択”; selected and disabled option states were also reflected in the tree. Observed
AAM Customizable select button and picker, selectedcontent, rich option names, optgroup legend, keyboard and selected state Chrome 153.0.8010.53 / Windows 11 Pro / 2026-09-25. Browser AX exposed a collapsed pop up button value span one, expanded picker items span one and new span two, and a legend named group in the optgroup fixture. Windows UIA did not expose the page as a ControlType.Document node; Narrator/NVDA speech was not measured. Partial (Chrome browser AX only)

Use the WPT repository for test correspondence and HTML-AAM for the accessibility mapping baseline.

Coverage / Open Issues

  • ReviewedMeaning, categories, content model, single / multiple modes, option lists, main attributes, and the HTMLSelectElement API overview
  • ReviewedThe basic boundary between the required attribute, placeholder label options, the selected attribute, and selectedness
  • OpenAll branches of the form submission algorithm, entry list, disabled options, encoding, and the formdata event
  • ReviewedSpecification-defined customizable drop-down structure, inert first-child button, selectedcontent child-copying and single-select boundary, optgroup legend precedence, and the CSSWG base-select styling hook
  • OpenBrowser/version matrix for picker opening, keyboard and pointer interaction, rendering, forced-colors, and selectedcontent update behavior; targeted WPT runs and cross-browser accessibility observations remain pending
  • OpenThis implementation and AX observation covers one Chrome environment only. Complete HTML-AAM mappings, assistive-technology observations, WPT execution, historical changes, compatibility, and Expert-gap Review remain unregistered.

This page is initial coverage. It does not claim that the entire select element has been verified, that all browsers expose the same UI and interaction, or that assistive technologies produce identical results.

Related surface

For a beginner-friendly explanation of options, display labels and submitted values, and selected / disabled choices, see the option element page in Yugien. Choice grouping and disabled-group boundaries are covered by optgroup in Atlas. The full select selection model is covered by the select element in Atlas; shared submission and constraint-validation processing by the form element in Atlas; label association by the label element; and boundaries with other form controls by the input and button elements.