[CSSWG] Minutes and Resolutions Tokyo F2F Wed PM: Japanese Layout Task Force Joint Meeting

Summary:

   Discussed various tricky issues that will feed into various CSS drafts, including:

   - Effect of ruby on line-height
   - Japanese line breaking rules and their variation
   - Brief interchange on justification
   - Using 'letter-spacing' for tracking and tsumegumi
   - punctuation-trim, fonts, and fullwidth/halfwidth identities of punctuation
   - Glyphs and implementation of text-emphasis dots
   - Hanging punctuation

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

Meeting: CSSWG and JLTF Joint Meeting 2009 Tokyo F2F
Scribe: Steve Zilles

Introductions
-------------

   CSSWG is joined by
     - Kobayashi-sensei, master of Japanese typography
     - Kobayashi-san, Justsystems, chair of JLTF
     - Yasuhiro Anan-san, Microsoft
   The current JLTF draft is
   http://www.w3.org/2007/02/japanese-layout/docs/aligned/japanese-layout-requirements-en.html
   Official JLTF draft is
   http://www.w3.org/TR/jlreq/

Review of Paged Media
---------------------

   fantasai offers to discuss the specs that are relevant to the JLTF
            requirements
   fantasai: there are 3 relevant specs plus GCPM
   fantasai: the first spec is Paged Media that covers the description of the
             page, its margins, headers and footers, ...
   fantasai: there is a default page, plus pages for first, left and right
             pages and a set of named pages.
   fantasai: the content has to fit inside the page box else it gets clipped
   fantasai: the current Paged Media model does not have a concept of "spread"
             (that is two facing pages together), that is a topic for a future
             version.
   <fantasai> Note to self: css3-page should not clip to the page area, but to
              the padding box of the page box

Line Height and Ruby
--------------------

   K-san: what about line-stacking-strategy?
   dbaron: Some of the goals of the line box module are contradictory; e. g.,
           since an author cannot really know what font (and other) resources
            will actually be used.
   dbaron: the current line stacking rules are not ideal for Western topography
           and they certainly do not consider things like Ruby annotations.
   Discussion of line-stacking-strategy
   dbaron: We might want different options for what gets considered
   Anan-san, Kobayashi-san: ruby above the first line spills outside the kihon
                            hanmen
   Steve: Do we flag this as an issue to come back to later?
   fantasai: yes. We don't have anyone working on a module that involves this.
             Nobody will be able to fix it within the next 6 months
   K-san: figure 37 of the current JLTF draft shows the ruby outside the
          Kihonhanmen on the first line.
   dbaron asks if the ruby crosses the midline between two lines
   yes, it does
   K-san: The line gap is usually smaller than the line width, e.g. 2/3
   Kobayashi-san: Ruby is usually 1/2 the size of the font size
   K-san and K-sensei: the ruby chars are set without and "leading" between the
                       base characters and the ruby characters; this assumes
                       internal leading in the fonts.
   Anan-san: The current MSFT implementations grow the line-height to
             accommodate ruby, but this is not correct
   Anan-san: the ruby characters should fit within the line-gap
   Steve: One reason that line-stacking-strategy was created was to allow a user
          to specify whether he wanted to guarantee that no overlap (the CSS
          rule) or he wanted to guarantee consistent spacing between lines
   Steve: Since CSS tries to guarantee no overlap of lines, it would be
          reasonable to have the Ruby chars taken into account in determining
          the actual line height.

Continue Review of Paged Media
------------------------------

   fantasai: CSS3 Page module covers margin boxes, their position, their content
   fantasai: for styling the boxes the many of the normal CSS properties can be
             used.
   fantasai: page numbers can be inserted
   fantasai: various paper sizes can be selected
   fantasai: the current rules in Paged Media select the paper size, and
             determine the page area by setting values for the margins. This
             does not guarantee a specified numbers o lines or line lengths
   fantasai: this morning we proposed that Paged Media would allow explici
             setting of the Width and Height using the rules of CSS2.1
             section 10
   fantasai: this allows explicit setting of the Kihonhanmen size in EMs and
             centering the resultant area on the paper.
   fantasai: named pages provide a kind of styling template that can be applied
             to different sections of the content (using selectors)

