HTML / Element / Initial coverage

<label>要素

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

Technical Summary

label要素は、ユーザーインターフェース内のform controlに対するcaptionを表します。特定のlabelableな部品とは、for属性で明示的に指定するか、labelの中に部品を置くことで関連付けます。

関連付けは表示上の文字だけの問題ではありません。labelable要素の判定、同じtree内のID解決、labelクリック時のactivation behavior、DOM API、accessible nameの計算を分けて確認する必要があります。

Definition / Categories

HTML Standardにおけるlabel要素の基本構造
項目仕様上の概要
CategoriesFlow content、phrasing content、interactive content、palpable content
Contextphrasing contentが期待される場所
Content modelphrasing content。ただし、対象となるlabelable要素を除きlabelable要素の子孫を持たず、label要素の子孫も持たない
Tag omission開始タグ・終了タグとも省略不可
Content attributesGlobal attributesと、form controlを指定するfor属性
DOM interfaceHTMLLabelElement

labelは任意の要素の説明を付ける汎用的な見出しではありません。対象はlabelableなフォーム部品に限られ、label自身を入れ子にしたり、複数のlabelable要素を曖昧なまま含めたりする構造は避けます。

Labelable elements

HTML Standardでlabelの対象になり得る主な要素は次のとおりです。inputはHidden stateを除きます。

代表的なlabelable要素
要素確認する境界
button子孫の内容をlabelとするbutton。form-associatedでもある
inputHidden state以外の状態。typeにより入力・選択・送信などの処理が変わる
meter / output / progress値や処理結果を表すform-associated要素としてlabelとの関係を確認する
select / textarea選択部品・複数行入力部品のaccessible nameと操作対象を確認する
Form-associated custom element仕様上labelableとして扱われるカスタム要素では、ElementInternalsとlabelの関係も対象になる

divp、通常のspanなどはlabelableなform controlではありません。これらにforで関連付けても、labelのlabeled controlにはなりません。

Determining the labeled control

for属性による明示的な関連付け

<label for="email">メールアドレス</label>
<input id="email" name="email" type="email">

forが指定されている場合、その値はlabelと同じtreeにあるlabelable要素のIDでなければなりません。同じIDを持つ要素がある場合も、tree orderで最初に見つかる要素がlabelableであることが条件です。その要素がlabelのlabeled controlになります。

子孫による暗黙の関連付け

<label>
  メールアドレス
  <input name="email" type="email">
</label>

forが指定されておらず、labelにlabelableな子孫がある場合は、tree orderで最初のlabelableな子孫がlabeled controlになります。content model上、対象のlabelable要素以外のlabelable要素や、別のlabel要素を同じlabel内に置くことはできません。

Content model / ID境界

明示的な関連付けでは、単に文字列が一致するだけでは不十分です。次の条件を一緒に確認します。

  • forの値が、対象要素のidと一致する。
  • labelと対象要素が同じtreeにある。
  • tree orderで最初に一致する要素がlabelableである。
  • ページ内のidを重複させず、対象を一意に判定できる。

labelはform ownerを指定する要素ではありません。labelのform IDL属性は、関連するlabeled controlがform-associatedであれば、そのcontrolのform ownerを返しますが、label自身にform content attributeがあるという意味ではありません。

Activation behavior

labelの正確な既定表示とbehavior、とくにactivation behaviorはplatformのlabel behaviorに合わせるべきものとして仕様に記述されています。platformによっては、labelをクリックすると対象のcontrolへfocusしたり、controlへのclick eventを発生させたりします。したがって「labelは必ずチェックを切り替える」と一般化してはいけません。

label内のinteractive contentを対象とするevent、およびその子孫を対象とするeventについては、labelのactivation behaviorは何もしない境界があります。リンクや別のbuttonをlabel内に置く構造は、操作対象が競合するため避けるのが安全です。

DOM Interface

label要素はHTMLLabelElementとして公開されます。

const label = document.querySelector('label');
label.control; // labeled control または null
label.form;    // control の form owner または null
label.htmlFor; // for content attribute の反映値
  • controlは、labelのlabeled controlを返します。なければnullです。
  • formは、labeled controlがform-associatedであるとき、そのform ownerを返します。条件を満たさなければnullです。
  • htmlForは、for content attributeを反映する読み書き可能なIDL属性です。

Accessible nameとの関係

labelとの関連付けは、フォーム部品のaccessible nameを決めるnativeな情報源の1つです。HTML-AAMでは、controlにaria-labelaria-labelledbyがない、または計算結果が空である場合に、関連付けられたlabelのsubtreeのtext equivalentを使う規則が示されています。controlの種類や複数labelの有無によって計算条件は変わります。

