Minutes and Resolutions TPAC F2F 2010 Tuesday Morning: Grids, Bidi Controls, 'writing-mode' property, tate-chu-yoko

Grids
-----

   Microsoft presented another layout proposal that deals with grids.
   There is a lot of overlap with Template.

CSS3 Writing Modes
------------------

   - Aharon and fantasai explained the new 'isolate' and 'plaintext' values
     for 'unicode-bidi', what use cases they solve, and how they interact
     with HTML5's bidi features.
   - fantasai explained the new 'writing-mode' property and its relationship
     to SVG; why it does not set the 'direction' property, and why the value
     names were changed
   - RESOLVED: remove the horizontal-bt value of 'writing-mode'
   - Briefly reviewed 'text-orientation' property.
   - Discussed tate-chu-yoko feature requirements.

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

Present:
   Tab Atkins
   David Baron
   Bert Bos
   John Daggett
   Beth Dakin
   Elika J. Etemad
   Sylvain Galineau
   Daniel Glazman
   John Jansen
   Richard Ishida
   Koji Ishii
   H�kon Wium Lie
   Peter Linss
   Markus Mielke
   Alex Mogilevsky
   Ilkka Oksanen
   Steve Zilles

<RRSAgent> logging to http://www.w3.org/2010/11/02-CSS-irc
<RRSAgent> http://www.w3.org/2010/11/02-CSS-minutes.html

Scribe: jdaggett

