[CSSWG] Minutes and Resolutions 2010-02-17

Summary:

   - Discussed CSS2.1 test suite status.

   - Discussed Yves' comment about background shorthand syntax for background-size
       http://lists.w3.org/Archives/Public/www-style/2010Jan/0248.html
     fantasai to write up proposal for using 'as' instead of '/' to indicate the
     background-size (as opposed to background position) in the shorthand.

   - Discussed new API for computedStyle values. People seem happy in general with
     the direction Anne is going in his drafts. See
       http://lists.w3.org/Archives/Public/www-style/2009Nov/0335.html

   - Discussed standardizing serialization of computedStyle values. Consensus is
     that having a spec for serialization is a good idea, although converging
     existing behavior to spec may be difficult and there is no consensus on
     whether we should push for converging existing implementations (due to
     backwards-compat concerns).

   - Reviewed some new information about scientific notation in CSS.

   - Started (but did not finish) discussion on image-fit issues recently raised
     on www-style: http://lists.w3.org/Archives/Public/www-style/2009Sep/0304.html

====== Full minutes below ======

Present:

   César Acebal
   Tab Atkins
   David Baron
   Bert Bos
   Arron Eicholz
   Elika Etemad
   Sylvain Galineau
   David Singer
   Anne van Kesteren
   Steve Zilles

<RRSAgent> logging to http://www.w3.org/2010/02/17-CSS-irc
Meeting: Cascading Style Sheets (CSS) Working Group Teleconference
Date: 17 February 2010
Scribe: TabAtkins

Bert: I'm chairing today, at request of glazou and plinss, as they can't attend.

CSS2.1 Test Suite
-----------------

   Bert: First item on agenda is testsuite.  What's the status?
   fantasai: Status is, I'm working on build script and trying to fix some
             of the errors in html generation.  Nothing else new to say.
   Bert: You're confident that will work fine shortly?
   fantasai: I hope so!
   Bert: Anything more coming up after that to be done?
   fantasai: My current build-script issues list:
     * preserve doctypes across conversion
     * munging sgml comments, shouldn't do that
     * htaccess merging
     * need structured directory support
     * build scripts need to filter html-only vs xhtml-only
     * adding support for reftests

background shorthand syntax for background-size
-----------------------------------------------

   Bert: Second topic, issue in background property grammar, raised by Yves Lafon.
   Bert: I just sent a reply.
   <Bert> http://lists.w3.org/Archives/Public/www-style/2010Jan/0248.html
   fantasai: We can add more restrictions on where this can be placed.
   fantasai: Or alternatively, if it hasn't been implemented/deployed yet,
             we might be able to change the syntax to not use a slash
   Bert: That sounds like a big change.
   <fantasai> something like background: url(foo.png) as 2em 2em
   Bert: There are two questions in the email from Yves.
   Bert: First, / at start isn't compatible with appendix G.  I don't think
         that appendix applies to CSS3.
   Bert: Second is if we want to allow starting with a slash. Elika, you say
         we might not want that.
   Bert: Anyone have opinions on it?
   TabAtkins: I've never used it, so I can't comment on it.
   sylvaing: What does it actually do?
   Bert: It separates size from position.  Behind slash, it's a size,
         not behind, it's a position.
   sylvaing: What happens today with it?  Ignored, or what?
   Bert: It's new in B&B3, so I'm not sure what it does today.
   anne: Per css2.1 it should be ignored.
   Bert: Elika, you had a specific idea to make this better?
   fantasai: I don't know impl status, but one alternative is to change the
             / to "as", like "url() as <size>".
   * dbaron didn't like allowing the thing before the '/' to be omitted in
            the first place
   Bert: That would maybe work, but it would be a pity to take it out of CR.
   fantasai: We may need to do that anyway, for gradients.
   sylvaing: I don't like having the separator, and being able to skip
             what comes before it.  If the slash is there, it should
             have something on both sides.
   Bert: So you want there to be a position every time there is a size?
   dbaron: Sorta, yeah.  I've lost this argument before, but...
   Bert: You have another chance to convince people.  The cost is that
         we need to change a CR.
   sylvaing: If it's not widely implemented it's not costly, it's just
             editing the spec.
   fantasai: Since it's only been CR for a few months, if we can talk
             to impl and see it's not implemented, we can change it.
   Bert: We have implementors here.  Has it been implemented?
   dbaron: We (mozilla) haven't done the shortcut yet.  Just
           background-size itself, not the shorthand.
   sylvaing: We (microsoft) haven't implemented it yet.
   <dbaron> just did background-size as -moz-background-size
   Bert: 1) change slash to something else, like a keyword
         2) require a position when you specify a size
         3) leave it as is.
   Bert: I hear some support for #2.  Would the size have to be in a
         particular place, or just *somewhere* before the slash?
   fantasai: Anywhere before the position, by current spec.
   Bert: Preferences?
   dbaron: My position is that, if you have a slash, there is a size
           right before it, and a position right after it.
   szilles: Is there an example elsewhere of a slash without something
            before it?
   dbaron: It only appears in the font shorthand, and there you need
           two things.
   <anne42> <ratio> from css3-mediaqueries requires both sides too
   Bert: A slash doesn't have to be a 'separator', it could just be
         punctuation.
   sylvaing: Are we just trying to support a pattern that no one will
             want to use?
   anne: Best to require a style that is consistent, so authors can
         read it more easily.
   sylvaing: Agreed. Dangling separators all over the place is no good.
   Bert: So I'm hearing some consensus on #2.
   Tab: I'm ok with requiring both, although I prefer using 'as'
   szilles: I echo Tab.
   szilles: Basically keeping / requiring a pair makes things easier
            to do things.
   szilles: But since in many cases you *dont'* need a position, it
            might be better to have size as an independent thing.
   fantasai: Slight preference for the keyword as well.
   Bert: So, how to proceed?  Should we have someone draw up the grammar?
   * TabAtkins missed what sylvain just said, because of th ephone beeping
   fantasai: The keyword sort of directs you more towards that the
             number is doing something to the image.
   <fantasai> background: url(foo.png) as 100%
   sylvaing: As long as a / has things on both sides I'm fine, so I'm
             fine with either 1 or 2.
   Bert: So, consensus seems to be around the keyword, unless people
         have preference for a slash?
   Bert: Okay, then someone should write up the proposal for the new
         text/grammar.
   fantasai: I can do that.
   <fantasai> ACTION: write new text/grammar for using keyword
   Bert: Do we need to come back to this?  Or is the change simple enough
         that we can just accept it?
   dbaron: I think it would be useful to see what the proposal actually is.
   fantasai: Also we should check in with webkit and opera (re:
             implementing the / in the shorthand already).