CSS3 Text and Line Breaking Rules
---------------------------------

   fantasai: The second document is CSS Text which is, itself, not a complete
             module (it is an extract of a prior module.
   fantasai: it covers white space control, line breaking and word boundaries.
   fantasai: We know that Japanese has its own line breaking rules which are
             different than western text rules.
   fantasai: There are some named rules for controlling line breaking
   Anan-san: Appendix 3 of the JLTF document has an explicit description of
             line-breaking for Japanese based on character classes
   Anan-san: There are at least two sets of rules for line breaking: basic ones
             such as the Unicode line breaking rules
   Anan-san: and stricter rules that cover a more complete set of cases, such
             as those in Appendix 3 of the JLTF report
   Anan-san: for example, Firefox does a better job of handling rules than some
             other implementations
   Anan-san: Microsoft Word adopted an earlier version of the rules in JIS4051
             and, therefore, allows some breaks that would not be expected.
   fantasai: for western text, there are 2 options, break where allowed by the
             language and break anywhere (including inside a word)
   fantasai: for japanese, there are also two options: loose and strict, with
             strict being the default. Specifying what these mean, however,
             is a problem.

   Murasaki-san: breaking before small kana is fairly common in Japanese
   K-san: There are three levels: newspaper level, magazine level, book level
   Murakami-san: Many books use normal level, not strict level
   <fantasai> Kobayashi-san discusses house rules
   <dbaron> Perfect line breaking rules for English probably don't exist either.
            Consider finding the allowed breaks in
            bis(4-chlorophenyl)-1,1,1-trichloroethane
   K-san: There are also "house rules" used by a particular publication house
   K-san: we do not, however, need to have rules at that level of detail
   K-san: Although some implementations use house rules, we can still define
          some base levels
   Murakami-san writes: loose, normal, strict
   K-sensei: there are 4 options: loose, normal, strict and very-strict
   very-strict forbids breaks before small-kana, the sound lengthen mark and
     decoration marks.
   K-san: almost all publications do not not use very-strict
   From now on we will use levels 1,2,3 and 4 where 4 is most strict and 1 is
     least strict
   Level 4 is not often used.
   K-san agrees that the JLTF will define the rules for the 4 classes of
     line-breaking rules.
   fantasai: could we also get a textual summary of the rules that would give
             an author an sense of what to expect without tracing through
             the table?
   fantasai: and which level is the default level?
   K-san/K-sensei: level 3 is the default
   fantasai: do these breaking rules also cover numbers and foreign language
             text?
   fantasai: for example, there is a property value that applies to latin text
             that allows breaking anywhere within a word.
   Steve: This occurs, for example, in Korean usage.
   K-san/K-sensei: Japanese link-breaking does not allow line-breaking inside
                   a word.

   Resuming after a break

   fantasai: The WG thanks the JLTF for agreeing to provide us guidance on line
             breaking
   <dbaron> We also need to keep the line-breaking compatible with English. :-)
   <ChrisL> dictionary-based English hyphenation ftw!


CSS3 Text and Justification
---------------------------

   fantasai continues summary of CSS3 Text
   fantasai: text-wrap gives control over chuncks of text beyond the word level
   fantasai: Alignment (horizontal) controls aligning to start, end, center,
             justify and control over last line as well
   Anan-san/K-sensei: there are cases in Japanese in which a single line is
                      justified.
   fantasai: in CSS, a single line is also a last line.
   fantasai: because a window can always be resized, one cannot guarantee that
             a "single line" will fit within the window so ti would be justified
             in two or more lines unless wrapping is forbidden
   Murakami-san: if there is only one character on the last line where is it
                 placed with Justtify?
   <fantasai> Issue: text-align-last: justify center;
   <trackbot> http://www.w3.org/Style/CSS/Tracker/issues/97

   fantasai: there is control over which space adjustments are used for
             justification:
   Anan-san: How does "inter-graphemic" apply to east asian languages?
   Many: it is there primarily for scripts like indic scripts that have grapheme
         clusters.
   Anan-san: Japanese characters with diacrictics for voicing do form a grapheme
   <fantasai> Issue: If the same about of extra space that is being used between
              full width characters (for justification) is also put between half
              width characters, then the alignment of two half width characters
              with one full width character will be broken.
   <trackbot> http://www.w3.org/Style/CSS/Tracker/issues/98
   <dbaron> (I asked a few minutes ago what happens with halfwidth characters
            and justification.)
   <fantasai> ISSUE: make sure justification allows not justifying between
              various bits of punctuation
   <trackbot> http://www.w3.org/Style/CSS/Tracker/issues/99
   Anan-san: the vertical kana repeat mark upper half should not be split from
             the lower half mark during justification
   jdaggett: Implementations that use the typographic data in a font should
             not be considered non-conforming

