- From: Jonny Axelsson <jax@opera.no>
- Date: Sun, 30 Sep 2001 14:00:53 +0200
- To: www-style@w3.org
- CC: bert.bos@sophia.inria.fr, Bjoern Hoehrmann <derhoermi@gmx.net>
30.09.01 07:59:06, Bjoern Hoehrmann <derhoermi@gmx.net> wrote:
>* Jonny Axelsson wrote:
>And they never will, since it would require additional information from
>somewhere outside. This is pretty much the XML+CSS discussion I've
>heard very often. People are somehow convinced, that it might be a good
>idea to use their new markup language and put it on the web using CSS
>to give it some presentational hints, e.g.
For the record I don't believe that. CSS enables presentation "views" of
data having a tree structure and doesn't change the data in any way.
This is handy when you know the data structure and want a visualization
of the current dat, but there are obviously other things you would want
to do to data too. What I meant is the flip side of that: If you do know
the data structure you can make a view of it, and this is a Good Thing.
>The key is that computers are able to understand the language,
>understand, not just dump displaying it. The whole Semantic Web is all
>about machines "understanding" our data.
I agree with that. Neither presentation (e.g. CSS) nor structure (e.g.
XML + namespaces + DTD/Schemas) are able to tell that two things in two
different vocabularies are "the same" or related under some meaning.
>CSS should not be used to fix bad document languages.
This is a an interesting topic, going far beyond CSS: what to do with
bad design. CSS is powerful enough to sweep problems under the carpet
and What You Don't See You Can Forget. Bad design can remain for
generations. E.g. current system *still* thirty years after must take in
account that some systems are allowed to octimate the bitstream, so
workarounds like Base64 are still in use. Some technologies have zero
tolerance (e.g. checksums and XML well-formedness). That is nice, but
also on a syntactical level, I fear zero friction globally interoperable
systems are not likely in the near future. We will need the Perls and
XSLTs and other methods for data massaging with the subsequent data
loss. As a user I would use all the tools at my disposition to make what
I am served more edible to me and others (in the case of CSS, "useless-
gunk {display: none}").
>I really see no good reason why CSS should provide any means to say
>"make this activateable and do this and that on activation",
Link activation is relevant for the user as well as the author. It can
be left to the UA as is currently the case (e.g. for IMG in Opera, press
"g" to cycle between embed, activate and none), but this is a poor
method as there is no way to take into account author hints and user
needs.
EXAMPLE: You are browsing the web on a small resolution screen (a tiny
device or using a huge magnification because you forgot your glasses at
home). Your favorite site is generally well written but uses big
navigational panels at the top, left and bottom. Right now you only want
the functionality not the pretty (and space wasting) looks, but you
don't want to turn off the other images, because they are useful to
squint at. So you use a style sheet that will display the images in the
main section, but not the ones in the navigational ones.
>>This is how and why Opera came to implement CSS type linking. We had
>>of course HTML linking, but we needed to implement linking in WML,
>your argument is a false argument. Setting up a database to make your
>application "know" that this element is in that language a link and the
>URI may be gathered from that attribute is the general concept, it just
>happend that you used CSS syntax to set up this database. Users don't
>have to attach style sheets using proprietary css properties and values
Well, I meant it more as a historical note than an argument as well as
to show an existing use of CSS linking. To my knowledge, I didn't work
for Opera at the time, that was the original motivation. My first
reaction was "what a strange thing to do", but then I realized that it
made perfect sense both from a practical and from a theoretical point of
view.
The links lie in the markup (or externally to them in the case of link
bases), but the use of them depend on the context. The original author
can't know what contexts it will be used in and it is highly likely he
will guess wrong. The text won't change, but the consequences of
"misjudging his audience" from a hypertextual point of view may be to
make the document useless. It can be correct in context A, and wrong in
context B. CSS may make the hypertext correct in both contexts (using
two different style sheets).
>This still requires conflict resolution. What to do about nested links?
>We have a lot of nested links in HTML, consider
>
> <a href='...'><img alt='...' longdesc='...' /></a>
>
>This is more inside CSS's domain, what to do here? How to provide means
>to the user to get the long descripting of the image and let them still
>be able to follow the link? The same might appear in blockquote
>elements, what to do with three links? Nested blockquotes, four links,
>oh my goodness.
There are three unresolved issues for hyperlinks,
(1) Nested links
(2) Multiple links on the same element
(3) Visually overlapping links
The first two aren't really CSS issues, but more general ones. CSS
customizes link functionality but doesn't add them (assuming that the
final spec hoobles/extends the final recommendation to only letting CSS
do whatever is considered the appropriate behavior). HTML avoided the
problem by saying that this can't happen, but it can.
(1) There are many ways to generate nested links (e.g. Javascript adds
quite a few). Informally they seem to follow a "natural" pattern, a
replaced element will lose all contained links as a part of the
replacement, e.g. the A in <img src="pic.png"><a
href="go_away.html"/></img> can't be activated if "pic.png" can be
accessed. Otherwise the innermost link (only) seems to be activated.
Clicking on <a href="#here">here or <a href="#there">there</a></a> goes
to "there" if the innermost link is activated, "here" otherwise.
(2) One element can have multiple links. The current CSS proposals are
hobbled so as this can't happen, XLink is not. Should multiple links be
allowed, is it desirable, what should be the resolution technique?
(3) The third (UI) problem is CSS's own. Generally the visual box model
of CSS correspond to the document tree structure. CSS1 had one
exception, float, given
<p>What to do with <a href="#there">a <b style="float: left">floated</b>
link</a>?</p>
the presentation would be ("_" delimiting a link to "there", one link,
two ranges):
_floated_ What to do with _a link_?
CSS2 inherited CSS-P (positioning, "layers"), this allows blocks to be
stacked on top of each other. As a consequence there are several
hyperlinking issues that I think are unresolved. If there is a box on
top of another, one or both which contains links that can be activated,
which ones will? What if one or both boxes/links are transparent or has
visibility: hidden? There is a usability issue if there are visible
links that can't be activated or invisible links that can.
>Something I like CSS Level 3 enable me is to collapse and expand
>fragments of documents.
Yep. I think there may be a near consensus on this point. This actually
already exist in CSS2 (for table columns).
Jonny Axelsson,
Documentation,
Opera Software
Received on Sunday, 30 September 2001 08:02:50 UTC