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