[CSSWG] Minutes F2F 2008-03-27

Meeting: CSS Working Group Meeting, San Diego, CA
Chair: Daniel Glazman, Peter Linss

Present:
   David Baron                Mozilla
   Bert Bos (Staff Contact)   W3C Staff
   Tantek Çelik               Invited Expert
   Aaron Eicholz              Microsoft
   Elika Etemad               Invited Expert / HP
   Ming Gao (observer)        Hewlett-Packard
   Daniel Glazman (Chair)     Disruptive Innovations
   Molly Holzschlag           Invited Expert
   Chris Lilley               W3C Staff
   Peter Linss (Chair)        Hewlett-Packard
   Alex Mogilevsky            Microsoft
   Jason Cranford Teague      AOL
   Anne van Kesteren          Opera Software
   Steve Zilles               Adobe

<RRSAgent> logging to http://www.w3.org/2008/03/27-css-irc
<dbaron> RRSAgent, make logs public

ScribeNick: jason_cranfordtea

Minutes
-------

   Elika: are we ready to start with public disclosure of the minutes?
   Result: Yes
   RESOLVED: Minutes will be public starting from now

Next F2F
--------

   Alex: proposes sites for next Ftf
   Cabridge, UK
   Moscow, Russia
   Redmond, WA, US
   Discussion by group
   RESOLVED: Cambridge, UK is first choice
   Alex discusses dates
   24th of July
   or anytime in August
   group discussion
   <glazou> I prefer august
   <glazou> Steve available only 3rd week of august
   August 20 -22nd (Wednesday-Friday)
   RESOLVED: August 20 -22nd (Wednesday-Friday) Tentative

Plenary Meeting for Fall
------------------------

   Plenary is October 20th-25th
   Group discussion
   Preference for Monday Tuesday
   Steve: Can we meet Sunday?
   Peter: Are there other groups we want at the planary?
   <glazou> SVG and SMIL
   <Bert> For Oct ftf: SZ has conflict with AB (Th/Fr), ask for extra day
          on Sun? joint with SVG (filters)? joint with UWA (layout)?
   Discussion about needed Apple participation to discuss their proposals
   Steve will talk to contacts at Apple
   ACTION: Steve talk to contacts at Apple wrt participation at F2Fs
   Discussion about talking to Internationalization Group
   Avoid overlap with Internationalization Group
   Peter will but in request for previous Sunday meeting

2009 Conferences
----------------

   Bert: talks about meeting next summer as cross between technical plenary
         and Web conference
   Steve: ALA wants to do a co-event with W3C in Balogna (sp?) Italy for Web
          designers
   Steve: event target Europe rather than US designers
   "An Event Apart"
   http://aneventapart.com/
   This even would be similar but for Europe
   Bert: In principal, are we interested in participating?
   Bert: We can have an F2F at the same place the week before/after
   Molly: Opposed to being too closly aligned with any specific conference
   Steve: wants to take discussion off-line for W3C input.
   Jason: Agrees that there should not be any perception that we are aligned
          with any other conference
   Jason: But does see benefit in showing that we are involved in the wider
          Web community
   <glazou> Bert and I don't live far away, we can make it for the conf if
            necessary
   <glazou> now, I don't feel confortable with aligning a CSS WG ftf meeting
            with a conf, we don't have to give a marketing stamp to a
            privately held conf IMHO

Mobile Profile to CR?
---------------------

   Is Mobile Profile ready to go to CR?
   Bert: Can we publish?
   Elika: No problem
   Group discussion about current status
   Bert: there is a test suite
   Tantek: concern over bugs
   Steve: Q for Tantek: are they CSS bugs or just bugs?
   Tantek: Simple dumb bugs in test, NOT in CSS
   Elika: People running test will complain, so we can catch that way
   Tantek: opposite happening
   Tantek: if marquee properies are not ready, not ready for CR
   Danial: Do we have an agreement on the Mobile CSS profile?
   Tantek: I do not see  stuff that in the test suite but not in the profile
   <Bert> The MWTS WG's harness for the CSS Mobile Profile:
          http://www.w3.org/2007/03/mth/harness?test=start&ts=cssmp
   Bert: There is nothing in the profile that we do not have agreement
   Bert: but marquee is in WD
   Elika: Some items in Box Module need more review
   Elika: rewriting of vocab, etc.
   Elika: split marquee and overflow to move Mobile profile forward
   Elika: Box model needs more review
   Elika: Suggestion create CSS overflow Level 3
   Discussion about specifics of splitting out overflow
   Elika: we need results
   Q: Can we move Mobile forward to CR?
   Tantek: Wants list of at risk to move forward to CR
   RESOLVED: Mobile profile can move to CR as long as marquee and overflow
             are tagged as at-risk
   Steve: They are at risk because their current document status of overflow
           and marquee would not allow the CR doc to go to PR
   ACTION: Bert Inform Svante to make decided upon edits

Media queries
-------------

   TOPIC: Are Media quarries ready to move to CR
   Anne: discusses current status and tests
   Anne: test need to be updated because of incomplete parsing rules
   Davis: This is the second CR?
   Anne: first in 2002. This is 3rd CR with further clarifications
   Discussion of font size and root element
   Decide to use default font
   <dbaron> em and ex units in media queries need to be relative to initial
            values of font properties (not values on root element, since
            style sheets can change those)
   ACTION: Anne update media quarries - syntax, grammar, changes to parsing
           rules of HTML 4, grid feature
   <fantasai> (and 'em' 'ex' definition)

ScribeNick: anne

