HTML / Element / Initial coverage

<select>要素

状態: 初期Coverage 対象: HTML Living Standard 確認日: 2026-09-13

Technical Summary

select要素は、optionの集合から値を選択するフォームコントロールを表します。multiple属性がない場合は1つのoptionを、ある場合は0個以上のoptionを選択できます。

selectはform-associated、labelable、listed、submittable、resettableな要素です。現在の選択はoptionのselectednessとして管理され、フォーム送信では選択されたoptionの値がentry listに関係します。

Definition / Categories

項目仕様上の整理
意味optionの集合から値を選ぶためのコントロール
Contextphrasing contentが期待される場所
Categoriesflow、phrasing、interactive、listed、labelable、submittable、resettable、form-associated、palpable
Content modeldrop-down boxでは0個または1個の先頭のbutton、続いてoptionoptgrouphr、script-supporting、noscriptdivなど
Tag omission開始タグ・終了タグとも省略不可

実装者向けの最新のselect拡張では、先頭のbuttonselectedcontentが関係する境界があります。本ページの初期Coverageでは、従来から広く使われるoptionoptgroupを中心に整理し、カスタマイズされたselectの実装差はOpen Issuesに残します。

単一選択・複数選択・表示サイズ

条件意味 / 表示上の境界主な帰結
multipleなし単一選択選択されたoptionは通常1つ。別のoptionが選択されると、他のoptionのselectednessはfalseになる
multipleあり複数選択0個以上のoptionを選択でき、複数の値が送信対象になる
sizeが1より大きいlist boxとして表示されうる複数行の選択UIとアクセシビリティマッピングが関係する
size省略単一選択では表示サイズ1、multipleでは実装上の既定表示サイズが関係するsize属性の値とIDLの既定値を混同しない

multipleは単なる表示切替ではなく、選択できる値の数、操作、フォーム送信、アクセシビリティ上の役割境界に影響します。

Option listとselectedness

selectのoption listは、子孫のoptionを仕様上の順序で集めたものです。optgroupは選択肢を整理するグループであり、選択できる対象はoptionです。

概念意味確認点
selected属性HTMLに記録された初期選択の指定リセット時の基準になるdefault selectednessと関係する
selectedness現在そのoptionが選択されているかという状態ユーザー操作やDOM APIで変化する
selectedIndex選択されたoptionのうち、最初のもののindex選択がない場合は-1
value最初に選択されているoptionの値選択がない場合は空文字列
<select id="format" name="format">
  <option value="html">HTML</option>
  <option value="markdown" selected>Markdown</option>
</select>

属性のselectedと、ユーザーが現在選んでいるselectednessは同じものではありません。DOMで現在値を読むときは、select.valueselect.selectedIndexselect.selectedOptionsを目的に応じて使います。

主要属性とフォーム関連性

属性役割条件 / 境界
nameフォーム送信とform.elements APIで使う名前送信対象として意味のある値を持たせる
multiple0個以上のoptionを選べるようにする送信される値の数とUI・AAMの境界を変える
size表示するoption数の目安正のvalid non-negative integer。表示とアクセシビリティの状態に関係する
required値の選択を必須にするplaceholder label optionと組み合わせた単一選択で境界がある
disabledコントロールを操作不可にするconstraint validationとフォーム送信から除外される条件に関係する
formform ownerを明示的に指定する祖先formの外に置く場合でも、同じdocument内のformと関連付けられる
autocompleteautofillのヒントフォームコントロール共通のautocomplete処理で解釈される

labelとの関連付けは、labelのforとselectのidを一致させる明示的な方法、またはlabelの子孫にselectを置く暗黙的な方法で行います。

<label for="country">国</label>
<select id="country" name="country">
  <option value="jp">日本</option>
  <option value="us">米国</option>
</select>

Requiredとplaceholder label option

単一選択で、requiredがあり、display sizeが1の場合、最初のoptionがselectの直接の子で、値が空文字列なら、そのoptionはplaceholder label optionになり得ます。この状態のままでは、選択がmissingとしてconstraint validationに失敗します。

<select name="plan" required>
  <option value="">選んでください</option>
  <option value="basic">ベーシック</option>
  <option value="pro">プロ</option>
</select>

multipleまたはdisplay sizeが1より大きい場合には、単一選択のplaceholder label optionと同じ条件をそのまま適用できません。requiredの有無だけでなく、選択モード・表示サイズ・optionの位置と値を合わせて確認します。

Form submission

selectがdisabledでなく、送信に必要な条件を満たす場合、nameと選択されたoptionの値がformのentry listに関係します。単一選択では通常1つ、複数選択では選択されたoptionごとの複数のentryが同じ名前で作られます。

この処理は、選択値の取得だけでなく、successful controls、disabled、form owner、entry list構築、encoding、サーバー側の解釈と一緒に確認する必要があります。ブラウザーのconstraint validationはサーバー側検証の代替ではありません。

DOM Interface

select要素はHTMLSelectElementとして公開されます。選択肢の集合、現在の選択、フォーム検証、labelとの関係を同じインターフェースから扱えます。

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

