- From: Sebastian Hennebrueder <usenet@laliluna.de>
- Date: Mon, 19 Jul 2010 09:47:20 +0200
- To: Aryeh Gregor <Simetrical+w3c@gmail.com>
- CC: www-style list <www-style@w3.org>
Hello, Am 18.07.10 22:55, schrieb Aryeh Gregor: > On Sat, Jul 17, 2010 at 10:23 AM, Sebastian Hennebrueder > <usenet@laliluna.de> wrote: >> In my opinion there is a need for conditions for a number of reasons. But I >> would not check for individual features but for standards and browsers. >> >> Syntax sample inspired by Zack Weinberg (see 5) >> @if ( css-support<= 3){ >> .... >> } >> @elsif (css-support = 3){ >> .... >> } >> @else{ >> >> } > > This is not even remotely possible. CSS3 is modular. Some parts are > almost at Recommendation (Selectors), and some parts haven't even been > written (look at all the blank or unlinked boxes under "Current" at > <http://www.w3.org/Style/CSS/current-work>). At a minimum, you'd have > to test support for each module individually. But this is still not a > good idea, as I explain below. > >> The reason to check for standards is twofold. The first argument was >> provided by Bert Bos (see 3). The intention of a standard should be to be >> implemented completely. And after years it looks like as the browser vendors >> are competing to reach a higher level of standard conformance. > > However, standards are usually implemented partially years before > they're implemented completely. Your approach makes it impossible to > test for feature support reliably. For example, every major browser > now implements border-radius, but no browser implements all features > of CSS Backgrounds and Borders Module Level 3 (I think). Your > proposal doesn't allow authors to test for what they really want to > know: will some specific markup work, or not? > >> The second reason is that checking for individual feature support might be >> ambiguous, meaning could change over time or an existing feature could be >> more detailed. It could cause a nightmare of backwards compatibility, as we >> might have any number of arguments for @if conditions and we need to support >> them for all times. > > This is much *more* true if you draw the line at entire standards. > Nobody knows exactly what will go into a standard until it reaches > Proposed Recommendation, which requires it to have two interoperable > implementations of every feature (thus features get dropped so that > stage can be attained). Features that aren't implemented fast enough > get pushed off to the next revision. So your syntax would be unusable > right where it's most needed: at the point when support for the > feature is just getting off the ground, and it's not mature and widely > implemented enough to be in a Recommendation. > >> There is currently little motivation to implement CSS standards completely >> as nobody is using the newest version of standards. If conditions allows >> websites to provide CSS in multiple versions including the newest one. >> Suddenly the web is a lot more impressive, if you use a modern browser which >> implements the complete CSS standard. > > Why *should* there be any motivation to implement standards > completely? If implementers aren't interested in implementing some > part of a spec, that part should just be cut. That's what happens > now. This is leeds to a general question. How do we want browsers deal with CSS versions? I thought that it is simpler to create CSS rules, if you just need to do think like: I have CSS support for 2.1 so I can solve my look and feel this way but if I have support for CSS 3, then I can solve my problem this way. If every browser implements another combination of features, then in worst case you need to think like: 20 % of my visitors use a browser that supports x, y and z so I can create my look and feel with the following CSS rules and another 10 % have the combination of y, k and l so I need to use another approach. Many layout decisions are not based on a single CSS feature but requires many to build the complete CSS rules. You need a lot more browser specific knowledge to check for a reasonable set of support features. > > Even if your proposal were implemented, though, the motivations will > be exactly backwards from what you want, rendering the feature > useless: > > 1) Authors are motivated not to rely on your conditionals, because > they mean users won't be able to view their enhanced content even if > their browser supports the specific features they use. For example, > if an author uses border-radius, they would *not* want it to only > display for browsers that completely implement Borders and Backgrounds > 3. They would want it to display in every capable browser, so as many > users as possible get the latest features. The argument depends a lot on how browsers continue to implement features. If they continue to implement standards partly then you are right. But as pointed out here http://lists.w3.org/Archives/Public/www-style/2010Jul/0349.html if we can motivate browser vendors to implement CSS versions completely, then my assumption is correct. It might be a question about the general strategy. Do we go for very big CSS releases which takes a long time to be created and even longer time to be implemented or better smaller releases which are implemented completely in short time. > > 2) If authors did widely use the conditionals for some reason, > implementers would be motivated to do a half-baked implementation of > marginal features so they could get all the popular features working > in the face of conditionals. Or they might simply lie and return true > before they implemented everything fully. This is a risk. I fully agree here. -- Best Regards / Viele Grüße Sebastian Hennebrueder ----- Software Developer and Trainer for Hibernate / Java Persistence http://www.laliluna.de
Received on Monday, 19 July 2010 07:47:53 UTC