Re: Will behaviors be added to CSS?

Ian Hickson writes:
> 
> On Tue, 15 Jul 2003, Hans Meiser wrote:
> >
> > I believe Behaviors are a quite nifty feature of IE, because you can
> > dynamically create elements and define their look as well as their behavior
> > just by assigning them to the appropriate CSS class.
> 
> There is also XBL, as implemented by Mozilla, which does much the same
> thing.
> 
> > Are there any plans to add Behaviors to CSS?
> 
> At least two members of the working group are actively looking at these
> technologies, and there has been some public work on this before. However,
> I don't think there are any official plans at the moment.

I usually refer to the work on behaviors in CSS as "dormant." There is
no new draft in sight, but no formal decision to abandon it either. If
a compelling idea comes up (and somebody to champion it), it may yet
wake up.

My own feelings on behavior are mixed. I like the idea from XBL to
attach a fairly complex widget to an element, so you can make a single
element in the source have several stylable components, without
needing a full transformation language. There are some other ideas for
that in the CSS3 generated content module[1]. But though it is
interesting to be able to do that, I don't think we've seen the right
model and syntax yet. Maybe some ideas from "Frame-based layout via
Style Sheets"[2] are more promising. Although I would be even happier
if it turns out we don't need such transformations at all, because
'appearance'[3] is enough.

[1] http://www.w3.org/TR/2003/WD-css3-content-20030514
[2] http://www.w3.org/TR/NOTE-layout
[3] http://www.w3.org/TR/2003/WD-css3-ui-20030703/#appearance

I also think that some things that are called behavior are essentially
style, such as the mouse pointer shape, whether a selection is a menu
or a set of radio buttons, the color of selected text, the icon used
for drag and drop, whether a link is active or not, whether a link is
shown as a hyperlink or a transclusion, etc. In fact, with the advent
of the abstract forms language of XForms, CSS will likely have to
extend its features in that area.

What I don't like is the use of non-declarative code in various
proposals for behaviors. I don't want to execute some arbitrary Web
author's code. I'm willing to download and install a plug-in, from a
reputable source or when I get the source code with it, but I don't
consider a simple HTTP GET request enough permission to allow the
server to execute code on my machine. Javascript is always off in all
my browsers (or I use a browser that doesn't have Javascript). (That's
not just because of security, but also because so much Javascript
tries to change the behavior of my browser, which means I can't work
normally anymore. And there's no cascade in Javascript to let the user
override.)

Javascript also has the wrong model. It relies on self-modifying code,
a concept that was abandoned in the 1950's already.

Java would be more acceptable, since it runs in its own sand box and
data and doesn't mess with the document it is embedded in.

But I don't want CSS to have to rely on another language. It may well
be that behaviors are locally implemented in Javascript, but the code
that is executed should have been installed on the client beforehand.
The style sheet only identifies which code to execute. CSS can provide
common behaviors, identified by name, and the browser invokes the
appropriate routine, just as it does when you say 'display: block'.

It is likely that certain things will then not be possible with CSS.
You will maybe not be able to write a button that evades you when you
try to click it. But if you want to do UI experiments, you can always
use Java. And when the experiment is successful, there may be a
revision of CSS (or a successor of CSS) that incorporates the new
behavior.



Bert
-- 
  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/people/bos/                              W3C/ERCIM
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 (0)4 92 38 76 92            06902 Sophia Antipolis Cedex, France

Received on Wednesday, 23 July 2003 14:13:17 UTC