CSS3 Text and Tracking, Letter-spacing, and Tsumegumi
-----------------------------------------------------

   fantasai: there is spacing that does "tracking"
   fantasai: Word spacing does not (should not) apply to the Ideographic Space.
   Anan-san: Tsumegumi controls the reduction of spaces between characters up
             to the collision of the glyphs
   jdaggett: letter spacing is problematic becuase when kerning is involved you
             want a multiplicative property rather than a adative one.
   fantasai: the current design has a percentage of the letter space; what is
              wanted?
   jdaggett: what is desired for letter spacing is to add/subtract a percentage
             of the character advance rather than a fixed amount between all
             characters.
   <fantasai> Issue: percentage should be wrt character advance, (before or
              after kerning?)
   <trackbot> http://www.w3.org/Style/CSS/Tracker/issues/100.
   Note that kerning changes the advance between certain characters
   <fantasai> Steve says after kerning
   fantasai: that would create uneven spacing in, e.g. "milling"
   Steve: the specification of these properties should not require the
          implementation of bad typography; it should allow an implementation
          to do "better than a minimum level"
   <dbaron> fantasai, so why are you introducing a new feature (% letter
            spacing) if you don't think it does something reasonable?
   <fantasai> dbaron, we're missing a measurement that accounts for the
              character advance width
   <fantasai> dbaron, so I picked a way to reference the advance with of a space
              character
   <fantasai> dbaron, right now you can reference ems
   <fantasai> dbaron, but that gives weird results if you compare a
              narrowly-designed font with a widely-designed one
   fantasai: with evenly spaced tsumegumi, how do measure the space added or
             subtracted?
   discussion: the tracking value is not applied to the full character advance,
               but (in an as yet undefined way) to the space between characters
               after kerning is done
   Anan-san/K-sensei: the tsumegumi can be specified in ems because the amount
                      is typically a percent of the font size.
   Anan-san: the letter-spacing applied to cjk would usually be too much for
             latin
   Anan-san: so you may need a way to separate
   Anan-san/K-sensei: when a line has mixed latin and ideographic text the
                      space adjustments are not uniform across the line but are
                      different for the different kinds of text
   ChrisL: rather than have different letter spacing values for each language,
           it would be better to markup each section of text with its language
           and use selectros to apply differn letter spacing values to the
           different spans
   K-san: I like ChrisL's solution because it also handles cases where in a span
          things like the font-size is changed and the letter spacing needs to
          change.
   fantasai: but, there will be cases where the foreign text is not marked up
             and there needs to be a way to deal with those cases.
   K-san: tsumegumi like this is usually only used for short bits of text in
          large fonts, such as headings
   K-san: so this solution should be sufficient
   fantasai: trying to use Unicode ranges to control the letter-spacing is not
             a good idea because it does not deal with punctuation characters

CSS3 Text and Punctuation Kerning
---------------------------------

   fantasai: punctuation-trim property - this handles the conversion of full
             width punctuation to half width
   jdaggett: asks how this interacts with information in kerning tables in the
             fonts.
   jdaggett: is this in addition to or instead of kerning?
   It is really hard to know if such kerning data is in the font which makes
     it difficult to tell whether the lower level engine (e.g. Uniscribe) will
     do the transform or not.
   Anan-san: Also, the same Unicode code-point is different depending on what
             language the font was designed for

   K-san: Three issues interrelated: where to break the line, where to position
          characters by default, where to adjust (justify) the line
   K-san: There are several places to solve the issue. The CSS level, the font
          level, OS-level
   K-san: Justsystem and MSFT, between ours the handling of parentheses is
          slightly different
   K-san: CSS should explicitly define its position, this will be helpful to
          other parties

   Anan-san: Technically we can define the pairs at the font level, but once
             you put the characters in the line you may want different results
