On 8/2/09 13:18, Giovanni Campagna wrote:
2009/2/8 Benjamin Hawkes-Lewis <[email protected]
<mailto:[email protected]>>
On 7/2/09 20:07, Giovanni Campagna wrote:
Yes, but what properties should I query for?
In order to find out what, precisely?
What to reset, for example (see the first Ian email on this topic)
I don't follow. What to reset when in order to achieve what?
Their values depend on user agent defaults (which may be anything),
user preferences (which may be anything), user stylesheets (which
may be anything), and publisher styles (which may be anything), as
per the CSS cascade:
I am the author, so at least those values are known.
Well, that's more-or-less true although in practice you don't know what
CSS properties and values the UA implements, so you don't know which it
actually would apply even without a user stylesheet.
So the only properties I may find useful to know the values
are UA default, that should be consistent across different platform and
browser.
I disagree that they "should" be consistent, though obviously there are
market pressures towards making them so and it's helpful to have a
specification for mimicking common presentation.
http://www.w3.org/TR/CSS21/cascade.html#cascade
In other words, the values cannot be known for sure until you query
them.
Even if you mandated precise user agent defaults, the values still
could not be known for sure until you queried them, because of user
preferences, user stylesheets, and publisher styles.
If you mandate strict UA default, and the publisher (I repeat, I am the
author, I know what I write) overrides them, he may be sure that: either
it will look as no default style applied at all, or any additional
property that applies has been set by the user (so it is not my problem,
he wanted all the <a>s to be purple on yellow background, even if it
looks horrible to me)
That's true (except for the practical support problem mentioned above),
but that's different to knowing the applied value.
There's a recursion problem there.
User agents may derive the effects of "appearance" from user-agent
default stylesheets:
http://www.w3.org/TR/css3-ui/#appearance
UA must derive the appearance effects from the user agent skin, widgets
theme or native platform widgets (ie the common controls on win or the
Gtk / Qt themes in Linux). Those settings are not part of the UA default
style sheet, are not necessarily expressed in CSS, and do not take part
in the cascade.
The draft specification for "appearance" says:
"This specification does not define the term 'platform'.
"For example, it could be the native graphical rendering engine of the
operating system, or it could be a user-agent-specific skin."
As far as I can see, there's nothing in the spec to prevent the
"user-agent-specific skin" being expressed as a user-agent default
stylesheet, or to prevent a user-agent developer interpreting "platform"
as equivalent to the user-agent default stylesheet.
If there is something, please cite it.
HTML5 should not mandate the UA present <a>s in blue, but it should
mandate the UA present <a>s like links (appearance:hyperlink).
How would you test whether a UA complied with that requirement or
not? Purely by testing the value of the appearance property applied
to the element with a default configuration?
1) you test the conformance to HTML5 by testing the value of appearance
and the semantics of the element (it must be an hyper-link, if you want
normative rendering or not)
2) you test the conformance to CSS3 UI by testing the look and feel of
the elements, and comparing it to the standard look and feel for that
platform, skin, them, etc.
I think the lack of definition of "platform" probably makes (2)
untestable, and that undermines the value of (1).
--
Benjamin Hawkes-Lewis