CSS Website Update
------------------

    Jason: Bert, Elika and I discussed updating the site some time ago. More
           organized, user friendly for different audiences.
    ... Make it easy to find what you're looking for.
    Peter: PHP can be used and MySQL.
    Jason: Structured the page around primary tasks.
    ... Specifications will be the primary focus.
    ... CSS 2, errata, CSS 3, current work, and validation.
    ... Profiles are also linked.
    ... May want to change the profile links.
    ... Also have links for contributing, tests, etc.
    ... A search box, next to the navigation.
    ... Also a list of languages that the site has been translated into.
    ... (Initially hidden if we don't get the translations.)
    ... "What is CSS?" block to give people a quick introduction.
    Daniel: Was it not on the lefthand side of the screen?
    Elike: it is the first in the source
    Jason: it will be given more visual prominence
    Jason: for a smaller screen the "What is CSS?" block will be on top
    Jason: it will be using media queries
    Elika: it will be using some cutting-edge features
    Daniel: since only Opera and Safari do media queries, maybe it's not good
            enough to base on that
    Jason: the non-mediaquery browsers will get the "What is CSS?" block on top
    ... which seems acceptable.
    ... Below the "What is CSS?" block we have a "What's new?" and "The world
        of CSS"
    ... News stories, about us, etc. "The world of CSS" contains pointers to
        books, articles, etc. outside the W3C/CSS WG
    ... Might want to break it down further.
    Molly: so this is clearly identified as "elsewhere"
    Jason: yes
    Jason: we don't have a CMS in place. Though now PHP / MySQL seems possible
           maybe there are options.
    Jason: could use WordPress
    Elike: I'd like to move the blog to WordPress
    Bert: what's wrong with Emacs?
    [laughter]
    Ming: Vi!
    [more laughter]
    Peter: I'd like a real CMS.
    Jason: Yeah, that's possible. We can use WordPress for all of that.
    Tantek: WordPress does have more IT-requirements unfortunately.
    <tantek> as anything with a database backend does
    Elika: We can wait a little bit with WordPress.
    Elika: Shouldn't block redesign on that, can switch later if we want
    Jason: we may want to add an image. Definitely need contact information.
    Jason: [goes through secondary pages]
    Jason: charter, about, contact, etc.
    Jason: "mood": flowing, transparent, layered, professional, informed
           (in a spiral)
    Steve: maybe add stylish
    Jason: new CSS logo idea
    Jason: uses "Futura"
    Jason: also used on the first moonlanding
    Jason: uses transparancy so it can be used on all kinds of colored
           backgrounds
    [some discussion on logo details; scribe hopes it's not too relevant
     for future generations]
    [new angle: use the logo or do a contest for designers]
    [part of the WG seems slightly bored]
    RESOLVED: we're doing a contest for the CSS logo
    ACTION: Jason write up requirements for logo contest
    RESOLVED: use logo with no missing squares as placeholder
    <fantasai> so we don't have to hold up the web site redesign waiting
               for the logo
    Topic: CSS Website colors
    [muted or vibrent]
    Steve: I don't like the green
    [some votes for muted]
    Elika: I'd go halfway between the two.
    Topic: CSS Website Fonts
    s/colors/Colors/
    Jason: no image replacements, as pure CSS as a possibly can
    * Bert likes classic sand background and black text with red for emphasis...
    * anne ... and emacs :p
    <molly> VI dammit
    * anne ... jason haha
    Daniel: what about fonts on Linux?
    Molly: depends on the build
    Jason: I'll look into that
    ... Georgia have a slightly older feel. Might replace Futura with Georgia
    ... I think it comes down to font size, paragraph width
    ... We'll be using lots of max- and min-width[s]
    Bert: can Gill Sants be mixed with Futura
    Jason: yes
    Jason: for the paragraph font I can use Gill Sants
    Bert: on the website we mostly use sans-serif
    Steve: Future and Trebuchet have different lengths
    Jason: I think for Future Medium and Trebuchet MS Bold this is ok
    Topic: site design
    [presents vibrant / muted]
    Jason: I'll provide weekly feedback
    Peter: check accessibility guidelines
    Daniel: one of the key entry points of the W3C is the validator
    Daniel: having information from the CSS group on the validator page
            would be good
    Jason: feel free to e-mail feedback

Box Module
----------

ScribeNick: molly
   Bert: I took the text from 2.1. This is very complicated stuff, I'd
         like people to look it over and see if it works. Request anyone
         who understands height/width calculations to specifically look
         at the text
   <Bert> http://www.w3.org/Style/Group/css3-src/css3-box/
   Bert: So marquee split off / overflow
   Fantasai: properties stable
   Anne: There are at least four user agents that have implemented
         overflow-x overflow-y
   Bert: we need to be sure that overflow x/y are going to stay
   Anne: Web sites depend on them, they stay
   Bert: Okay, we'll put them in and find a way to make it work
   Alex: we treat x and y as width and height and we treat x as horizontal
   Alex: Top Left Width Height are physical
   Fantasai: We could introduce the start and end properties for
             margin/border/padding/etc
   Bert: Percentage on height property - auto if no defined height?
   Fantasai: Must be undefined because of table interactions
   David: For min/max height the same undefined way
   David: and then when we go define it for height, min/max will pick up
          the definitions
   Bert: Intrinsic sizing
   Bert: there were some open sections - David?
   Bert: Section 10
   Bert: I think I've made a mistake somewhere, I'll check it out
   David: I'll need to look over this
   Bert: Are you going to give me more text about float and clear?
   David: On my list

Box-sizing
----------

   Bert: Box sizing wasn't handled yet
   Fantasai: I had a proposal there
   <fantasai>
http://idreamincode.co.uk/css/css3/the-css3-box-sizing-concept-a-solution-to-a-longstanding-problem
              discusses box-sizing
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2008Feb/0141.html
              is my proposal
   Bert: Box sizing already exists
   David: You can have both
ScribeNick: Bert
   Jason: Is there a precedent for a "mode" keyword in a value?
   Fantasai: Yes, text-indent with hanging.
   Steve: It's more similar to shorthands.
   Molly: Is the order of the keywords important?
   several: no
   Fantasai: Point is that this works well with cascading.
   Steve: What is the computed value?
   Fantasai: it includes the keyword, thus length + keyword
   David: This is useful for authors. The alternative is setting box-sizing
          globally. Anything else is confusing.
   Jason: Can still override it later for a specific element, by using width
          again without a keyword.
   Tantek: But it does change a fundamental assumption of how properties work.
   David: What does?
   [people trying to understand each other...]
   <dbaron> width: 50% border-box;
   <dbaron> width: 50% content-box;
   <dbaron> width: 50%; /* uses box-sizing */
   Elike gives example:
   .class1 {width: border-box: 50%}
   .class2 {width: 40%}
   class 1 gets border box even if box-sizing property is set differently.
   And class2 gets what box-sizing set, without the need to set box-sizing in
   class1, which may potentially influence class2 as well.
   Jason: What is the alternative?
   Steve: Alternative is to be careful with box-sizing; basically set it
          everywhere you set width.
   David: It's pretty easy to support both box-sizing and Elika's proposal.
   Steve: So there is a value without a name that indicates neither border-box
          nor content-box, but means "use border-sizing"
   Molly: This is difficult to understand for designers.
   Anne: What about replaced images with 'width: border-box auto'?
   Anne: There was an unwanted interaction between setting box-sizng globally
         and replaced images.
   <tantek> after discussing with David I understand what he is proposing and
            what David Baron is proposing makes sense to me.
   Alex: The proposal affects the CSSOM. Currently width is a single value.
   Anne: Width is already a string-valued property.
   Alex: How about a proeprty 'border-box-width'?
   Molly: How does all this work with cascading?
   Fantasai: My proposal is designed specifically for help with cascading.
   [More people not understanding each other]
   [The important thing to remember is David's three lines above]
   Steve: I would prefer thata there were an explicit keyword 'box-sizing' as
          well.
   <tantek> as long as we make it work the same way that border-color and color
            work, I think it's fine.
   <tantek> there is an explicit keyword currentcolor
   Anne: But backwards compatibility with scripts that rely on there being
         just a length...
   David: But it's slightly different from color/currentcolor, because color
          didn't have an explict value at all, while width still has a length
          as value.
   [Fantasai explains difference between her keyword solution and Alex's extra
             property solution]
   <dbaron> The situation that "required" currentColor was worse because it
            was a situation where border-top: medium solid gave
            'border-top-color' (a property) a value that couldn't be specified.
   Tantek: Designers usually want to use border-box on both width and height.
           Also an extra property is more difficult to use than an extra value.
   Alex: Seems a redundant solution either way.
   Tantek: there are cases where people normally think about boxer-box (forms...)
           and where they normally think about content-box.
   Jason: It makes sense in some cases to specify the content width, in others
          the border width.
   David: Currently designers have to do the math.
   Steve: What does getComputerStyle return?
   David: Always the content width, I think.
   <tantek> my point about the extra property was stating that we don't need
            border-box-width and border-box-height vs. just box-sizing
   <tantek> about "extra property is more difficult" - adding extra properties
            is an unnecessary complexity
   David: getComputedStyle has to work on used value.
   <dbaron> used content-box value
   Steve: Should not break existing scripts.
   Jason: Confused about border box width vs border width. I refer to visual
          width, usually.
   [The terminology is from CSS1]
   [Some discussion about need for padding-box and margin-box as well, Tantek
    claims no. David can see use cases for margin-box]
   David: Can accept the proposal and still ask for better names.
   Peter: Should be consistent names between box-sizing and width keywords.
   Molly: Nomenclature is very important. Designers don't use the CSS1
          terminology.
   * alexmog understands motivation but is still very uncomfortable with
             'width' not being a length
   * Bert notes that width won't be a length much longer, because of calc(),
          anyway
   Strawpoll: 8 in favour
   <glazou> daniel, tantek, david, jason, steve, arron, elika, peter
   <anne> +anne
   <glazou> 1 abstain, molly
   <glazou> 1 against, no answer
   <glazou> correction, 1 no anwer is Bert
   <glazou> 1 against Alex
   Peter: Also applies to min-width?
   <Bert> several: yes
   RESOLVED: Names must be consistent with box-sizing
   <dbaron> applies to min-width, max-width, width, min-height, max-height,
            and height
   <dbaron> and does not change the behavior of auto, fit-content, min-content,
            and max-content, and none
   <anne> yeah, so box-sizing:border-box works in Opera
   <anne> without prefix
   <anne> (padding-box doesn't)
   <anne> (nor margin-box)
   <glazou> ==== LUNCH ====

Centering
---------

   * tantek volunteers to take minutes
ScribeNick: tantek
   <tantek> Any other issues on box model?
   Bert: Vertical centering
   Tantek: agreed.
   Elika: possible to extend vertical align to other boxes?
   Jason: we have text-align and we have vertical-align
   Jason: text-align center I can never figure out when it is going to center
   Elika: depends on whether your image is inline or block
   Elika: there are 2 centering discussions to have. 1 is horizontal alignment.
   Elika: ... that is having a property to do horizontal centering rather than
          relying on margin:auto
   Elika: ... and 2. there is vertical alignment/centering
   Jason: maybe I need box align vertical and box align horizontal
   Jaosn: I want a way to say center this box vertically in the page and
          horizontally in the page
   <Bert> I was wrong. The applies-to of vertical align doesn't say it applies
          to blocks. So we *can* generalize vertical-align.
   Elika: centering absolutely positioned elements is different than centering
          in flow elements. You can't tell a box to vertically center itself
          in its containing block without taking it out-of-flow; in normal flow
          you can only tell a parent to center its contents.
   Alex: GCPM (page) floats and float-offset covers some of these scenarios
   GCPM = generated content paged media
   Elika: if we extend vertical-align to boxes other than table cells I think
          it will be awesome
   Steve Zilles: it's not clear that's what you want
   Tantek: I think if you try to extend vertical-align to apply to blocks you
           will run into TONS of compat problems - existing pages that happen
           to set vertical-align on blocks, and having that all of a sudden do
           something will break those pages.
   Steve: it is unfortunate that vertical-align applies in table cells both to
          the alignment of the cell and the alignment of lines in the cell
   Alex: there are three problems that are related
   Alex: 1)Horizontal center for blocks: ‘block-align:center’
   Alex: 2)Vertical align for blocks: ‘block-vertcial-align:middle’
   Alex: 3)Centering and overflow: shift or still center?
   <Bert> (XSL uses display-align: http://www.w3.org/TR/2006/REC-xsl11-20061205/#display-align)
   <fantasai> http://csswg.inkedblade.net/ideas/centering#alignment-property
   Elika: if you want to design an alignment property, here are the issues you
          need to apply
   Steve: so how do we make progress on this?
   <fantasai>  Markus started a discussion about an alignment property to
               standardize on syntax to implement <CENTER>. The property affects
               the alignment of boxes, not of text within the boxes, and it
               inherits. Unsettled details include:
   <fantasai>     * Whether the property affects the element's alignment within
                    its parent or its descendants' alignment within itself.
   <fantasai>     * What alignment possibilities are represented as values.
                    Proposed that the left/center/right/start/end set be adopted.
   <fantasai>           o One set: left | center | right
   <fantasai>           o Another set: left | center | right | start | end
   <fantasai>           o A more complex set that includes top and bottom values
                          that apply in vertical layout. (Such a set should
                          allow specifying e.g. both top and left at the same
                          time, where one takes effect in vertical text and the
                          other in horizontal text.)
   <fantasai>           o Any of the above sets with percentages as an added
                          possibility.
   <fantasai>     * What the property is named. alignment is the working name.
                    An alternative would be horizontal-align, to be consistent
                    with vertical-align.
   <fantasai>     * Whether alignment triggered by this property is "true"
                    alignment, or if it only affects blocks smaller than their
                    containing block.
   <fantasai>           o If the property triggers "true" alignment, then a
                          value that triggers current behavior must be the
                          default. The disadvantage of this is that most
                          authors will not realize use of this property can
                          cause their content to become inaccessible in some
                          window configurations.
   <fantasai>           o If the property does not trigger "true" alignment,
                          then an additional keyword (or several keywords)
                          could be defined to trigger true alignment (e.g.
                          alignment: left vs. alignment: true left). In this
                          case both alignment behaviors are possible, and the
                          default behavior emphasizes accessibility.
   <fantasai>     * How this alignment interacts with the current margin
                    calculations. Possibilities include:
   <fantasai>           o alignment trumps auto margins: auto margins are set
                          to zero and then the box is aligned as specified.
   <fantasai>           o alignment defers to auto margins: it only affects
                          blocks without auto side margins. (Note that the
                          default margin is '0'.)
   <fantasai>     * How alignment interacts with specified margins
   <fantasai>           o alignment replaces specified side margins with auto
                          as appropriate to effect specified alignment
   <fantasai>           o alignment shifts the margin box, leaving specified
                          margins intact
   Bert: I would like to see a decision on how to do vertical centering alignment.
   Tantek: I suggest something visual
   Elika: I suggest something that works like vertical-align on table cells but
          applies to blocks
   <glazou> the new property would align vertically the contents of the cell,
            but w/o relationship to other cells
   Alex: whatever applies to vertical align should have some symmetry for
         horizontal align
   Alex: perhaps a shorthand property block-align for handling both
   Bert: yes, it is possible but it is a mess, quite complex
   Alex: combinations of <center> element, text-align, and margin:auto causes
         as much complexity already as if we would have to do a block-align
         property
   David: the easy solution is that margin:auto wins
   Alex: we solve this with an additional set of hidden margins
   David: you center the margin box within its containing block
   Steve: that gives you the most control so you can adjust the item that is
          being centered
   <dbaron> margin:auto wins isn't quite adequate, actually, since it's really
            like a second set of margins that handles the case when neither
            margin is 'auto'
   Alex: I like property that has specific effect
   Alex: the <center> element is pretty weird in that sense
   Tantek: I reraise request for someone drawing something visual
   Tantek: while we discuss alignment, centering etc.
   (Steve Zilles gets up to the whiteboard)
   Anne: <center> element appears to apply to children but not itself.
         <center> element doesn't center itself, but centers its children.
   Steve: write example on whiteboard:
   Elika: Can do that with center > * { block-align: center; }
   <div><p>Hi</p></div>
   div { height: 200px; width: 200px }
   p { block-align:center }
   Anne: the HTML <center> element centers its descendants
   Daniel: How to center vertically the content of a block if that content
           is only text?
   <anne>
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cstyle%3E%0A%20center%20{%20border%3Adotted%201px%3Bwidth%3A200px%20}%0A%20div%20{%20width%3A50%25%3B%20border%3Asolid%20}%0A%3C%2Fstyle%3E%0A%3Ccenter%3E%3E%3Cdiv%3E%3Cdiv%3Ex%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fcenter%3E
   Steve: are we talking about horizontal or vertical
   Peter: yes.
   David: call it (holds up a coin) heads means horizontal
   David: the toss is heads - horizontal
   * glazou thinks this doubles the duration of this topic
   Steve: it is too difficult to discuss both at the same time, thus it
          is easier to discuss one at a time.
   Steve: if auto margins worked, we wouldn't be discussing this.
   David: the one element case is a case where you can
   Steve: the problem is when the container is smaller than its child
   Bert: currently you are unable to align things
   <anne> (<div align=center> is equivalent to <center> in centering behavior)
   Daniel: if you center the block then it's easy, you center the block inside
           its parent
   Elika: do it like background
   Elika: if we want true center alignment, the author should have to make a
          conscious choice of what happens when it overflows.
   Tantek: Jason what do you think?
   Jason: I'm thinking.
   Alex: you should have both options
   Tantek: I disagree, only options for which there are known use cases.
   David: everybody wants one thing out of this property and it is different
          for each person.
   Bert: I didn't actually want to discuss this. I was asking about vertical
         alignment
   Jason: What is happening with these two boxes?
   Anne hooks up his laptop to the projector to show examples
   Anne: The job of the center element is not to center itself, but to center
         its descendants
   Anne: text is also centered, but that should be left to text-align
   Anne: shows example that all block descendants of <center> are centered
   Anne: inline text is also centered, but that's already handled by text-align
   Anne: also, <div align="center"> works the same as <center>
   Bert: is the requirement to reproduce this?
   Anne: authors are used to this behavior, and thus perhaps it would be good
         to have an equivalent for <center> in CSS
   Bert: this seems like it affects too many things at once
   Anne: this can be handled by simply defining a UA style sheet rule for the
         <center> element
   Bert: should it be inherited?
   David: what authors want is to just center align everything, and thus is is
          easier if you just make it inherit
   Elika: it is hard to undo inheritance
   David: it is harder to undo universal selectors if you are forced to use them
   Steve: if you have to override it then you have to fix all child siblings
   <glazou> you can use #topmost { block-align: center } and
            #topmost * { b-align: inherit } and the property does not apply to
            all decendents
   Bert: it does seem we want a separate property
   Steve: we are going to need it for vertical
   Steve: and not having the same thing for horizontal would be confusing
   Bert: are there any other values?
   Anne: left and right
   Bert: that's handled by margin auto
   Tantek: unintuitive and hard to teach people
   Bert: do we need start and end?
   Daniel: yes
   <fantasai> left | right | center | start | end
   <fantasai> default is start
   Tantek: I thought the start end thing was orthogonal, that that applied to
           lots of properties
   Jason: sounds like to me we need something like clear for alignment
   Jason: so that you could assign an element to stop aligning
   Anne: that would be block-align:initial
   David: if it inherits
   Peter: what happens if there is a sibling to the inner div (in the example
          on the whiteboard)
   <Bert> 'block-align: left; margin-left: auto' is that left or right aligned?
          Currently it is right.
   if it is not inherited, we couldn't use this to handle div align=center
   David: if it is not inherited, we couldn't use this to handle div align=center
   David: it would be too inefficient
   David: we need to use the fast mechanism of inheritance for this
   Tantek: I tend to agree with David
   Alex: you can control them separately
   Anne: the question is you have a block box
   Anne: h1 and div that are siblings
   Anne: if you want to align the h1 to the left
   Anne: and the div to the right
   Anne: that would not work with block-align that only works to its children
   Steve: the same problem will arise vertically.
   Steve: maybe we should give up on horizontal as unnecessary to solve at this
          point and look at vertical
   Anne: I think it is clear because of the way div align="center" works
   Steve: it may not match the way we want to go in the future
   Steve: if we are going to introduce block align vertical we should try to
          make it compatible with block align horizontal
   Arron: are we comfortable with how block align works here and now talk about
          vertical
   <dbaron> For what it's worth, we have 6 different lists of values of the
            align attribute in HTML.
   David: what is it there that you can't do with margin auto?
   Bert: it works only when the containing block is wide enough
   Anne: given that this is the behavior that authors are used, I'm not sure
         what the harm is in giving them a CSS way to do the same thing
   Anne: I think all use cases have been addressed, have been done.
   Alex: I agree there
   Peter: I want blockquotes centered, but text left aligned
   Anne: that can be done with margin auto
   David: I need to see the example
   (Anne updates example on screen)
   Steve: block-align would apply to children, be inherited, and margin would
          allow you to override it on children
   Peter: the only thing that bugs me about this is that if we are using margin
          auto to force the behavior of block alignment  then why are we doing
          block-align
   David: margin auto is for one element. block alignment for all descendants
          of that element.
   Jason: I can see the case for both, where I want it centered all the way down,
          and I can see it needing it specifically on specific elements.  There
          needs to be a better way than margin auto
   Jason: because margin auto is not an intuitive way to do it
   Jason: to me it is very simple: block align horizontal - I want it centered.
   David: the distinction is one element vs. subtree thing
   Peter: as long as you handle overflow situations, I'm ok with that distinction
   Jason: again it gets back to the intuitiveness of margin auto - that's the
          problem.
   Steve: I have some text that is left aligned, then a nested blockquote which
          is centered, and then an attribution on the right.
   Elika: Use case: centering shrink-wrapped table with margins
   Elika: when lots of content, still have some spacing on sides
   Elika: when small content, table is still centered, not left-aligned
   Tantek: you could make it work with block-align applying to the element itself
   (lots of discussion of block-align applying to the block itself, or children,
    or both, and/or inheriting)
   Alex: we already have two ways to center, I'm not sure we have justification
         for a 3rd way
   Peter: the HTML way is deprecated
   Peter: we don't want new documents to use it
   Anne: yes, and therefore having a CSS way would solve that
   Steve: your point is valid.
   Anne: given that all implementers would like to implement this property,
         child-block-align, we could all do prefixed versions
         -ms-child-block-align, -moz-child-block-align etc., or we would just
         all agree on one and do it the same.
   Tantek: sounds like you (Anne) want to write up a child-block-align proposal
           with a URL
   Elika: I think Anne is right, but it doesn't solve all the use cases
   Anne: we couldn't think of one that it doesn't.
   Steve: it doesn't do that one (blockquote and cite)
   Elika: it doesn't solve mine.
   Peter: we have taken an hour and a half so far
   Tantek: are going to talk vertical now?
   Bert: that's what I wanted to talk about
   Steve: I want to express a straw poll
   Steve: at least three of us say that block-align applies to the margin box
   Steve: anyone disagree with that?
   (silence)
   Steve: ok, resolution, it is the margin box that is positioned
   Elika: it looks like we need two properties to address this
   Elika: one, make current uses cases accessible, and two the centered,
          shrinkwrapped table case
   Tantek: we are still talking horizontal right?
   Steve: yes we are still talking horizontal
   Tantek: someone needs to write up a proposal
   ACTION Elika write centering proposal for 2 properties
   ACTION: Elika write block-align centering proposal
   <Bert> (See http://www.w3.org/blog/CSS/2007/12/03/box_module_the_horizontal_centering_prob
           for an ilustration where centering with auto margins doesn't work.)
   ACTION: Elika write child-block-align centering proposal
   Bert: I did integrate and update Markus's proposal into the box model module
   * dbaron thinks Bert said the URL is the://internal/version
   break before we switch to vertical
   <anne> demo:
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cstyle%3E%0A%20center%20{%20border%3Adotted%201px%3Bwidth%3A200px%3Bmargin%3Aauto%20}%0A%20.x%20{%20width%3A50%25%3B%20border%3Athick%20solid%20red%20}%0A%20div%20%3E%20div.x%20{%20border-color%3Ayellow%20}%0A%20h1%20{%20width%3A50px%3B%20border%3Asolid%20purple%3B%20margin-right%3Aauto%20}%0A%2F*%0A%20center%20{%20%2F*block-align%3Acenter%3B*%2F%20child-block-align%3Acenter%3B%20text-align%3Acenter%20}%0A*%2F%0A%3C%2Fstyle%3E%0A%3Ccenter%3E%3Cdiv%20class%3Dx%20align%3Dright%3E%3Ch1%3Ex%3C%2Fh1%3E%3Cdiv%20class%3Dx%3Ex%3C%2Fdiv%3E%3C%2Fdiv%3E%3C%2Fcenter%3E
   Peter: 15-20 min break
   <Bert> Alignment property in current Box Module:
          http://www.w3.org/Style/Group/css3-src/css3-box/Overview.html#the-alignment
   resume meeting
   Elika goes to the whiteboard to start discussion of vertical alignment
   discussion of vertical margins vs. horizontal margins
   discussion of vertical text layout applying to this situation - and noting
     that it is orthogonal and an issue that needs to be more broadly discussed
   <Bert> [Questions about margin collapsing: is 'block-align: top' the default
          or 'block-align: auto'? I.e., does 'top' cause collapsing margins?]
   David: I don't see the use case for introducing block-vertical-align:top as
          something distinct from the default behavior now
   Alex: if you set this on the body, and you want the behavior of the child
         element to be same as the float, you would expect margin collapse
   David: floats are going to be hard for this. does block-vertical-align affect
          floats
   David: if the block has a first child that is a float?
   Alex: layout everything and then ...
   <Bert> 'block-align: top; margin-top: 1em'
   David: maybe if there is a new block formatting context
   <dbaron> nasty case is floats protruding into block
   Steve: what happens with floats from the block above protruding into the next
          vertical block?
   <dbaron> because layout and then slide around doesn't work
   Alex: I think if you say it is a new block formatting context, everything
         becomes simpler.
   David: yes
   Alex: so we need 4 different values
   Steve: why does creating a new block formatting context solve the problem?
   David: float protrusion is ignored across block formatting contexts
   David: the whole block simply doesn't overlap the float
   Steve: it's like an implicit clear
   Elika: no, you might end up with things next to each other
   Steve: then it's like table
   David: yes
   Elika: people will use this to turn off margin collapsing
   Bert: I just had a strange idea, instead of a new property block-align,
         add display value centered-block
   David: what if you want to center an inline-block or table cell etc.
   Steve: I can't support that either because I think it overloads display too
          much
   Steve: so we had, Alex wanted four values
   Alex: anything other than "none" introduces a block formatting context
   Alex: we do normal layout in that context
   Alex: if the distance between the top margin of the first child and the
         bottom margin of the last child is smaller than the vertical space
         within the element, then we can align to bottom or middle.
   Bert: if it is more...
   Alex: if it is more, then we get into the issue of centering something
         that doesn't fit
   Bert: the question is which side does the overflow go on
   Elika: How does this interact with vertical-align on table cells? I think
          you need the default to be 'auto' which means honor vertical-align
          on table cells
   Steve: the only way we can introduce this property is if the default is
          "do what we do today"
   Tantek: I'm asking for a picture at this point
   Alex goes to whiteboard
   Alex draws example of what he just said above
   Steve: so we include the margins as part of the chunk that is aligned?
   Alex, others: yes
   Alex draws a float
   Bert: does this apply to table cells?
   Bert: just a question - i don't know the answer
   Alex: it should apply to everything
   and if both are applied, I'm not sure
   Alex: if both are applied, the new property wins
   Bert: similar case, advanced layout, how do you center something in a grid
         cell?
   Bert: is that vertical-align or a new property
   Elika: the advantage of vertical-align is a baseline value which you might
          want
   Alex: you have to have a baseline for that
   Alex: as long as you can define what a baseline is for a group of cells
   Alex: in advanced layout that would be an interesting challenge
   Alex: no that is not going to work
   Bert: I don't know any designer that doesn't want baseline alignment.
   Elika: you don't need to use advanced layout for tabular data or name-value
          pairs
   Bert: may or may not
   Elika: in Jason's layout you may want to have them align
   Bert: who is going to write up the vertical case?
   Steve: the hard part of the vertical case is what it is that we do today
   ACTION: Alex write up the four value proposal for vertical alignment for
           the block-align property.

page-break-inside
-----------------

   Peter: next subject
   Peter: page break
ScribeNick: Bert
   Elika explains page-break-inside issue
   Some use cases...
   Elika argues the need for not inheriting 'page-break-*: avoid'
   Steve: XSL adds a strength to its "keeps" (which are like page break avoid)
   Peter: Could als have additive strength: every child can add to the strength.
   Steve: yes, then you break ate the lowest strength break point by preference.
   Alex: We are willing to reverse the CSS 2.1 implementation.
   David: How de we get in this situation?
   David: with different implementations doing inheritance or not.
   <fantasai> http://fantasai.inkedblade.net/style/tests/issues/page-break-inheritance
   * Bert suspects that doesn't work...
   Fantasai: Could make nested avoids stronger later
   Alex: It is probably not possible to find the bext break point without a
         O(n^2 ) algorithm.
   Alex: An explicit property is probably better than a complicated algorithm.
   Alex: Our plan is to ignore the proeprties when no page break is allowed
         and find a page break then.
   Alex: Maybe not try to solve that problem now.
   Fanatasai: But leave possibility open.
   <anne>
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A%3Cstyle%3E%20%23x%20%7B%20page-break-inside%3Aavoid%20%7D%20%3C%2Fstyle%3E%0D%0A...%3Cdiv%20id%3Dx%3E%20%3Cdiv%20id%3Dy%3E%20%3C%2Fdiv%3E%20%3C%2Fdiv%3E%0D%0A%3Cscript%3E%20w(getComputedStyle(document.getElementById(%22y%22)%2C%22%22).pageBreakInside)%20%3C%2Fscript%3E 

shows that Opera does inherit page-break-inside:avoid at least for getComputedStyle purposes
   Alex: Even if we define this better, there will not be perfect interop.
         We would also need line height more interoperable.
   Alex: I expect we will not do the strength. Would prefer to honor a 'allow'
         value.
   Steve: XSL is implemented and works, with strengths.
   <dbaron> It's nice to see that 13.3.3 and 13.3.4 say page-break-before
            and page-break-after both apply on both sides of the box
   Peter: So we make minimal change in CSS 2.1 and do more later.
   David: This change requires a new last calll.
   Peter: We can go to last call and only accept comments on the specific change.
   Fantasai: But white space in tables also requires a last call.
   <fantasai> * In CSS2.1 make page-break-inside not inherit anymore, but still
   <fantasai>   discourage breaks inside its descendants: basically avoid
                breaking at a break point with a page-break-inside: avoid
                ancestor (rather than direct parent).
   <fantasai>    -- 'page-break-inside' no longer inherits
   <fantasai>    -- 13.3.3 rule D says
   <fantasai>       Rule D: In addition, breaking at (2) is allowed only if the
   <fantasai>       'page-break-inside' property is 'auto' <INS> and no ancestor
   <fantasai>       has a 'page-break-inside' property of 'avoid'.</INS>
   Steve: I'm opposed to the change.
   Bert: I'd rather not change either.
   Steve: A last call cannot be restricted to just one change, must accept
          comments on everything.
   Anne: The test case doesn't seem to test what Elika proposes.
   Elika: It does
   ACTION: Elika and Anne to review test case for page break inside and report
           back with a recommendation to the group about how to move on

Syntax
------

   Fantasai: Concerned about difference in white space syntax of nth-child()
             and calc().
   Fantasai: Want consistency: either both need space or neither.
   Anne: Principle should be that space is irrelevant.
   David: Except where it s needed, between two idents, e.g.
   [Example of 2n-1 being a DIMEN token]
   Anne/David: and if we ban numbers or non-letters from units...
   David: but allow underscores (for vendor extensions)
   [but "n-1" is an ident and will remain an ident]
   <glazou> exactly
   Peter: Can we change an+b to a,b ?
   Daniel: too late for that.
   Daniel: and the "n" and "+" help to show which number does what.
   [Spec has no examples with white space]
   Daniel: Even so, people will write with white space.
   David: No space between a and n is fine, looks similar to a unit.
   Tantek: no space between sign and number either.
   Daniel: I think people will put a space between + and b.
   Daniel: We should consider user's point of view. Either way is not so
           difficult to implement.
   Daniel: "7n + 3" looks very intuitive, is used in many other places
           that people now.
   Peter: And "2n + -3" ?
   several: should be forbidden.
   Alex: Can we allow spaces as well as no spaces and define what "n-1"
         means separately?
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2008Mar/0111.html
   [More dicussion about what spaces are required in calc()]
   Peter: I don't think designers will understand that spaces are not allowed
          in nth-child but *are* required in calc()
   Daniel: We will get some comments on this no matter what.
   Steve: Yes, but only it is shipped.
   Steve: Why not make nth-child argument an expression?
   Steve: ... with exception of the an part, which must remain together.
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2008Mar/0111.html
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2008Mar/0121.html
   David's proposal (link 0111 above) allows space except between a nd n.
   <tantek> in the interest of progress I'm ok deferring to David's proposal.
   Fantasai's variant (link 0121 above) is a better wording.
   [David describes the parsing algorithm anddealing with incorrect expressions,
    such as "+-3"]
   David: 3n++2 has to be rejected, too.
   Steve: The spec doesn't actually say anything about ++
   Tantek: Better not mess with something that has been CR for so long, five
           years, already.
   David: I'm OK with relaxing restriction in the future, but not for this
          version.
   Peter: We don't have to note in the spec that we may lift the restriction.
   <anne> Anne: I think allowing an+-b is fine
   Steve: Question if it is editorial or not depends on if it changes the
          conformance.
   <anne> (and an-+b for that matter)
   Strawpoll on Elika variant of David's proposal:
   Numerous in favor, no opposition.
   [Discussion about what the spec allows or not about spaces]
   ACTION: Daniel to make changes to spec for Selectors to allow spaces as
           per David/Elika's proposal.

CSS2.1
------

   <fantasai> http://lists.w3.org/Archives/Public/www-style/2008Mar/0166.html
   <fantasai> which is issue 38 http://csswg.inkedblade.net/spec/css2.1#issue-38
   Are attribute selectors [att~="x x"] (i.e., with a space) allowed or not?
   <fantasai> RESOLVED: Copy wording from Selectors 3 to CSS2.1
   ACTION: Bert to make change to CSS 2.1 as per Elkia's proposal.
  * trackbot-ng noticed an ACTION. Trying to create it.
  * RRSAgent records action 10

   <fantasai> http://csswg.inkedblade.net/spec/css2.1#issue-24
              http://csswg.inkedblade.net/spec/css2.1#issue-32
   <SteveZ2> The definition of a substantive change (which can trigger a return
             to WD) is:
   <SteveZ2> A substantive change (whether deletion, inclusion, or other
             modification) is one where someone could reasonably expect that
             making the change would invalidate an individual's review or
             implementation experience.
   David gives example: @media screen { p {color: green} div }
   The last } doesn't close the @media according to the spec.
   <tantek> and according to David, Firefox properly ignores the last } and
            keeps processing "inside" the @media block, whereas *other* (not
            named) implementations close the @media block by that last }
   <tantek> and I know exactly what this will be used for. >:D
   Bert: I'm not sure I agree with David's analysis.
   Elika: Extending this (issue 24), we should have thematching-brackets
          principle apply generally across CSS and be the strongest parsing
          rule after strings -- and it should apply everywhere, not only in
          declaration blocks
   Peter: Do you always close an open paren on the stack before any other
          recovery rule?
   Steve: After an error, stop as soon as possible?
   Peter: Other example: @media screen { p {color: green} div:nth-child( }
   Peter: Now there is a { and an ( open.
   Anne: And if it were a different @-rule, say a future one, that does not
         have rules inside?
   Anne: Or consider a UA that doesn't implement @media.
   Anne: The example of David is well-formed.
   David's proposal to fix the spec is
     http://lists.w3.org/Archives/Public/www-style/2008Mar/0353.html
   David gives another example: p {width: calc(3px }
   Fantasai: this would eat the } as part of the calc.
   Daniel: There is an error and thus you look for a }, which you find right
           away.
   Fantasai quotes from text that says to skip tokens but match paren pairs.
   <anne>
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%0A%3Cstyle%3E%20%23x%20{%20background%3Aurl(x}%20)%20}%20%23x%20{%20background%3Alime%20}%20%3C%2Fstyle%3E%0A%0A...%3Cdiv%20id%3Dx%3E%20xxx%3Cdiv%20id%3Dy%3E%20%3C%2Fdiv%3E%20%3C%2Fdiv%3E%0A%0A
   <anne> (try removing the closing parenthesis)
   <fantasai> "Malformed declarations. User agents must handle unexpected
              tokens encountered while parsing a declaration by reading until
              the end of the declaration, while observing the rules for
              matching pairs of (), [], {}, "", and '', and correctly handling
              escapes. For example, a malformed declaration may be missing a
              property, colon (:) or value."
   <fantasai> from 4.2
   ACTION: Arron to come up with more tests.

   Topic: Issue 25
   <fantasai> http://csswg.inkedblade.net/spec/css2.1#issue-25
   <fantasai> Define what effect } has in style attribute syntax.
   <anne> (I wonder if it's defined that '{}html { background:lime }' should
          apply)
   David: There are actually different rules in Firefox in quirks vs standards
          mode.
   <fantasai> style="color: red; } ; color: green; "
   <fantasai> is it red or green?
   Peter: Is it an HTML question or CSS question?
   David: I suspect HTML says something vague like: expects style data...
   Anne: HTML5 says a declaration block, I think.
   <glazou> The syntax [p.57] of the value of the style attribute is determined
            by the default
   <glazou> style sheet language [p.186] . For example, for [[CSS2]] inline
            style, use the
   <glazou> declaration block syntax described in section 4.1.8 (without curly
            brace delimiters).
   Daniel: HTML says the style sheet language chose determines the syntax.
  * anne tries loading HTML5...
   <anne> it should be somewhere here:
