[html5] Question on label as a part of interactive content

Ian Hickson ian at hixie.ch
Tue Jul 15 12:29:15 PDT 2014

On Tue, 15 Jul 2014, Jukka K. Korpela wrote:
> 2014-07-10 22:57, Ian Hickson wrote:
> > On Wed, 2 Jul 2014, S Partha wrote:
> > > As per the spec
> > > http://dev.w3.org/html5/spec-preview/content-models.html#interactive-content,
> > > label element is marked as interactive without any exceptions. Label
> > > elements are still considered interactive, even if they don't have any
> > > labeled control. Is there a specific reason to treat labels this way?
> > Note that the link above is to a really old W3C copy of the spec. Here's
> > the latest:
> > 
> >     http://www.whatwg.org/html#the-label-element
> > 
> > To answer your question, though: it's actually just used as a way to 
> > make it non-conforming to put <label> elements (even labels without 
> > controls) inside <button> elements and <a> elements (and a few other 
> > minor cases). We don't want to allow those because if you ever do 
> > associate a control with such a label element, the result is very 
> > confusing to the user.
> So <label> is not allowed inside <a>. I wonder why it is allowed to nest 
> them the other way, since the argument looks equally strong for it.

You gave the very use case in your e-mail:

> This came into my mind when reading the question 
> http://stackoverflow.com/questions/24755802/a-link-inside-a-label-also-triggers-the-checkbox-how-to-prevent 
> where the code is:
> |<label><input type="checkbox"> I agree to the<a href="terms">terms</a> 
> and would like to continue</label>|

This is quite common and seems like a very valid thing to do.

> This creates obvious problems (the checkbox is toggled when following 
> the link, in most browsers). Disallowing <a> inside <label> (if 
> implemented in validators) would help to avoid such problems.

Such browsers are non-conforming. Also, I couldn't find any that act as 
you described.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the Help mailing list