- From: Tommy Thorsen <tommy@kvaleberg.com>
- Date: Thu, 04 Dec 2008 11:34:56 +0100
Consider the following simple markup:
<!doctype html></br>
If I run it through my parser, which is implemented after the html5 
algorithm, the resulting dom is as follows:
<html>
    <head>
    <body>
The br end tag is a bit special, and should be handled as if it was a br 
start tag. What happens here is as follows: The "before head" insertion 
mode will, upon receiving a br end tag, create a head node and switch to 
the "in head" insertion mode. "in head" will close the head node and 
move on to the "after head" insertion mode. I was expecting "after head" 
to see the </br> and do like it does on a start tag, which is to create 
a body node and move to the "in body" state, but the </br> is just ignored.
I've changed my implementation of "after head" to handle </br> just like 
the "in head" insertion mode, which is:
    An end tag whose tag name is "br"
        Act as described in the "anything else" entry below.
This results in the following dom, for the example above:
<html>
    <head>
    <body>
       <br>
This matches Internet Explorer and Opera, but not Firefox and Safari. 
Then again, it looks like Firefox and Safari ignore all </br> tags.
Regards,
Tommy
Received on Thursday, 4 December 2008 02:34:56 UTC