http://www.whatwg.org/specs/web-apps/current-work/multipage/section-wysiwyg.html
   <anne>
http://64.233.167.104/search?q=cache:NGAhkwJnYLMJ:www.whatwg.org/specs/web-apps/current-work/multipage/section-presentational.html+html5+style+attribute&hl=en&ct=clnk&cd=2&gl=us&client=opera
   <anne> "The style attribute, if specified, must contain only a list of zero
          or more semicolon-separated (;) CSS declarations."
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2007Dec/0167.html
   <plinss> style="color:red}"
   <plinss> style="color:red;}"
   <anne> style="color:lime; (; color:red"
   <anne> (though per HTML5 that could be argued to be red)
   Daniel: Peter's first example is thrown away, the second has one valid
           declaration.
   Anne: Can split at ";" first and then parse each part, or parse the whole as
         a CSS block.
   ACTION: Daniel report to HTML WG that def of style attr in HTML5 is
           incompatible with def in HTML4 and probably problematic from point
           of view of CSS parsing rules.
   <dbaron> For example, for [[CSS2]] inline style, use the declaration block
            syntax described in section 4.1.8 (without curly brace delimiters).
   <dbaron> is what HTML 4.01 said
   Tantek: So HTML should not define any rules?
   Tantek: The CSS module for Style attribute syntax was supposed to define this.
   Tantek: Could strip that module to just the piece that describes the current
           style attribute and take it to PR immediately.
   RESOLVED: a mismatched closed brace in a style attr is treated as an invalid
             token.
   <anne> style="} background:red " versus style="}background:red "
   <anne> versus style="};background:red "
   <fantasai> http://lists.w3.org/Archives/Public/www-style/2008Mar/0166.html
   <anne>
