Re: Don't reopen active formatting elements for whitespace

On Wed, 29 Jul 2009 20:59:46 +0200, Ian Hickson <ian@hixie.ch> wrote:

> 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.

What are those cases? Do you know a page that breaks if we don't do this?

Clearly Firefox gets away with not reopening for LF characters.

-- 
Simon Pieters
Opera Software

Received on Wednesday, 29 July 2009 19:09:13 UTC