CSSOM Values API and Serialization
----------------------------------

   <anne42> Bert, if I have to leave beforehand, I'd basically like people
            to look at the email and give some feedback, some kind of
            approval or disapproval at the minimum would be cool
   Bert: Next, CSSOM issues, per anne's request.
   Bert: Property value api.
   anne: Currently all apis in cssom are string-based, so every time you
         query for a property you get a string back which represents the
         value.
   anne: the idea is that instead of a string you get a more specialized
         object back.
   http://lists.w3.org/Archives/Public/www-style/2009Nov/0335.html
   anne: We discussed the idea briefly at tpac.
   anne: It would look like a string, but also have typed properties for
         the values the property supports.
   anne: Frex, the background property would have a url property
   anne: Or, frex, length values, if you wanted to animate the length,
         you could just increase the value of the length using style.width.px
         or whatnot, rather than asking for a string, parsing it, changing it,
         sending the string back, and making the browser turn it back to a value.
   anne: Which is a lot more work than should be necessary.
   sylvaing: It makes a lot of sense in principle.
   sylvaing: It's kind of amazing that authors have to reparse css that's
             parsed by the browser.
   TabAtkins: Agreed, the bit of work I've done in pure css manipulation
              has been very annoying due to the string handling.
   sylvaing: Yeah, the javascript libraries often take away that difficulty,
             so we're all just spinning cycles.
   anne: The specific way I'm talking about it, there may be cross-compat
         issues.  It will no longer do strict equality, and typeof will
         return something new.
   anne: So we might need, say, a new accessor on the style object.
         style.superAwesomeTypeObject.width.px
   anne: Best is to get an experimental impl in a browser and see what happens.
   szilles: You said you won't get string equality.
   anne: Like, if you get a string that's "0px", and use === to test, it
         would fail, because the object isn't a string (though it will
         act like one in some cases).  == equality will still work.

   anne: Also, some more tpac issues - the getComputedStyle API, specifically
         the concept of resolved values.
   anne: Also, about how individual components get serialized to a string.
   anne: These are for the string apis.  Currently everyone does something
         different.  We'd like some convergence, and I'd like some feedback
         on exactly what should happen here.
   Bert: Current API, or new?
   anne: Current api.
   anne: Frex, if you used stylesheet value to go over the stylesheet rules,
         you get strings, but evereyone has a different canonical form for
         these string values.
   anne: I'm trying to define how these should be serialized.  But since
         everyone does different...
   sylvaing: Yeah, even if you get convergence, you'll probably be breaking
             compat with older versions of each browser.
   sylvaing: I'd like a separate api on the side that can do something new
             so we don't have to worry as much about painful compat issues.
   anne: This is also something that new css drafts should take into account
         in due course.
   anne: Frex, <image> type, like gradients, how they should be serialized
         to string.
   sylvaing: It would be good to document, if for no other reasons just to
             see how much damage would be required to converge.
   sylvaing: So we can see if possibly the property value api might be
             easier and cheaper for everyone.
   anne: Yes, but I think we *also* want interop on the string level.
   dbaron: I agree we should try to converge on string serialization.
   dbaron: I've been making changes to our serialization where we might be
           returning different precisions, etc.
   dbaron: There were occasional compat problems, but they weren't horrible.
   fantasai: I think some serializations might be harder to change than others.
   fantasai: At very least, for things that are less common to be parsed,
             they can converge.
   fantasai: Having a spec will help new implementations also.
   sylvaing: In the property value api, the main thing is that you *don't
             have to* parse anymore.
   sylvaing: If you no longer have to parse, what's the reason for converging
             the strings except prettiness?
   anne: Authors will still depend on it.

   anne: I also think that once we start property value api, we may not do
         all types at the start, just the most common, eg length, color
         manipulation.  maybe not time and frequency.
   sylvaing: I agree.  It's not hard to change, we just have a lot of
             corporate customers depending on existing behavior.  It's
             why we end up with modes
   dbaron: Back to anne's point, I agree we shouldn't try and make the
           value api cover everything.
   dbaron: times and frequencies i'm not worried about, it's the complex
           data types i'm worried about.
   dbaron: A lot of times when adding new properties, i have *no idea*
           what data structure to use underneath.
   dbaron: Many of our new property values, even ones in css2, still
           don't have a sensical mapping to the value api (style level 2)
   Bert: Have you thought about that, anne?
   <dbaron> for the DOM Level 2 Style value api that we implement only
            for getComputedStyle
