- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Tue, 16 Aug 2011 14:01:03 -0700
- To: Håkon Wium Lie <howcome@opera.com>
- Cc: www-style list <www-style@w3.org>
On Tue, Aug 16, 2011 at 12:36 AM, Håkon Wium Lie <howcome@opera.com> wrote: > Also sprach Tab Atkins Jr.: > > Here are the options that have been brought up so far, along with my commentary: > > > > (1) Honor any style present in a print stylesheet. > > > > This doesn't work because the default media of a stylesheet is "all", > > which means that it's a print stylesheet. Thus, this wouldn't match > > current behavior. > > I don't understand the difference between (1) and (2) -- what's the > difference between a "print style sheet" (1) and "a stylesheet that > is specifically media='print'" (2)? A media="all" stylesheet is a print stylesheet, as it applies when printing. > Also, I don't understand why "match current behavior" is a requirement > -- aren't you trying to change current behavior? "Current behavior" means "by default, screw with the page to make it more printer-friendly". We're trying to make it so that you can specify a different default, but not to change the behavior of unaltered pages. > > (2) Honor any style present in a stylesheet that is specifically > > media='print' (or in an equivalent @media block) > > > > This seems hacky, as we don't otherwise attach meaning to the precise > > way you phrase the media query. This is similar to how Opera handles > > full-screen styles (if a media=projection stylesheet is present, use > > it; otherwise, act like you match 'screen'). > > I think you are misrepresenting what Opera is doing. Pressing F11 > doesn't mean "Go into projection mode as per CSS". Rather, it means > "go into fullscreen" (like other browsers do). There, we honor > "screen" style sheets (like other browsers do). However, if there are > "projection" style sheets present, Opera switches to "projection" > mode. As such, F11 do more things in Opera than in other browsers. But > this is a UI issue and not a CSS spec issue. If it's proposed as an option (like Fantasai is doing below), then it's definitely a CSS issue. > > (3) Honor !important backgrounds > > > > In other words, the user's preferences would be "don't print > > backgrounds", "print all backgrounds", and "print !important > > backgrounds" (with the last being the default) > > > > I'm not sure how compatible this would be. People use !important for > > a lot of reasons, so it may be a pretty noisy signal, and not > > something you want to rely on by default. > > I don't think we'll be able to design something that we can rely on by > default. Just like you cant't trust spammers to correctly label their > messages as spam, you can't rely on authors to correctly label their > content; some of them would very much like for you to waste precious > ink printing their advertisements. > > Here's an example from 2007: > > http://people.opera.com/howcome/2007/billettservice/ > > The text is in Norwegian, but it's easy enough to see what > billettservice (ticketmaster) is doing: when sending me three tickets > (which would easily fit on one sheet), they use three sheets and put > colorful advertising underneath. > > These people would be the first to claim that backgrounds etc. are > very important. I already talked about this in the first email in this thread. This is only meant to address the default behavior; users should still have a choice about what to do. > The only effect "!important" has for an author is to override other > backgrounds set by the authors, so I don't think we'd find many > examples of "!important" in the wild. Have you done any research on > how many people have labeled their backgrounds as important at this > stage? You'd be surprised how often !important is used when people get confused by the specificity of their badly-written stylesheets. That said, !important is still a bad solution for at least two reasons: 1) Using !important messes with the cascade, which means you'll likely have to spread the use of !important relatively widely. (This can be mitigated by minting a new !-rule that doesn't interfere with the cascade.) 2) More than backgrounds are affected by printing. IE9 also suppresses box-shadows, for example. Presumably this means that authors would have to tag any use of box-shadow as !important as well. What if browsers start suppressing another type of visual effect, like border-image? Will you have to preemptively tag everything that might be suppressed, just in case? > My tentative conclusion is: > > - I'm sceptical that the self-labelling scheme will work in > practice, as there will be too much mis-labelling for users to > rely on this information > > - the added third level will increase the complexity of browser UIs. > Typically, you will need to use a radio button rather than a > checkbox to set the preference. Both of these are problems common to every solution. > - still, if implementors would like to try this, they can do so > today using "!important" -- there is no need for new CSS syntax I've given reasons above why !important isn't a good solution. ~TJ
Received on Tuesday, 16 August 2011 21:01:50 UTC