- From: David Hyatt <hyatt@apple.com>
- Date: Sun, 5 Jan 2003 01:22:22 -0800
- To: Shelby Moore <shelby@coolpage.com>
- Cc: www-style@w3.org
On Sunday, January 5, 2003, at 12:30 AM, Shelby Moore wrote: > > Now that we agree that specification does not completely _control_ > semantics, because implementation does also _control_ semantics (i.e. > that > semantics is not orthogonal to implementation)[1], then yes I AGREE > this > becomes a crucial part of discussion. > I didn't agree to those points (which isn't to say that I disagree... I simply haven't read enough of the back posts yet to know what's going on) :) > Indeed XBL has infinitely more power to change semantic implementation > than > CSS does, because XBL can replace the implementation of HTML 4.01 tags > and > it can define implementation of new tags. > > Afaik CSS can not generally do this. > Can you clarify what you mean when you say "implementation"? That has a very specific meaning in the context of XBL (i.e., the <implementation> element), so I want to make sure I understand what you mean here. CSS can decide how something will be rendered, e.g., for some made up tag you could say: goo { display: table } and suddenly goo is a table. I guess I'm curious at what point the choice of render object starts dictating semantics. Does "goo" have some meaning now that we know it will be a table? Is it specifically event handlers that you object to? > Not true. The <handler> syntax merged with <content> feature is what > really makes it different than CSS > Handlers do give you a lot of power, but they are necessary for certain presentational effects. For example, maybe you want the letters in a link to pulse when you mouse over a link. This effect is purely presentational, and CSS alone cannot achieve it. > >> I would argue that this feature has no more effect on >> semantics than the CSS 'display' property. Using pure CSS, I can turn >> an <li> into a table-cell, or make a <table> into a block, or generate >> content before and after an element. > > > I agree that the generated content features of CSS are dangerous, but > not > so much, because you can not (afaik) change a <select> into a submit > button > using CSS. You can with XBL. > You could use only CSS and make all <select>s into static text runs. The ability to pick choices could be taken away using only CSS. Does this mean that CSS has changed the semantics of the select if it does this? As for changing a <select> into a submit button, remember, XBL cannot alter the original document. If the select has child options, then the only way to hide those options is with CSS. XBL alone cannot do this. (XBL can position the options somewhere within an anonymous content template, but CSS would have to be used to hide the options). So while you are right that a <select> can in effect be presented as a submit button, the only real difference I see between CSS and XBL in this case is that the former's generated content is limited, while the latter can generate arbitrary markup. Both can dramatically alter the appearance and presentation of a <select> to the point where it is unrecognizable (and unusable). > I am not against events (because we can do that now with HTML events). > I > am just against merging into the CSS layer all those dangerous semantic > features. XBL would be okay if it was orthogonal to CSS and DOM. > Then it > would be essentially XSLT. > I actually envisioned another form of binding for XBL (in addition to CSS and the DOM), and that was through a processing instruction in the document that would then use an XPath expression to attach a binding. Note that XBL itself is largely agnostic regarding how it is bound. The goal was to allow for maximal flexibility by implementing both a DOM mechanism and a CSS mechanism for binding. > Thanks for supporting my argument of how dangerous it is and how > brittle > code has already been written. Maybe you could elaborate on why XBL bound through CSS is dangerous. Putting aside the arguments over what constitutes semantics for a moment, we all agree that XBL can essentially morph on element into an entirely different element, since it can essentially hide the element's original content and generate some new anonymous content of a specific type. This does in effect give CSS (using XBL) the power to render an element as though it were any other kind of element, even though the source document's DOM remains unaltered. So my (possibly naive) question is this: what is so horrible about a world in which CSS has that kind of power? dave (hyatt@apple.com)
Received on Sunday, 5 January 2003 04:23:25 UTC