<Zakim> +smfr

   anne: My idea was to have a base type, which is effectively a
         DOMString which has a cssText property.
   anne: each property would at least return the base type, serializes
         to a string.  cssText would return whatever we agree the
         serialization rules should be.
   anne: For other properties, we'd have an object that inherits from
         this base type, and also exposed additional properties, eg
         color property object as r,g,b properties, maybe alpha, etc.
   anne: So you'd at least get back the string, and some would expose
         a little more.
   anne: And if we have properties that really need this api, we can
         start defining this at that point.
   anne: And hopefully CSSOM can modularize as well, so each new css
         spec can have a cssom part that explains how to serialize
         the property, and possibly value apis.
   TabAtkins: So is the idea that the DOMString object contains the
              current legacy browser serialization, and cssText
              contains the agreed on proper serialization?
   anne: No, if you call toString on the object it will just return
         the cssText property.
   anne: I don't think we should expose the [something something
         something].  Frex, background-image would right now return
         just the url property, but later on when we change it, it
         would return a urlList property.
   Bert: I think we hear some encouragement for the approach, at
         least, with some caution about possible difficulties. Is
         this what you wanted to hear, anne?
   anne: This is a start.  It would be nice to have the specific
         emails on www-style get input.
   sylvaing: Is there anything in your thoughts about api and design
             that *couldn't* be done with javascript, so we could
             experiment with it?
   anne: I don't think you can extend DOMString.  You may be able to
         change getComputedStyle itself to return a custom object.
         You could probably get pretty far there.
   fantasai: As far as css specs giving serialization rules, could
             you post some examples of how that would look in an
             actual draft? I have no idea what to put in my specs.
   anne: Sure, in section 7.4 it returns serialization as a generic
         concept.  I'm hoping to deal with properties that accept
         multiple components to give instructions.
   anne: ie, if it's comma separated, serialize it in this way, etc.
   anne: It can be very simple.  Frex, something that takes a time
         in seconds it serialized as a number followed by "s".
         Or urls serialzied as "url('" followed by literal string
         followed by "')".
   fantasai: What about properties that take multiples values?
   anne: For those my plan is to define that there should be at
         most 1 space between components, if they're comma separated
         the comma is adjacent to the previous value and followed by
         a space, etc.
   fantasai: So for most properties we'd just have to specify the order?
   anne: Yeah.  And for things with multiple orders, like background
         position, there you'd say it is in a specified order.
   anne: Frex with margin you'd have a rule that when components can
         be omitted you omit as much as possible, so frex
         "margin: 2px 0 0 0" serializes as "2px 0 0".
   Bert: All right, so what you going to do now, anne?
   <anne42> http://dev.w3.org/csswg/cssom/
   anne: I will update the document further.
   anne: I need to finish some more details on serialization and how
         it maps to getComputedStyle.
   anne: Next step is to draft the property value proposal, and draft
         a few samples like the color interface, and get feedback.