Scribe: fantasai
   fantasai: so do we assume the font is wide or not?
   no real answer
   Murakami-san: Antenna House implements punctuation-trim
   Murakami-san: It applies only to CJK fonts
   Murakami-san: That have fixed-em width
   Murakami-san: full-width brackets only
   Murakami-san: Not applied to narrow punctuation
   Murakami-san: Interaction with kerning is not a problem.
   fantasai: how do you know if it's full-width?
   Murakami-san: MS Mincho has full-width fixed-width glyphs for punctuation
   Murakami-san: But MS P Mincho has narrower glyphs for Japanese punctuation
   Murakami-san: Antenna House punctuation-trim controls MS Mincho, but not
                 MS P Mincho
   jdaggett: With a proportional font, the "half-width" characters are
             proportionally spaced
   jdaggett: whereas in a full-width font they are not (end of summary of P
             vs not P)

   K-san: In Unicode, fullwidth punctuation marks usually have half-width
          default size
   K-san: in the JLTF document
   K-san: In Japanese typsetting tradition, especially hot-metal era, usually
          the punctuation marks are 1/2 em size
   K-san: So when the punctuation mark need to be 1em we add 1/2em space
   K-san: Steve and us made 6 hours discussion on this at the last meeting
   K-san: And we decided to describe every punctuation mark as 1/2 width size
          as a default
   K-san: And with some other half-width space added
   K-san: Our document is based on such an agreement
   Steve: The reason that the discussion took 6 hours was primarily because
          there were several kinds of terminology being used in different
          parts of the document
   Steve: this contributed confusion on the part of the non-Japanese speakers
          who were tyring to read the document and weren't sure how many
          different principles were used
   Steve: So we picked one that made sense to the ppl writing the document and
          use that consistently

   jdaggett: Fonts, and OpenType especially, have many ways of doing the same
             thing. E.g. kerning
   Murakami-san: professional Japanese fonts use fullwidth punctuation
   discussion of P Gothic black magic
   Anan-san: You can do pairs kerning in Uniscribe, but it's
             performance-expensive
   Anan-san: ...
   jdaggett: FF uses Uniscribe for a lot of text rendering
   jdaggett: for desktop, it's ok
   jdaggett: for mobile device, ehhh
   Murakami-san: Meiryo also has fixed full-width punctuation
   Murakami-san: even though Latin is proportional

Scribe: Steve
   K-san: the JLTF is willing to consider having levels w.r.t the
          punctuation-trim as will be done for line-breaking
   fantasai: the CSS WG has to explain the requirements for punctuation-trim
             in a way that implementers can implement it.

CSS3 Text and Text Decoration
-----------------------------

   fantasai: underline position does not really support Japanese because the
             convention in Japanese is to use underlines on horizontal text
             and before-edge lines in vertical text
   K-san: the spacing of the "underline" relative to the character box is up
          to the implementation; they may or may not be useful information
          for this in the font.

   fantasai: text-emphasis
   K-sensei: Kendots should be used only for vertical text
   K-san: there are two code point for the dots; it is the context of usage,
          horiz or vert, that determines which glyph is used, independently
          of which code point is used to represent the dots
   Note, also, that the "dots" do not occur in the content, they are generated
     by CSS UA.
   K-san/K-sensei: w.r.t. middle dot or the accent character, the normal size
                  of the full width character is used, but 1/4 em is trimmed
                  off the top and bottom of the character in a dot above the
                  character or from the left and right of the character in a
                  dot on the before edge.
   K-sensei: Ruby and dots will not be used together; therefore dots should be
             ignored (for Japanese) if specified with ruby.
   K-sensei: if text with Ruby annotation is to be emphasized, it can be done
             by using brackets before and after the emphasized text

CSS3 Text and Hanging Punctuation
---------------------------------

   fantasai: hanging-punctuation currently has 3 values
   <shinyu> http://lists.w3.org/Archives/Public/www-style/2007Oct/0204.html
   Murakami-san presents his proposal
   Start allows the bracket to occur prior to where the first non-punctuation
     character is to occur
   End does the same for the last line
   end-edge allows hanging on end of every line
   ChrisL: is there a use case for "start-edge" in analogy to "end-edge"
   fantasai: if there is an indent of the first line, then hanging means into
             the indent space, not the content area.
   fantasai: what punctuation characters are allowed to hang with "end-edge"?
   Murakami-san/K-sensei: only 4 characters (stop, ideographic stop, comma and
                          ideographic comma) can hang with "end-edge"
   Murakami-san/fantasai: for "start" the punctuation that hangs are opening
                          brackets and quotes; for "end" they are ending
                          brackets and quotes.
   It was agreed that there is no Japanese use case for "start-edge".
   <fantasai> end should have end-auto functionality
   <fantasai> forcing the punctuation to hang should be 'force-end'
   K-sensei: there is a requirement for a "forced-end" value which forces the
             final stop to be hanging and then justifies the chararacters that
             remain on the line.
   fantasai and Murakami-san: Replace "end-edge" with "end"; replace "start"
                              with "first" and "end" with "last"
   This renaming leaves "force-end" meaning that the hang is forced on any
     line that ends with one of the four punctuation symbols that can hang
     with "end"
   Murakami-san suggests maybe 'end' might be confusing with 'forced-end' for
     Western typographers
   Western typography typically only hangs the hyphen, and it's not common
   Suggestion: 'allow-end' 'forced-end'
   Other suggestion, need 'hypens' value? since Japanese doesn't hang hyphens
   fantasai: suggests that "end" be called "allow-end" to make it relationship
             to "force-end" to be more clear.

At 6:10, the meeting adjourned for the day.
<RRSAgent>  http://www.w3.org/2009/03/04-css-minutes.html

Received on Monday, 9 March 2009 04:21:47 UTC