placeholder、見た目の近くに置いたテキスト、CSSの::beforeなどを、labelとの関連付けの代わりに扱ってはいけません。

Fact / Evidence(主張 / 根拠)

主要Factを、適用条件・確認状態・仕様上の根拠位置と対応付けています。実装差異や未実施の観測は、下のImplementation Evidenceに分けています。

主要Factと根拠位置
種別Fact / 主張条件・範囲状態根拠
SPEClabelはユーザーインターフェース内のform controlのcaptionを表し、labelableなcontrolと関連付けられます。labelの意味、category、content model、関連付けを確認する場合。確認済みHTML Standard: the label element
SPECfor指定時は、同じtree内のID一致要素を解決し、tree orderで最初の要素がlabelableであればlabeled controlになります。for属性、id、同じtree、重複ID、labelable判定を合わせて確認する場合。確認済みHTML Standard: labeled control
SPECforがない場合は、label内でtree order上最初のlabelableな子孫がlabeled controlになります。暗黙の関連付けとlabelのcontent modelを確認する場合。確認済みHTML Standard: implicit label association
SPEClabelの正確な既定表示とactivation behaviorはplatformのlabel behaviorに合わせる境界を持ちます。labelへのuser activation、対象control、interactive content descendantを確認する場合。確認済みHTML Standard: label activation behavior
SPECHTMLLabelElementcontrolformhtmlForのAPIを公開します。labeled control、form owner、forの反映値をDOMから取得する場合。確認済みHTML Standard: HTMLLabelElement
AAM関連付けられたlabelのtext equivalentは、条件に応じてform controlのaccessible nameの計算に使われます。controlの種類、aria-label / aria-labelledby、複数label、label内のcontrolを確認する場合。確認済みHTML-AAM: Accessible Name Computations

Evidence

  1. HTML Standard: The label element — 意味、category、content model、for、labeled control、activation behavior、DOM interface
  2. HTML Standard: labelable elements — labelableなform-associated elementの範囲
  3. HTML Accessibility API Mappings — 関連labelを含むaccessible nameの計算
  4. Web Platform Tests — label association、activation、DOM API、accessibilityに関係するテストの対応付け先

Implementation Evidence

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

共通fixture / 記録: <form id="evidence-form" method="get">内に、type省略のinputfor/idによる明示関連、labelinputの暗黙関連、requireddisabledsubmitとtype省略のbuttonを配置しました。環境: Chrome 152.0.0.0(Windows NT 10.0) / 確認日 2026-09-12。

label要素の実装Evidence登録表
種別再現確認の範囲記録する条件状態
IMPLfor/idによる明示的関連付け、暗黙の子孫関連付け、label click時のfocus、control API共通fixtureをChrome 152.0.0.0 / Windows NT 10.0で確認。明示・暗黙のinputは各labels.length=1、明示labelのクリック後のactiveElement.idexplicit-inputでした。確認済み(Chrome 1台)
WPTlabelable要素、同じtreeのID解決、activation、HTMLLabelElement対応候補: labelable-elements.htmlforward-focus-to-associated-element.htmlclicking-interactive-content.html。2026-09-15 / Chrome 152.0.0.0 / Windows NT 10.0 / wpt.liveで3件を実行し68/68 pass。選定外のWPTと他ブラウザーは未評価部分実行(68/68 pass)
AAM関連labelから導かれるaccessible name、disabled stateのブラウザーAX観測同じfixtureのAccessibility treeで、明示・暗黙label付きinputがそれぞれ「Explicit name」「Implicit email」のtext fieldとして表示され、disabled fieldはdisabled状態で表示されました。観測済み(Chrome AX)

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

Coverage / Open Issues

  • 確認済みlabelの意味、category、content model、labelable要素、for/idと暗黙の関連付けの基本
  • 確認済みlabeled control、activation behaviorのplatform境界、HTMLLabelElementの主要API
  • 確認済み関連labelとform controlのaccessible nameに関するHTML-AAMの入口
  • 未完了ブラウザー別のfocus・click・default presentation、form-associated custom elementの実装差
  • 未完了正確なWPT対応、各platformのアクセシビリティツリー、支援技術ごとの観測、歴史的変更

このページは初期Coverageです。label要素と関連するすべてのフォーム処理、アクセシビリティ実装、ブラウザー差異の検証完了を主張するものではありません。

Related surface

初心者向けのforid、囲む書き方、フォーム部品へのlabelの付け方はYugienのlabel要素ページを参照してください。controlの状態はinput要素、送信とform ownerはform要素、labelableなbuttonはbutton要素でも確認できます。