- From: Michel Fortin <michel.fortin@michelf.com>
- Date: Wed, 30 Aug 2006 13:21:10 -0400
Le 30 ao?t 2006 ? 4:31, Anne van Kesteren a ?crit : >> The meaning of your markup is that you inserted and deleted some >> text within each list item, not that you added or deleted a list >> item like in mine. Semantically there is a difference, subtle >> maybe but still there. > > That depends on the definition. Sure, the definition could say anything. But it also need to be coherent with what is already defined as well as with author expectations (to a degree) if we want to see it used correctly. Since enclosing a <p> element within <ins> means you added a paragraph, it would only make sense to enclose a <li> element within <ins> to signify you added a list item. On the other side, disallowing <ins> and <del> in list context defies the expectation that you simply have to wrap what was inserted or deleted within <ins> or <del> to express what changed in a document. If the spec continues to disallow these elements in some contexts, it should be made more explicit. The most convincing reason I've seen for keeping such an exception is backward compatibility in a table context. While something like this would make perfect sense to me as an indication that a new row was added to a table: <table> <tr><th>Some Header</th><th>Some Header</th></tr> <tr><td>Some Data</td><td>Some Data</td></tr> <ins><tr><td>New Data</td><td>New Data</td></tr></ins> </table> ... browsers just won't allow <ins> inside the table; they'll take the <ins> element and put it just before the table in the DOM. But then it wouldn't be the first backward compatibility issue of this kind: put a paragraph within a <section> element and look at the resulting DOM in Mozilla, or Opera 7, and you'll have a similar problem. >> Also, while your markup gives the same visual rendering while >> using the default browser stylesheet (which underlines <ins> and >> overstrikes <del>), the result will be completely different if you >> want to hide the inserted or deleted parts. Using this CSS rule: >> >> del { display: none } >> >> you'll see a one-item list for my markup, while for your markup >> you'll see a second, empty list item. > > That could be seen as a limitation of the styling language. It has > been repeated many times on this list that styling should not be > taken into account when "designing" markup. And I agree with that, mostly. I think style should be taken into account last, that priority should be given to clarity, simplicity, and coherency. That said, the essence of my message was that if you can style -- or manipulate via the DOM -- a list-level <ins> or <del> element using the *same* rules you'd use for inline- or block-level <ins> or <del>, it makes things more coherent. Michel Fortin michel.fortin at michelf.com http://www.michelf.com/
Received on Wednesday, 30 August 2006 10:21:10 UTC