- From: Maciej Stachowiak <mjs@apple.com>
- Date: Sat, 15 Sep 2007 23:01:19 -0700
- To: "public-html@w3.org WG" <public-html@w3.org>
- Message-Id: <E2432647-CC09-4F2F-BACE-95867D4C6C79@apple.com>
While working on examples for the "Degrade Gracefullly" principle, I realized that the Gecko handling of unknown elements makes it pretty hard to do graceful degradation for new block-level elements. I thought initially that just adding a "display: block" style rule would cut it, and that does work as expected in Safari and Opera. However, in Firefox, the open tags of known block-level elements force unknown elements to be closed. This results in elements like <article> or <section> being siblings of their intended block children, rather than their parents, which makes it difficult to apply styling or event listeners. Here's a simple example: <!DOCTYPE html> <style> article { display: block; } .blogpost { border: 1px solid black; } </style> <article class="blogpost"> <h2>My article</h2> <p>This is an article.</p> </article> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cstyle%3E%0Aarticle%20%7B%20display%3A%20block%3B%20%7D%0A.blogpost%20%7B%20border%3A%201px%20solid%20black%3B%20%7D%0A%3C%2Fstyle%3E%0A%3Carticle%20class%3D%22blogpost%22%3E%0A%3Ch2%3EMy%20article%3C%2Fh2%3E%0A%3Cp%3EThis%20is%20an%20article.%3C%2Fp%3E%0A%3C%2Farticle%3E%0A Safari and Opera put a border around the article, but Firefox does not, since the <h2> and <p> end up as siblings instead of children of <article>. It might be possible to handle this using script to fix up the DOM, but there's no marker indicating where the <article> should have ended, so it would require adding some special element at the end inside every use of a block-level element, or else some messing around with ids or classes. Since Firefox seems to have a reasonably fast uptake rate for new versions, it would help a lot if the parsing of unknown elements were changed to allow block-level elements, well in advance of widespread adoption of HTML5. This has apparently been filed already as <https://bugzilla.mozilla.org/show_bug.cgi?id=311366 >. Can any Mozilla representatives in this group comment on whether it's possible to fix this for Firefox 3 or otherwise relatively soon? Regards, Maciej Note: handling of new block elements will be problematic in IE as well for other reasons. I'm writing a separate email about that.
Received on Sunday, 16 September 2007 06:01:33 UTC