<br><br><div class="gmail_quote">2009/2/8 Benjamin Hawkes-Lewis <span dir="ltr"><<a href="mailto:bhawkeslewis@googlemail.com">bhawkeslewis@googlemail.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On 7/2/09 20:07, Giovanni Campagna wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Yes, but what properties should I query for?<br>
</blockquote>
<br></div>
In order to find out what, precisely?<br><div class="Ih2E3d"></div></blockquote><div>What to reset, for example (see the first Ian email on this topic)<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Binding, behaviour, appearance, border, color, font, all in once? And<br>
what should their values be?<br>
</blockquote>
<br></div>
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:</blockquote>
<div>I am the author, so at least those values are known. For what concern user stylesheets, I should try to override them, it is the user that wants them. So the only properties I may find useful to know the values are UA default, that should be consistent across different platform and browser.<br>
 </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
<a href="http://www.w3.org/TR/CSS21/cascade.html#cascade" target="_blank">http://www.w3.org/TR/CSS21/cascade.html#cascade</a><br>
<br>
In other words, the values cannot be known for sure until you query them.<br>
<br>
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.<br><div class="Ih2E3d"></div></blockquote>
<div><br>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) <br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
If <input type="submit"> in some UA is rendered with all properties set<br>
to initial, not only it does not express the semantic of a button, but<br>
it may be difficult for a user to actually recognize it as a button and<br>
eventually click it.<br>
In that case I, as the author, may need to manually<br>
set { appearance:push-button; content:attr(value,string,"Send"); } in<br>
order to have my form submitted.<br>
Try this example (in Firefox or Safari):<br>
data:text/html,<style>label { position:fixed; top:-1em; border:1px solid<br>
black; } label input { -moz-appearance:none; -webkit-appearance:none;<br>
border:none; width:auto; } input[type=submit] { -moz-appearance:none;<br>
-webkit-appearance:none; background-color:transparent; border:none;<br>
}</style><form action="<a href="http://www.google.com/search" target="_blank">http://www.google.com/search</a>"<br>
method="get"><label>Search: <input type="text" value=""<br>
name="q"></label><input type=submit value="Go"><br>
<br>
Imagine that was the UA default stylesheet instead of an author<br>
stylesheet and you may see what interoperability means with web<br>
application look and feel.<br>
</blockquote>
<br></div>
There's a recursion problem there.<br>
<br>
User agents may derive the effects of "appearance" from user-agent default stylesheets:<br>
<br>
<a href="http://www.w3.org/TR/css3-ui/#appearance" target="_blank">http://www.w3.org/TR/css3-ui/#appearance</a><br>
</blockquote><div><br>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. <br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
If the user agent default stylesheet does not style push buttons differently from other content, and the user agent derives the effects of appearance from that stylesheet, then checking or setting the value of appearance would not guarantee that your submit button would appear button-like.<div class="Ih2E3d">
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
HTML5 should not mandate the UA present <a>s in blue, but it should<br>
mandate the UA present <a>s like links (appearance:hyperlink).<br>
</blockquote>
<br></div>
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?</blockquote><div>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)<br>
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.<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Obviously this does not relate in any way with user preferences, here we<br>
talk about UA defaults.<br>
</blockquote>
<br></div>
What if a developer wants to create a UA reflecting a target market's differing preferences for presentation, rather than require the users to configure it first?<br>
<br>
Are you proposing such a UA should be non-conforming?</blockquote><div><br>Could you propose an example of this UA, that still preserves the semantics of the elements, as required by HTML5? <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
--<br><font color="#888888">
Benjamin Hawkes-Lewis<br>
</font></blockquote></div><br>Giovanni<br>