http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0D%0A...%3Cdiv%20id%3Dx%20style%3D%22background%3Ared%20%22%3E%20xxx%3Cdiv%20id%3Dy%3E%20%3C%2Fdiv%3E%20%3C%2Fdiv%3E%0D%0A%0D%0A

Empty Substring Attribute Selectors
-----------------------------------

   David: Previously we decided they were parse errors.
   David: But it also seems to affect ~= in CSS2, so now I think we should not
          do that, because it affects CSS2.
   Peter: Previously we said it was valid but matches nothing.
   David: CSS 2.1 says it;s a space-separated list of words, an empty string
          has no words, so matches nothing.
   Peter: How about [x~="  "] (*two* spaces), is that an empty word between
          two spaces?
   <anne> (I like what Opera does for style attributes. Open the block, close
          it when you hit }.)
   Peter: Existing behavior is that it matches nothing, in three implementations
   Peter: So propose to revert previous decision and say it is valid (but
          matches nothing).
   Peter: Spec should makes this explicit.
   ACTION: Elika check in Alan Gresley's empty attr selector testcases for
           CSS2.1/CSS3, investigate :not()
   David: For the other attribute selectors, the empty string *always* matches,
          rather than never. Only Mozilla matches nothing, but I can change that.
   Peter: Would like similar behavior from all attribute selectors.
   David: Matching on words with ~= is somewhat different from matching
          substring, though.
   Proposal: *= ~= ^= $= all accept empty string, but match nothing
   RESOLVED: proposal accepted
   Question about two spaces in [x~="  "] was not further discussed.
   End of meeting.

<dbaron> We should consider adding
<dbaron> ot txet cinodehportsuob
<dbaron> Cascading Style Sheets.
<glazou> ADJOURN FOR TODAY
ACTION: Elika post page-break-inside examples to www-style
<Hixie> if anyone is still here who is near daniel, let him know that i
         agree with his comment on style="" and html5
<Hixie> and that the spec will be fixed in due course

Received on Wednesday, 2 April 2008 19:20:19 UTC