Grids
-----

   +Phil Cupp on the phone from MSFT
   <mmielke> http://www.interoperabilitybridges.com/css3-grid-align/
   alex: need some good 2d layout mechanism in css
   alex: need for ui apps not just free-flowing text
   alex: several proposals for grids/table like layout
   alex: looked at requirements first
   alex: we like our proposal
   alex: how does this relate to previous proposals?
   alex: this proposal is based on xul, wpf-grid, probably closest to wpf-grid
   alex: but uses flex box like elements (?)
   alex: make sense?
   alex: let's go over the spec

   alex: grid works by defining grid lines
   alex: layout using row, column coords and how many columns it overlaps
   alex: grid sizes to content
   alex: works for both fixed/float cases
   alex: define using
   alex: display: grid | inline-grid
   alex: grid-column, grid-row with value to define grid
   alex: (looking at ex 2)
   dbaron: what are the values of grid-columns, grid-rows?
   alex explains syntax
   * fantasai is having a hard time understanding why this is better than
              Template
   markus: values are from template spec
   alex: columns, rows can overlap
   alex: lots of interesting overlap cases
   alex: for example, equivalent of xul stack layout with single slot w/
         multiple items stretching to largest
   jdaggett: does this have features that template doesn't support?
   alex: overlapping elements
   bert: also, this allows you to automatically grows grid with content
   bert: I explicitly left that out of Template to keep it simple
   sylvain: yeah, if you add content at 5,5 to a 3,3 grid it grows automatically
   alex: useful for sparse grids, or grids where order can change
   markus: no-brainer if know tables
   alex: no ascii art
   jdaggett mourns this
   * mollydotcom mourns no ascii art too
   * TabAtkins too!
   bert: syntax question, many ways to express concept
   * TabAtkins suggested a way to still mix-in ascii layouts that mesh well
               with the rest of Grid.

   fantasai: snap to grid functionality?
   alex: not yet, every item is explicitly placed
   fantasai: not a fan of positioning aspect
   fantasai: but a flex box layout aligned to grid would be powerful
   fantasai: using flexbox or template to align would not break with reflow
   <glazou> glazou 'grid-cell: 'selector'' can be added afterwards
   * mollydotcom agrees with fantasai - the positioning isn't design-intuitive
                 but a flexbox aligned to grid would make designers drool
                 with happiness. Snap to grid would do so as well.
   <fantasai> mollydotcom, exacty. I think flexbox or template + snap-to-grid
              would be great
   <fantasai> It seems to me easier to use, and less likely to break with
              reflow effects (window resizing, font resizing, changing
              content, etc.)

   peter: typically grids are defined by lines not cells
   peter: and align to line, not cell
   jdaggett: didn't you propose grid positioning with grid lines?
   alex: no real contradiction between the two
   alex: we didn't want to combine the two
   peter: I want to align to a gridline. And I'd probably want to align
          to a named gridline, so I can insert other grid lines later
          and not have it move
   alex: could have circular dependencies
   alex: i would to see both
   alex: but don't want to spend the whole time resolving dependencies
   alex: can do the same with this as with gridlines
   jdaggett: Graphic design books that talk about grids, was more along
             what Peter was saying
   jdaggett: This model you're going to have to do extra work to define that

   markus: two core use cases
   markus: 1. print design layouts
   markus: 2. app layouts
   markus: this is more for (2)
   alex: grids in print don't deal with resizing issues
   alex: much better to have some that are fixed, some that flex
   alex: when grid is sized by content is actually more useful but doesn't
         cover all scenarios
   stevez: symbolic identification
   stevez: names to cells?
   fantasai: that's what template does
   alex: we have started with minimal feature set
   peter: i don't want to name cell, i want to name lines
   peter: if a grid row/line is added in the middle, the grid shrinks
   peter: i want to span from one gridline to another
   peter: even if lines are added in between
   peter: could be dynamic or for additive layout
   peter: like in the case when you just want to add a logo to a layout
   pcupp: we thought about a pseudo-element that spans cells (?)
   pcupp: the cell defines a region for content to be laid out
   <Bert> (Maybe Peter is thinking of something like: 'grid-columns: a=0%,
           b=75%, c=50%' and then 'grid-column: c'?)
   pcupp: maybe it's aligned, maybe it stretches
   pcupp talking about an example...
   markus: just a slightly different use case
   alex: can it be used as gridlines? no, not just with this
   alex: but we want to have some form of gridline like capability
   sylvain: i think we need to capture peter's use case
   sylvain: of inserting new gridlines
   peter: this defines cells but i don't think we need another way of
          defining cells
   alex: this is about grid alignment of cells
   alex: obviously we can take it further
   peter: I understand this gives some more capabilities that template
          doesn't have, but let's improve template and use this module
          to do something different
   peter: give me the ability to name a gridline
   peter: so that i can say "this thing goes in a box that goes between
          these gridlines"
   peter: this way i can define my cells arbitrarily
   peter: rows/columns we already have, if we're adding something, let's
          add something new

   daniel: peter's proposal is not far away from my proposal to define
           layout with respect to other elements
   murmurs of disagreement
   <dbaron> I think this is pretty different, since this contains things
            properly so things won't overlap.
   <glazou> dbaron: : no overlap ?
   continuing through spec
   * mollydotcom it is something that must be worked out. Grids/lines is
                 a very familiar paradigm in design. And as Peter points
                 out, we have rows and columns already
   * Bert thinks the problem is that layout may be the missing piece, but
          everybody defines layout differently...
   * mollydotcom adds that the medium often defines layout limitations too,
                 screen v. handheld, etc.

   alex: there is a property that controls the order of rendering
   alex: to deal with overlapping elements
   alex: not super important
   (section 8 of spec)
   peter: what if you just use z-index?
   alex: we can discuss that
   peter: i don't see the difference
   alex mumbles...
   and smiles
   daniel: i'm considering working on peter's proposals
   daniel: i have a few ideas about this
   howcome: use cases would be interesting
   howcome: for comparison
   daniel: i'll work on the ideas, then the use cases if i have time
   stevez: there were previous proposals for...

   stevez: a two-column layout with a figure in the middle
   stevez: there's an issue with how to overlay
   howcome: that's in gcpm!!
   howcome: but this is app centric, not document centric
   peter: lots of use cases for document centric uses
   daniel: this is really about app centric use
   alex: concurs
   stevez: i'm dazed and confused
   * fantasai notes that flexbox was intended to solve the app-centric
              layout model
   <fantasai> I believe template + flex could do most of these layouts,
              aside from the overlapping ones
   stevez: i thought you were tailoring the syntax for one use
   markus: there's an aspect....
   * glazou said he's accepting an action item to work on a new proposal
            more line-centric
   pcupp: we think it's the common case where controls are composed using this
   section 2.4, figure 6
   picture of a slider
   because the world needs more sliders...
   alex: what can we do with this?  new module?  merge with another?
   bert: seems close to flex box
   tab mumbles
   bert: i have a number of comments
   bert: when you put two elements in the grid they overlap, they don't add
   bert: might be good or bad
   markus: you need it as in the slider example
   tab: this example is also nice for being able to overlap
   <szilles> +1 for tab's comment
   bert: what's the intrinsic size in this case?
   <fantasai> <slider style="display: flexbox">
                <lower-fill style="flex: 0.5"/>
                <thumb style="position: absolute; width: 2N; left: -N">
                <upper-fill style="flex: 0.5"/>
              </slider> ?
   alex: multiple items in cell all affect sizing
   tab: I provided an example in my response to the grid-align thread
        where it was useful to be able to position multiple items in
        one cell and have them flow together, rather than overlap.
        However, overlapping is *also* useful.
   bert: don't like three props, why not one
   alex: yeah but that would be a long line
   alex: well you don't need to specify predefined size
   bert: wondering float and position
   alex: works just like flex box
   <dbaron> I'd prefer not to put complicated syntax inside values of 'display'.
   * fantasai too
   alex: float ignored, position with regards to nearest positioned element
   tab says something i don't understand
   alex: position might also work the same way but not affect sizing
   tab: in my position layout proposal, i came up with a good model for
        positioning in new layout proposals
   <dbaron> I think alex said there are two options for position: absolute;
            the normal way (placeholder, etc.) or position according to
            grid rows/columns but not affect sizes of the grid rows/columns.
   Tab: In my Positioned Layout proposal I specified a consistent and easy
        way to make positioning interact with other layout modes.
   Tab: The positioned element leaves behind a placeholder element.
   TabAtkins: You could then use the grid properties to position the
              placeholder, which would affect the 'auto' position of the
              abspos box (what it means for "top:auto", etc.)
   alex: the way to think about absolute positioning
   alex: with a grid it's obvious where it's positioned
   alex and bert discuss this
   bert: difference between grid-row and grid-rows is just one letter
   bert: same for columns
   syntax discussion

   bert: for flex box the content is in a given order
   bert: with this proposal the source order doesn't affect the order in
         the grid
   alex: one possible extension is auto-incrementing rows/columns
   alex: this is closer to xul grid
   dbaron: also auto-incrementing row-groups/column-groups
   <dbaron> and you could allow them to take grid-row/grid-column (or lines)
            and not start at the top-left
   bert: the idea that you auto-create the table based on a single cell
   bert: but you can't catch errors in your design
   bert: because it's not based on explicitly named entities
   alex: either way you need to define a protocol here
   bert: i'm not sure plus/minus but it does mask errors
   bert: you don't allow % in cell size
   alex: could be added
   tab: what exactly do you want to base the % on
   tab: you need to explain which the % is based one
   dbaron: i was thinking of someone designing a page
   dbaron: with embedded grids with constraints between elements
   dbaron: with this proposal you would use nested grids
   <Kai> +1 to David's proposal
   dbaron: are there cases where nested grids need to line up with ...
           outer grid lines
   peter: this is why named gridlines are handy
   <Bert> (DBaron wants something like constraints on the columns widths:
           a = b = c, d = e, sum(a.e) = parent, but not relation between
           a,b,c on one hand and d,e on other...)
   pcupp: so you're talking about how to line up nested grids with outer grid
   pcupp: with unioned gridlines, spanning behavior becomes hard to predict
   pcupp: things tend to grow in unpredictable ways
   <fantasai> dbaron's drawing:
   <fantasai> +--------------+
   <fantasai> |              |
   <fantasai> |        +--+--+
   <fantasai> |        |  |  |
   <fantasai> +--+--+--+--+--+
   <fantasai> |  |  |  |     |
   <fantasai> +--+--+--+     |
   <fantasai> |              |
   <fantasai> +--------------+
   bert: also, you can't put something in your cousin grids, only grids
         within single tree
   bert: just a remark
   bert: this is hard
   bert: cesar found examples where this might be handy
   stevez: why is that a good thing?
   bert and steve discuss trees and cousins
   stevez: similar to separating template from content
   bert: you can select different grids from screen size
   bert: you can use the body element to hook your grid on
   bert: those are my comments
   fantasai: you might also want named grids
   fantasai: main and secondary
   fantasai: but maybe i don't totally understand
   <Bert> (Something like: 'grid-column: a.1' for column 1 in grid a?)

   alex: we would like to make this an editor's draft
   alex: what else do we need to get there?
   alex: we can make changes to deal with use cases and functionality discussed
   stevez: how many table-like layout mechanisms do we need?
   markus: you need a variety
   markus: you need abosolute positioning, flex box, grid
   * fantasai wonders if xul has abspos
   markus: each solves a different use case
   pcupp: overlap in grid / flexbox use
   pcupp: they're complimentary
   peter: this is a 2d flexbox
   stevez: there are comonalities
   stevez: declaring size constraints
   stevez: concerned about complexity
   markus: in the end it all makes sense
   markus: app vs. doc roles
   tab: steve, your concern is that we get too much complexity?
   stevez: it's that we have a lot of ways of defining cellsize
   stevez: are the pieces the same across all three sizes?
   * Bert wonders if we should have not just a CSS Beijing, with the stable
          features for typography, but also a CSS Lyon, with the stable
          features for GUIs. Maybe few UAs need to do both...
   tab: you can express everything in one master model
   tab: different uses require different layout models
   tab: layout models interact in orthogonal ways
   * glazou thinks we spend far too much time on specs that don't provide
            new technical stuff and does not want another "snapshot" for
            every ftf
   tab: make each as easy as possible
   stevez: i'm ok with that but i want to make sure that concepts carry
           across the models
   stevez: the base primitives need to be consistent
   tab: yes, you want primitives to work across layout models (?)
   howcome: healthy competition across modules is good
   howcome: this model and template don't make sense together
   * Kai is concerned about authors being able to distinguish between the
         various modules and starting to mix and match, perhaps creating
         problems down the road
   stevez: is there an action item for bert/alex to combine these ideas
   bert: future ideas, non-rectangular cells, chained cells
   howcome: and across pages
   bert: so the question is how these concepts fit with that
   peter: grids that flow across pages or grids that repeat
   peter: can we use the same syntax for both
   markus: need to be careful about use cases
   markus: if combination is complex, life sucks for everyone
   peter: one problem is that you're calling this a grid
   peter: it's not really a grid
   stevez talking about the beauty of xsl
   markus: need to solve both print-like and app use cases
   markus: two action items, alex/bert to kibbitz
   markus: and talk with daniel about his ideas
   peter: may end up with 90% overlap
   stevez: could be true, punchout or overlay, small set of props captures both
   stevez: a model for both is important
   stevez: no problem if app is favored, since docs are harder
   peter: i just want us to be thinking about this
   markus: yeah, maybe grid is not the best name here

   fantasai: grid-columns and grid-rows are common to both grid specs?
   alex: yeah, we have to merge or redefine
   discussion of what to do with the document
   daniel: grids are already in the charter
   stevez: not sure this is FPWD ready
   stevez: we should do some vetting
   daniel: don't need to name it now
   markus: first agree on what's in these specs

<br type="coffee"/>

ScribeNick: TabAtkins

CSS3 Writing Modes
------------------



   <sylvaing> http://dev.w3.org/csswg/css3-writing-modes/
   fantasai reviews the draft from the top down. See
 
http://dev.w3.org/cvsweb/~checkout~/csswg/css3-writing-modes/Overview.html?rev=1.37&content-type=text/html;%20charset=iso-8859-1

BIDIRECTIONALITY

   fantasai: In the draft, I define some terms and drew some pictures.
   howcome: I suggest simplifying the terms to 'inline direction' and
            'block direction', not '* flow directionality'.
   szilles: I think "directionality" is a hard word for non-English speakers.
   fantasai: Okay, don't have an opinion much.
   [Aharon later suggests "inline base direction"]

   fantasai: Most of the bidi text here is just copied from css 2.1.
   <sylvaing> section 3.2. title typo: 'uncode-bidi'
   dbaron: Could we have an additional set of parens on the unicode-bidi
           property, so we don't have to rely on knowing the relative
           strength of the opeerators?
   fantasai: yep

   fantasai: 'isolate' is a new unicode-bidi value, proposed by the bidi
             for html group.
   fantasai: That prevents strings that have a different directionality
             from having an effect on the text around them.
   fantasai: There's also a plaintext value, which is intended to use the
             unicode bidi algorithm's plaintext heuristic to determine the
             bidi direction of each paragraph.
   fantasai: This does *not* affect the direction property, it just affects
             bidi resolution.

   aharon: Should I give use-cases for 'isolate' and 'plaintext'?
   szilles: Would be helpful.
   <dbaron> http://www.w3.org/TR/2010/WD-html-bidi-20100304/ has some use
            cases for these new features, no?
   aharon: 'isolate' is useful in the context of a webapp that is inserting
           data into a page.
   aharon: Frex, I'm displaying search results, and the title of the results
           are outside data and may not be in the same language as the rest
           of the UI.
   aharon: If you don't isolate the titles, it quite often interacts with
           the stuff around it, such as numbers and other neutral characters.
   aharon: Outside of an app, it's useful for quotes and links - I can't
           imagine why you'd want a link to be broken up into two parts due
           to its directionality interacting oddly with the surrounding content.
   fantasai: It drastically reduces the number of LRM/RLM you have to use.

   aharon: Side thought - I think instead of "inline direction", use
           "inline base direction".
   aharon: The base direction is controlled by the 'direction' property.
   aharon: There are a couple of problems.  You might not know what the
           direction is - it could be outside data.
   aharon: It is very useful to let the UA guess what the direction is using
           standard algos based on the characters in the data.
   aharon: There is a separate proposal in HTML for @dir=auto
   aharon: That's not precisely what we have here in 'plaintext'.
   aharon: The UA, in HTML, sees dir=auto, looks at the content, decides
           whether the direction is rtl or ltr, then sets the CSS 'direction'
           appropriately.
   aharon: That's good, but doesn't go quite far enough.
   aharon: Let's say I have a textarea - plaintext - that the user is typing
           into.
   aharon: Is it fairly useful to have some paragraphs in one language and
           some paragraphs in another language.  Frex, I'm typing in a
           restaurant review in Hebrew.
   aharon: I give the review in Hebrew, then say "the address is:..." and
           give it in French because the restaurant is in Lyon.  If I don't
           switch the direction of the paragraph, the number at the start
           of the address will go on the wrong side.
   aharon: So you want the ability to have paragraphs that go in different
           directions.
   aharon: If you're doing markup, that's great - you can just make separate
           paragraphs.
   aharon: If you're just typing into a textarea, though, you can't do that.
   aharon: The unicode bidi algorithm defines a simple way to define the
           directionality of each paragraph (where "paragraph" is defined
           by the bidi algorithm).
   aharon: So 'plaintext' would say that the textarea isn't necessarily ltr
           or rtl, it's plaintext where each paragraph can go either way.
   aharon: It's still not limited to textarea, of course - often after
           taking the data from a textarea you want to then display it.
   aharon: So you want to still be able to apply this same directionality
           algorithm to the results outside of a textarea.
   aharon: You can't hide the directionality determination from CSS with
           dir=auto here, because the different paragraphs aren't marked
           up as explicit elements.

   dbaron: [question about which characters serve as paragraph separators]
   aharon: The unicode algorithm is very precise about which characters are
           paragraph separators. In the past, some browsers didn't follow
           that exactly, which is basically a bug.

   Bert: What's the difference between 'embed' and 'isolate'?
   aharon: 'embed' says "this element has a base direction", but that
           doesn't prevent the element from affecting stuff outside of it.
   aharon: So, if I have an english paragraph, but in the middle is an
           arabic word and then an embed of a separate element which is
           explicitly rtl.
   aharon: The unicode algorithm says that the arabic and the rtl are
           merged together and will both flow rtl together.
   aharon: You don't want this - logically, the arabic and the embed are
           separate, and shouldn't stick together.
   Bert: So inside, 'embed' and 'isolate' are the same. They're different
         outside?
   aharon: Yes.

   howcome: It seems that you need to explicitly set all block-level
            elements to 'isolate'?
   dbaron: That should be in the default stylesheet.
   aharon: You don't necessarily need it.  It's just that if you have a
           block-level element and you use CSS to make it display inline,
           you really want it to still be isolated.
   aharon: Right now HTML5 effectively says that all block-level elements
           should be 'embed'; we just changed it to 'isolate', which is
           closer to the intent.
   aharon: As to making a block inline, one example is an inline list.
           If some of those values are opposite direction, it's important
           to have isolation apply to them.
   howcome: So, can we in any way hinge this behavior on the existing
            CSS display?
   fantasai: If the display is anything other than inline, you already
             *effectively* have the isolate value.
   fantasai: The problem is just that when you change the display value
             to inline, there's no CSS distinction to tell us that this
             *used* to be a block-level, so you need 'isolate' there.
   * kennyluck http://dev.w3.org/csswg/css3-writing-modes/#bidi-html looks relevant
   TabAtkins: You can in the UA stylesheet just set all the block elements
              to 'isolate', so the author doesn't have to think about it.
   howcome: But you have to remember to set 'isolate' in new XML languages.
   TabAtkins: Yes.

   Bert: Does this cover all known cases?
   fantasai: This covers all of CSS2.1 + all of the proposals from the
             bidi subgroup for i18n.

VERTICAL TEXT

   fantasai: Now, 'writing-mode'.
   fantasai: The previous writing-mode property was a shorthand for
             block-flow-direction and 'direction'.
   fantasai: One of the things I was tasked with was to sync with SVG,
             which is very explicit that the writing-mode and direction
             property don't interact.
   fantasai: The SVG spec has these valuees (lr, lr-tb, rl, tb, tb-rl)
   fantasai: I could figure out what the 'rl' value was and how it
             differs from 'lr'.
   fantasai: The SVG spec says you do bidi reordering, then use
             writing-mode to change the inline progression direction.
   fantasai: Which is left to right in 'lr' - this is *after* bidi
             reordering, in visual order.
   fantasai: As far as I can tell, 'rl' should maybe just mean reverse
             the text, but I only found one impl that does that.
   fantasai: So, I just mapped both of them to the same thing -
             'horizontal-tb'.
   fantasai: So now, in CSS, the 'direction' and 'writing-mode' are
             distinct.  You first do bidi reordering, then 'writing-mode'
             just defines the axis to use.
   fantasai: I thought that saying 'lr' was confusing, since it doesn't
             have anything to do with ltr text, so I called the value
             "horizontal-tb".
   shepazu: The reason SVG does it the way it does, is because XSL did
            it that way.
   fantasai: I don't have any objection to the way SVG did it.  I don't
             think it's good for authors to be using a property that
             resets all the bidi in the document just to get vertical text.
   sylvaing: Is there content out there using 'writing-mode:lr-tb'?
   fantasai: Yes, but it's not relying on the direction-reset stuff.
   fantasai: I think the number of people who are mixing rtl with
             vertical text right now is basically ignorable, though I
             suspect it will increase as we support this.
   shepazu: Let's say I have a table in HTML, and I want a header going
            down the side, with english vertical text...
   fantasai: That's addressed by other stuff in the draft.
   fantasai: So, with 'writing-mode', the first value gives you the line
             axis, the second gives you the block-flow.  "horizontal-tb",
             and "vertical-lr".
   fantasai: [I missed the line about mongolian]

   jdaggett: I don't understand why we need horizontal-bt.
   fantasai: I did it because MS implemented it.
   alexmog: Mainly for completeness.
   jdaggett: I don't understand completeness.
   alexmog: It's simple and obvious what it means.  There aren't large
            use-cases, but it takes a very minimal impl cost.
   jdaggett: Agreed that it's a minimal cost, but I still don't think
             that we should have random property values.  Someone still
             has to test that.
   jdaggett: Frex, this can affect what PgUp/PgDn mean, which means
             manual testing.
   fantasai: I completely abstain from this.
   shepazu: Are there any scripts that have used it?
   [maybe some archaic scripts, but not commonly]
   howcome: I don't think we need to try for complete here.
   howcome: What does it mean in a paged medium?
   * dbaron wonders what direction the writing in
            http://maps.google.com/?ll=35.663524,139.763601&t=k&z=21 is
   [chatter about pagination]
   fantasai: You paginate up.
   shepazu: Small but serious use-case:
   shepazu: There are efforts now to go back to ancient texts and transcribe
            them in some format.  There are people who want to represent
            dead languages.
   jdaggett: I think we can remove it for now, and then put it back if
             someone has a language that needs it.
   dbaron: I don't think it's minimal cost, because dealing with
           overflow/scrollable region handling, you'll need to test
           initial scroll position being at the bottom, etc.
   alexmog: We've already defined 6 of the 8 possible directions, which
            already bring up the issues you mention.  Is it additional
            burden to add the last two?
   plinss: Can we mark it as optional?
   jdaggett: It's either in the test suite or not.
   plinss: We can spend as much time debating it as it would take to
           implement it.
   fantasai: I don't care what we do.  I just want to resolve.
   * sylvaing resolved: moved to gcpm!
   RESOLVED: remove the horizontal-bt property.

   Bert: The name is fine, but I think that 'writing-mode' in XSL does
         influence the direction, so there's a difference there.
   fantasai: The disconnect between XSL-FO and SVG/CSS has existed since
             SVG 1.  I don't think bringing up the incompatibility is
             useful, since the incompat already exists in SVG, so you'll
             have to support it anyway.
   jdaggett: I don't know why XSL compat is an issue.
   szilles: SVG needs to work in both XSL and CSS.
   fantasai: SVG is already incompatible with XSL.
   Bert: I thought that SVG copied from XSL.
   fantasai: They must have copied badly here, then.
   shepazu: I don't know if there's a lot of existing content, but I think
            in general the SVGWG is okay with changing behavior to match
            the CSS model, as long as it doesn't break existing content.
   Bert: I'd like to be able to use CSS and XSL together.
   shepazu: There is a japanese SVG interest group, so they'll look at the
            issue.

   fantasai: Next interesting bit is text-orientation.
   fantasai: szilles and Paul Nelson and I worked out these values a long
             time ago.
   fantasai: The default is "vertical-right", because that's the natural
             orientation for vertical scripts, our main use case.
   jdaggett: The Latin-1 version of the latin alphabet and the fullwidth
             version usually act differently in vertical text, and this
             is captured in opentype.
   fantasai: The spec should indeed specify that, if it doesn't already.

   jdaggett: We probably want to be explicit about the interaction with
             opentype, or refer to the spec.
   fantasai: I'll need help with that, because I have no clue about OT.

   jdaggett: You use the term "grapheme clusters", which I think won't be
             underestood by most people.
   ishida: Sometimes grapheme clusters aren't sufficient in indic scripts.
   fantasai: Is that captured in the "extended grapheme cluster" definition?
   ishida: No.  You either need a new definition, or need to punt it to the UAs.
   fantasai: Let's mark that as an issue.  It's the same problem we have
             with first-letter, so we need to fix it the same way.
   Bert: Could we call the default 'normal' or 'auto'?
   howcome: I don't understand what you mean by "not native writing mode".
   fantasai: horizontal script in a vertical orientation is "non-native",
             and vice versa.
   Bert: The default value is the normal way that english is embedded in
         japanese, so it should have a simple name.
   ishida: Not always normal - acronyms are often not rotated.
   fantasai: Those are usually done with fullwidth glyphs, which do their
             rotation correctly.

   fantasai: Compat with SVG; we're not using glyph-orientation.
   fantasai: It doesn't handle anything except the most common cases.
             I recommend  we not go into the precise details.
   fantasai: The interaction between text-orientation and glyph-orientation
             is well-defined, though - text-orientation will by default
             defer to glyph-orientation in a UA that implements both.
   <fantasai> Note to self: make auto value default value for everyone -- maps
              to vertical-right for impl that don't support glyph-orientation

   fantasai: Now, text-combine.
   fantasai: It can be used for an effect called "tate-chu-yoko".  It's
             different from just doing an inline-block, because the combination
             is treated like a single glyph.
   jdaggett: I think that since this is a vertical-only property, maybe the
             name should reflect that.
   jdaggett: Also we can probably drop the 'cluster' property.
   ishida: You can have kumimoji (sp?) in horizontal text too.
   jdaggett: You can either do that as direct codepoints, or many fonts have
             ligatures for those, which are different for vertical vs
             horizontal and will do the right thing.
   jdaggett: I just don't think we want the UAs to synthesize these.  A font
             will have something that looks nice with the text surrounding it.
   ishida: Then there's warichu (sp?).  Are you discounting that?
   jdaggett: That's a known hard problem.  Not currently addressed by this draft.
   <dbaron> http://www.w3.org/International/articles/css3-text/#Slide0190
            has pictures of kumimoji and warichu
   szilles: I think what's being proposed is that the 'cluster' should be
            split out, because it's a different thing from tate-chu-yoko.
   jdaggett: Also, some people from the japanese TF came back and said that
             it's not really good typography to do this.
   ishida: It makes some sense to me to not bundle it with the tate-chu-yoko.
   jdaggett: For tate-chu-yoko, some authors may only want to do this style
             (2-characters only), but newspapers will sometimes use third-width
             or quarter-width glyphs (for things like years).
   jdaggett: It would be nice to say "I want tate-chu-yoko for 2-character
             runs, but not 3 or more".  So maybe a number in the property.
   jdaggett: Fallback behavior - I think I said behavior that quarter-width
             falls back to third-width, falls back to half-width, falls back
             to full-width.  I think instead if one doesn't exist it should
             scale.
   fantasai: Or just have it overflow.
   szilles: I think if you had a year that was expeected to be a single line,
            splitting it into two segments would be confusing.
   jdaggett: Right.
   szilles: Also, tate-chu-yoko is sometimes done with letters, for acronyms
            like "IBM".
   jdaggett: Unfortunately, fonts have quarter-width numbers much more
             commonly than letters.
   ishida: Perhaps we should ask the Japanese here in our group what they
           think.
   dbaron: Also, is falling back to scaling better than falling back to no
           tate-chu-yoko at all?

<br type="lunch"/>

Received on Tuesday, 16 November 2010 23:44:35 UTC