The HTML <label>
element represents a caption for an item in a user interface.
Content categories | Flow content, phrasing content, interactive content, form-associated element, palpable content. |
---|---|
Permitted content |
Phrasing content, but no descendant label elements. No labelable elements other than the labeled control are allowed. |
Tag omission | None, both the starting and ending tag are mandatory. |
Permitted parents | Any element that accepts phrasing content. |
Permitted ARIA roles | None |
DOM interface | HTMLLabelElement |
This element includes the global attributes.
for
for
attribute is the labeled control for this label element. for
attribute and a contained control element, as long as the for
attribute points to the contained control element.form
HTML5 deleted<form>
element in the same document. This lets you place label elements anywhere within a document, not just as descendants of their form elements. HTMLLabelElement.form
attribute; it returns the form of which the label's associated control is a member, or null
if the label is not associated with a control or the control isn't part of a form.<label>
can be associated with a control either by placing the control element inside the <label>
element, or by using the for
attribute. Such a control is called the labeled control of the label element. One input can be associated with multiple labels.<label>Click me <input type="text"></label>
<label for="username">Click me</label> <input type="text" id="username">
Specification | Status | Comment |
---|---|---|
WHATWG HTML Living Standard The definition of '<label>' in that specification. | Living Standard | |
HTML5 The definition of '<label>' in that specification. | Recommendation | |
HTML 4.01 Specification The definition of '<label>' in that specification. | Recommendation | Initial definition |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes)[1] | (Yes) | (Yes) | (Yes) |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes)[1] | (Yes) | (Yes) | (Yes) |
[1] Starting with Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5), a bubbling click event triggers at most one <label>
, and the synthetic click event cannot trigger additional <label>
s. In Gecko, a click event will still bubble up past a <label>
, while in WebKit or Internet Explorer the click event will stop at the <label>
. The behavior prior to Gecko 8.0 (triggering multiple <label>
s) caused Firefox to stop responding (see bug 646157).
[2] The HTML specification was updated in April 2016 to deprecate the form
attribute. It's still available from script, but its definition has changed: it now returns the associated control's form, or null
if there is no associated control (that is, if HTMLLabelElement.control
is null
). See HTMLLabelElement.form
.
This change is implemented in Firefox 49.
<form>
, <button>
, <datalist>
, <legend>
, <select>
, <optgroup>
, <option>
, <textarea>
, <keygen>
, <fieldset>
, <output>
, <progress>
and <meter>
.
© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label