On 29/09/2009 03:21, Tab Atkins Jr. wrote:
On Mon, Sep 28, 2009 at 9:18 PM, Marius Gundersen<[email protected]> wrote:
Shouldn't you always close the tags, either self-closing or with a separate
close tag? That is, this is the correct way to do it:
<video width="640" height="360" style="color:red">
<source src="bunny.ogv" type="video/ogg" />
<source src="bunny.mp4" type="video/mp4" />
</video>
<p>Text after the video element.</p>
In the HTML syntax of HTML5, no, void elements do *not* have to be
explicitly closed. You *can* put the trailing slash on them, but it
doesn't do or mean anything; it's simply ignored.
If the content is served as XHTML then it would have the same effect as
adding the closing </source> tags. For a JavaScript solution I would
like to avoid having to require XHTML. This is further complicated by a
new discovery, Safari 3 completely ignores <source> elements. They don't
appear in the DOM tree at all. But that's a separate problem. :)
It's probably too late to change the spec. But the Opera bug I pointed
out is serious enough to consider an alternative solution. Allowing
closing tags for <source> would solve the problem. I'm not sure of the
implications for the defined rendering models in HTML5.
Just to reiterate, Opera<10 treats all unknown elements as container
(flow) elements. That means that as soon as it encounters a <source>
tag, all of the following elements are *children* of the <source>
element. This makes all DOM queries and CSS rules completely useless.
Allowing a closing </source> tag solves the problem.
-dean