<Zakim> -anne

CSS3 Values / Scientific notation
---------------------------------

   Bert: Next topic, css3 values.
   Bert: The agenda says scinot, but the emails talk about other things.
   dbaron: I haven't gotten a chance to write my proposal calc
           (regarding min/max) yet.
   Bert: I just sent an email with an example grammar this morning.
   Bert: We may want to talk about that later, once people have a chance
         to read it.
   Bert: So, back to scinot.
   Bert: Any actions from that last week?
   sylvaing: Only concerns, which I introduced, was that it would become
             a new CSS hack to separate browsers.
   sylvaing: But it turns out that IE already does this, so the hack has
             been out there already.
   Bert: Explain the hack?
   sylvaing: Once a new browser supports scinot, you can use it to
             exclude older browsers from parsing that rule.
   sylvaing: I don't think it's a serious issue, since Selectors already
             allows that, and Selectors-based ones are more powerful anyway.
   sylvaing: So I don't think scinot is much of a hack in practice anyway.
   sylvaing: But given that the hack is *already out there* in IE if you
             want it, I think the issue is moot.
   Bert: I understand for the selectors hack, but what's this about IE
         notation already doing the hack?
   sylvaing: in IE, you can already specify "width:1e2px", and it will
             work in IE but not other browsers.
   sylvaing: So the argumeent that we shouldn't introduce this notation
             because it would introduce this hack is bogus, since it's
             already supported.
   Bert: In fact it seems to make the hack impossible to use, since legacy
         browsers already use it.
   Bert: Is anyone going to write up examples?
   szilles: I think Chris got tasked with some of that; this is based
            just on reading the minutes.
   Bert: So no new information?
   TabAtkins: Apart from the knowledge about the ie hack, no.  We might
              want to ping Chris about it.
   sylvaing: What are the details of exactly how SVG allows it?
   TabAtkins: It was explained on the list; I forget the exact details,
              but some types of values allow it, but not all.
   sylvaing: So like Hakon's talking about allowing it when necessary?
   TabAtkins: Not quite.  it's not property-specific, but rather value
              specific.
   TabAtkins: Also, HTML5 and JS all rely on the ecmascript serialization,
              which uses scinot.  So we could align with HTML as well.

image-fit
---------

   Bert: All right, so leet's move to a simpler topic for now. Image fit?
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2009Sep/0304.html
   fantasai: I want to write up a response to the most recent image-fit email.
             Some things I agreed with, some I didn't.
   <Bert> http://lists.w3.org/Archives/Public/www-style/2010Jan/0476.html
   Bert: Ok, let's just look at the message detailed in the agenda.
   <shepazu> (I think image-fit would be a good topic for discussion in the FXTF)
   bert: 4 issues in the email.
   Bert: When dealing with overflow on replaced elements.
   fantasai: I think last time I discussed this with Hyatt, we suggested
             always clipping.
   Bert: That's different from what's in the email, which suggests overflowing
         and letting overflow apply.  You're suggesting always clip?
   szilles: That seems dangerous if you're losing content.  Best might be
            scrollbars; some kind of warning that you're not seeing all
            the image.
   Bert: I do see examples in practice of people using a wrapper to force
         clipping the image.
   TabAtkins: I've done precisely that.
   fantasai: [something about default behavior]
   fantasai: contain triggers no scrolling, just cover.
   Bert: As soon as you use that, you're assured you will get clipping.
         That's sort of explicit?
   fantasai: And then image-position lets you specify exactly which part
             gets shown.  I don't think it makes sense to combine that
             with scrollbars.
   szilles: As long as it's clear that it's a conscious decision to force
            the clipping.
   Bert: I like this idea, but are there any other ideas?
   Bert: No dissent.  We may need to come back to this topic, since there
         are more issues anyway.
   Bert: I suggest we continue on image-fit next week.

Miscellaneous
-------------

   Bert: anything else to be said?
   dsinger: I sent an email to peter/glazou on hosting the meeting, but i
            haven't heard anything back from them.  who should I send it to?
   bert: Send it to me.

Meeting closed.

Received on Wednesday, 17 February 2010 22:01:00 UTC