Re: Don't reopen active formatting elements for whitespace

On Thu, 16 Jul 2009, Simon Pieters wrote:
>
> Consider the following markup (note missing </a>):
> 
> <ul>
> <li><a href="1">foo</li>
> </ul>
> <ul>
> <li><a href="2">bar</a></li>
> </ul>
> 
> With an HTML5 parser this will result in 3 extra 'a' elements. Firefox 3.5
> seems to not create them for line breaks, but does create them for tabs and
> spaces (why?). Safari matches the spec. Recreating them screws up keyboard
> navigation in Firefox. Safari seems to skip links that have 0 width or 0
> height in the tab order.
> 
> I think it would be better to not reopen formatting elements upon seeing a
> character token that consists of just whitespace.
> 
> Whether the leading whitespace in " x" in
> 
> <div><a></div> x
> 
> should be put inside the link or not I don't know. Firefox doesn't put it
> inside the link (if it was a linebreak instead).

I actually studied this quite carefully when originally writing the spec, 
and originally made whitespace not reopen formatting elements, but it 
turns out that this causes incompatibilities with IE in a number of cases 
that are quite hard to explicitly handle separately. I agree that it leads 
to an unfortunate number of nodes near whitespace.

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

Received on Wednesday, 29 July 2009 19:00:24 UTC