Re: Can cascading work?
Thanks for your interesting note Todd. I've been struggling with this
cascading issue myself recently. I support the cascade's goals, but
every time I think about adding them to DSSSL (just as a thought
experiment!) I think of how messy any system that uses them would be,
and how seldom they would actually be useful. It is too general a
solution to a very specific set of problems. I feel that these
criticisms apply to CSS as much as to DSSSL.
The Dangers of Combination
Combining three levels of styles (UA, author, reader) without
communication between the parties is probably not a good idea as you
point out. It doesn't result in good style. It doesn't result in good
accessibility. And as a "computer person" it bothers me because it can
surpress authorial meaning without warning.
These issues are well explored at the URL Todd gave:
Unfortunately, he doesn't really address the issue of generic markup.
Documents will always need different structures. Whether it is achieved
through CLASSes or new tags, it is necessary and it is coming, and we
must deal with it. I'm not ready to receive arbitrary SGML documents
with no stylesheet and I presume that nobody else is either.
The Uselessness of Local Override
Any interesting override probably should not be applied on an element by
element basis. If you are colourblind, then you need a way to remap ALL
colours, used ANYWHERE, even on elements and classes you have never
heard of, to black and white. If you are nearsighted, you need to remap
all small fonts. This suggests to me that CSS is actually a step
backwards. In my UA today (IE 3.0) I can already make all of the fonts
bigger with a button click (my wife uses this). I certainly hope that in
the future I don't have to write a stylesheet for it (especially one per
DTD!!). Let's face it, if you have special needs visually you will
simply turn stylesheets off or use Lynx. Thankfully most HTML documents
are still visible this way. CSS has played a major part in saving HTML
from becoming a huge presentational mess that would not be useful from
Lynx. So CSS is already a huge success in my book, but it is the SS
part, not the C part which has saved HTML. As far as I know cascading is
hardly ever used except as a short cut for "import the default UA
stylesheet with these overrides." So CSS is a success but we could drop
the cascading and it would continue to be. I advocate that.
What about XML? Sadly, in some ways XML will be a step backwards for the
visually impaired. That won't be able to predict tag names and ignore
stylesheets the way they do with HTML+CSS. On the other hand, the
information they are getting will be much more rich and perhaps
navigable in very powerful ways that can be optimized for their special
needs. But cascading is useless in an environment with no fixed tag
names. They need plain old override and they need a convenient user
interface for doing so.
I think that they also need parameterized stylesheets, which is
somewhere that DSSSL will shine. We can allow them to "pass in" a
font-size and choose all others as percentages of that. They can "pass
in" whether they need black or white display and the stylesheet author
can predict those needs. Instead of the general facility available in
CSS we must start asking people: "What is your disability" "What do you
need changed" "How can we change it." In other words, if the web is
going to be more diverse in the future, we must give responsibility back
to the authors to do the right thing, not require the users to become
masters of overriding stylesheets for hundreds of different DTDs (or
class-based variants of HTML).
Where a user is lucky enough to stumble upon a DTD that they are
familiar with (HTML, DocBook, TEI), they should a stylesheets, made,
perhaps, by W3C or the Yuri Rubinsky foundation, tailored for them.
There is no good reason to cascade the user's stylesheet with the
author's if the user already has a complete one. We should also
encourage authors to stick to well-known DTDs unless there is a good
reason to go beyond them. The war for valid documents isn't over! It's
just about to begin: XML should be used to give people freedom, but also
to re-enslave them to well-defined structures.
In short, I think that the cascade is a technological solution to a
problem that cannot be solved technologically (unfortunately). 3rd
parties must make accessible stylesheets. Authors must take
responsibility for accessability. Casual users must stick to well-known
DTDs (or DTD variants as in HTML w/ a particular CLASS set) with an
existing accessibility infrastructure. Professionals and corporate users
should only undertake to create a new DTD, tagset or "class set" when
they intend to back it up with an accessibility infrastructure. What I
mean by accessibility infrastructure is stylesheets, parameters, public
identifiers, "proper use" documentation, etc. We have a lot of work
ahead of us.
I don't expect that cascading will play a big part in that equation.