select.value;
select.selectedIndex;
select.selectedOptions;
select.options;
select.form;
select.labels;
select.validity;
select.checkValidity();
API概要
optionsoption listを表すHTMLOptionsCollection
selectedOptionsselectednessがtrueのoptionのHTMLCollection
selectedIndex最初に選択されたoptionのindex。設定も可能
value最初に選択されたoptionの値。設定も可能
willValidate / validityconstraint validationへの参加と現在の状態
checkValidity() / reportValidity()制約検証の結果確認とユーザーへの報告
showPicker()該当するpicker UIを表示するAPI。activation・security条件を伴う

Fact / Evidence(主張 / 根拠)

主要Factを、適用条件・確認状態・仕様上の根拠位置と対応付けています。ブラウザー実装や支援技術の観測は、仕様上の主張とは別に下のImplementation Evidenceへ分けています。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPECselectはoptionの集合から値を選択するform controlを表します。HTML Standardのselect element定義。確認済みHTML Standard: the select element
SPECmultipleがない場合は単一選択、ある場合は0個以上の選択です。selectの選択モードとform submissionの境界。確認済みHTML Standard: multiple
SPECselected attribute、selectedness、selectedIndex、valueは異なる概念です。初期状態、ユーザー操作、DOM APIによる現在状態を区別する場合。確認済みHTML Standard: the option element
SPECrequiredの単一selectでは、条件を満たす空値の先頭optionがplaceholder label optionになります。multipleなし、display size 1、selectの直接の最初のoptionなどの条件。確認済みHTML Standard: placeholder label option
SPECselectはform-associatedで、nameformdisabled、constraint validationが相互に関係します。form owner、successful controls、entry list、validationの共通基盤。確認済みHTML Standard: form control infrastructure

Evidence

  1. HTML Standard: The select element — 意味、category、content model、属性、選択処理、DOM interface
  2. HTML Standard: The option element — optionのvalue、selectedness、selected attribute、option list
  3. HTML Standard: The optgroup element — optionのグループ化とlabel
  4. HTML Standard: Form control infrastructure — form owner、disabled、constraint validation、フォームコントロール共通基盤
  5. HTML Accessibility API Mappings — list box / drop-down boxとしてのselectのアクセシビリティAPI境界

Implementation Evidence

仕様上の主張とは別に、ブラウザー実装・WPT・アクセシビリティ観測を記録します。未実施の項目は確認済みとは扱いません。

共通fixture / 実行環境: <form id="evidence-form" method="get">内に、label付きの単一select、空値のplaceholder label option、requiredmultiple select、disabled option、submit buttonを配置。Chrome 152.0.0.0 / Windows NT 10.0 / 確認日 2026-09-13。

select要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPLsingle / multiple、selectedness、valueselectedIndexrequireddisabled、form owner初期状態はsingleのvalue=""selectedIndex=0selectedOptions.length=1:invalid、multipleは未選択。singleをja、multipleをa,cへ変更すると、それぞれvalueとselected optionsが更新され、disabled option bは選択不可。両方のform ownerはevidence-form確認済み
WPTselect element、option selectedness、required、multiple、form submissionに関係するテストとの対応select-parsing.htmlselect-options-id.htmlselect-events.optional.htmlを対応付け。2026-09-15 / Chrome 152.0.0.0 / Windows NT 10.0 / wpt.liveでparsing・optionsは20/20 pass、eventsはtestdriver-vendor.jsのaction_sequence()未実装により0/2 pass。選定外のWPTと他ブラウザーは未評価部分実行(20/22 pass)
AAMlabelからのaccessible name、single selectのdrop-down box、multiple / size > 1のlist box、required・disabled stateChrome 152.0.0.0 / Windows NT 10.0 / 2026-09-13。AX treeでsingleはlabel「単一選択」付きのcollapsed pop up button、multipleはlabel「複数選択」付きのlistとして公開。選択肢のselected・disabled状態もtreeに反映観測済み

WPTの対応付けにはWPT repository、アクセシビリティの基準にはHTML-AAMを参照します。

Coverage / Open Issues

  • 確認済みselectの意味、category、content model、single / multiple、option list、主要属性、HTMLSelectElement APIの概要
  • 確認済みrequiredとplaceholder label option、selected attributeとselectednessの基本境界
  • 未完了form submission algorithm、entry list、disabled option、encoding、formdata eventの全分岐
  • 未完了customized select、先頭button、selectedcontent、picker UI、ブラウザー別の実装差
  • 未完了今回の実装・AX観測はChrome 1環境のみ。HTML-AAMの全mapping、支援技術ごとの観測、WPT実行、歴史的変更、互換性、Expert-gap Reviewは未登録

このページは初期Coverageです。確認済みの範囲を示すものであり、select要素全体の検証完了、すべてのブラウザーで同じ表示・操作になること、または支援技術で同じ結果になることを主張しません。

Related surface

初心者向けのoptionの作り方、表示名と送信値、selected / disabledの使い方はYugienのoption要素ページを参照してください。選択肢のグループ化とdisabledの継承境界はAtlasのoptgroup要素、selectの選択モデル全体はAtlasのselect要素、送信とconstraint validationの共通処理はAtlasのform要素、フォームコントロールとの関連付けはAtlasのlabel要素、他のフォーム部品との境界はinput要素button要素でも確認できます。