[CSSWG] Minutes Sophia-Antipolis F2F 2014-09-10 Part IV: CSS3 Text

CSS3 Text
---------

  - The proposed solutions to creating an algorithm for spacing of
    un-language-tagged content were discussed and limited to two
    options:
      A. Treating Hangul as non-expandable and Han/Kana as expandable
      B. Use fantasai's Universal Compromise approach
    The spec authors will put out a poll to determine which of the
    remaining options is most livable.

  - In conjunction with Internationalization WG, the group will
    create a wiki or Note of best practices for language specific
    justification and link that in the spec. CSS Text will not be
    responsible for detailing justification best practices (only the
    limits within which implementations must behave).

  - RESOLVED: Remove 'distribute' special-case logic from
              text-align-last.

  - RESOLVED: Add 'inter-character', same meaning as 'distribute'

===== FULL MINUTES BELOW ======

  Scribe: TabAtkins

CSS3 Text
---------

  <fantasai> http://dev.w3.org/csswg/css-text-3/justify
  <fantasai> http://wiki.csswg.org/spec/text-justify-auto
  fantasai: Issue is that we have been requested to figure out what
            is a possible "baseline" algorithm example that we can
            put in the spec that shows how you can handle un-language
            -tagged content, without doing introspection.
  fantasai: Not talking about unjustified, or where there's a
            language attr (spec says UA should tailor), or for
            text-justify: interword (spec already has example).
  fantasai: One option is to expand between ideographs (C & J), but
            not Hangul.
  fantasai: Option two is to not expand between ideographs or Hangul.
  fantasai: Three is provide some sort of compromise; prioritizing
            spacing but also allowing CJK expansion, etc.
  fantasai: Four is to reintroduce text-justify:inter-ideograph.
  TabAtkins: Four means we can tilt the baseline towards Hangul, and
             C/J can use text-justify:inter-ideograph to fix it?
  fantasai: Yes.

  fantasai: Our hope is that authors just tag their content.
  SteveZ: You're saying that there is content out there that uses
          the inter-ideograph keyword?
  fantasai: Yes, it was introduced in an old IE.
  SteveZ: I thought when we talked about this before, that was
          preferred.
  fantasai: Yeah, it gets rid of any magic, but it means people are
            tagging their content with inter-ideograph, rather than
            with a language tag.
  SteveZ: So this is solely a CJK problem?
  fantasai: Pretty much.

  fantasai: We have a table of current behaviors, which shows that
            implementors do some interesting things.
  fantasai: Gecko does the right thing for CJ if you lang-tag, but
            doesn't expand by default.
  fantasai: IE ignores language, but has inter-ideographic, which
            turns on expansion in CJK.
  fantasai: Webkit and Blink on Mac expand between CJ, but not K.
  dbaron: Which is what Gecko does when tagged as Japanese.
  fantasai: Opera doesn't expand at all for CJK.
  <dbaron> Gecko's justification code has a bunch of things that are
           conditional on the language tag being zh, zh-*, ja, or
           ja-*

  fantasai: So I've put together a table of document types.
  fantasai: [describes the table in the wiki page]
  fantasai: Three types of K documents.
  fantasai: Hangul only, probably 70-80%.
  fantasai: Mix of Hangul and Han, about 20-30%.
  fantasai: All Han (very old), 1-10%.
  fantasai: If we do "solid CJK" (don't expand anything), we get bad
            results for everything but modern all-Hangul docs.
            Everything else gets no justification.
  fantasai: If you expand between CJ but not K, you get more or less
            what's acceptable; but mixing Hangul and Han isn't ideal.
            Transitioning between those scripts causes some space,
            which makes an unintended visual break.
  fantasai: Compromise gives acceptable but not great results for
            everything - you get some space between CJ, but not
            much, while Korean expands between characters if there
            is too much space.

  fantasai: [shows her justification experiment]
  <fantasai> http://dev.w3.org/csswg/css-text-3/justify
  fantasai: This one shows off the compromises.
  fantasai: Here, there's a mix of Hangul and Han. There's some
            space between the Hangul characters.
  fantasai: Set the threshold to zero, you get inter-ideograph.
  fantasai: Set it to 100, you get inter-word, probably what Korean
            wants.
  fantasai: But I'm not actually sure what Korean prefers in mixed
            Hangul and Han for extreme justification cases.

  TabAtkins: So it looks like we should just go with "expand CJ not
             K"; it's not great for mixed Hangul and Han, but it's
             great for everything else.
  fantasai: Maybe not... [shows off example]
  fantasai: It looks like there are space chars there around the Han
            characters in the mixed content.
  fantasai: That seems like it might be hard to read.
  fantasai: The compromise option doesn't get spacing quite right,
            but it's easier to read.
  florian: If you tag the Korean, it'll work right, correct?
  TabAtkins: Yeah, it just won't expand around Han in mixed Hangul +
             Han documents.
  TabAtkins: Looking at the "better or worse" table, "expand CJ not
             K" still seems better - it's better or same for every
             group but one.
  TabAtkins: I'm fine with a slightly degraded rendering for a small
             fraction of Korean documents, in return for basically
             ideal rendering for Chinese and Japanese, and pure-
             Hangul Korean.
  TabAtkins: I think we can at least agree to go with *either*
             "expand CJ not K" and "compromise"; the others aren't
             good enough to consider.
  TabAtkins: And do polls to figure out which is better before
             making a final decision.
  fantasai: Which is least objectionable.

  Action fantasai and koji to make a poll on which options are most
         live-withable for universal justification.
  <trackbot> Created ACTION-637
  * fantasai thinks we need pictures in this poll for sure
  * fantasai also translations...

  ACTION fantasai: clarify that ko-Han is different from ko-Hangul
  <trackbot> Created ACTION-638

  fantasai: Koji raised an issue about *how* are we defining language
            -specific justification behavior.
  fantasai: Our current plan is to not define it, provide a few
            examples, and defer to a note for examples and
            guidelines, getting i18n to help out.
  fantasai: The note would just be prose for things we know that
            aren't yet written out in English, or pointers to
            JLReq/etc.
  fantasai: Or a wiki page, whatever.
  SteveZ: I think wiki makes more sense than a note - people expect
          a wiki to update.
  plinss: With the new publishing process, we can publish Notes
          quickly.
  fantasai: But it still has to go through the WG, while a wiki can
            let anyone add to it.
  fantasai: On the other hand, the w3c wiki is really ugly
  SteveZ: The important part is that *we* aren't going to be
          standardizing this.

  Action fantasai to ask i18n for help in setting up and maintaining
         the justification references
  <trackbot> Created ACTION-639

  <fantasai> http://dev.w3.org/csswg/css-text-3/issues-lc-2013#issue-88
  <fantasai> Adding back 'inter-ideograph'
  koji: Two reasons to put it back:
  koji: 1) If the default algorithm is not "expand CJ not K",
        inter-ideograph will do better, and it's already used in
        some documents, so we should respect it
  koji: 2) for traditional Korean documents, and we say that Korean
        defaults to inter-word, traditional ones want ideographic
        spacing.
  fantasai: We can recommend that traditional documents use
            ko-Han (rather than just ko), so browsers will
            know to do ideographic spacing.
  fantasai: That will help for any other formatting stuff, when it's
            more Chinese than Hangul.
  koji: That might work.
  koji: So we need to wait for the default algorithm to be
        determined.

  fantasai: Last issue: inter-character.
  fantasai: We have a "distribute" keyword, and people wonder why
            it's not "inter-character".
  fantasai: Answer is that IE did it as "distribute".
  fantasai: We're thinking to add an alias "inter-character".

  Bert: Didn't "distribute" have additional side-effects?
  <dbaron> (on the last line)
  fantasai: Good point. I was thinking we should remove that
            side-effect.
  fantasai: Side effect: if text-justify:distribute, then text-align-
            last:auto becomes "justify" rather than "start".
  <koji> http://www.magical-remix.co.jp/magicalog/archives/2819
  fantasai: inter-ideograph would do the same thing for the lines
            (in the linked example) except for the "Fax" line.

  SteveZ: This is common in Japanese text, where the last line is
          stretched out.
  <fantasai> text-align: justify; text-align-last: justify;
             text-justify: distribute;
  fantasai: This is a lot to type.
  fantasai: So we defined "auto" to mean "if it's distribute, you
            justify on all lines".
  fantasai: But we could remove that. We have a new keyword, because
            we changed the relationship between text-align and text-
            align-last.
  <fantasai> text-align: justify-all; text-justify: distribute;
  <Bert> -> http://dev.w3.org/csswg/css-text-3/#text-align-all-property
            text-align-last property

  fantasai: So the proposal is to remove the special case (making us
            more IE-compatible), and lean on this new keyword to
            handle the Japanese case.

  RESOLVED: Remove "auto" special-case logic from text-align-last.

  <koji> text-align: justify; text-justify: distribute-all-lines;
  koji: IE5 does a little different syntax.
  koji: Everything since IE5. MS Word generates this.
  koji: Do we want to honor this combination as well?
  <koji> http://msdn.microsoft.com/en-us/library/ie/ms531172(v=vs.85).aspx
  florian: So this does what we just said "distribute" doesn't do
           anymore?
  TabAtkins: Yeah.
  fantasai: Don't think we really need to do it.
  fantasai: Not saying IE needs to remove anything, just not adding
            it to CSS.
  florian: Maybe add an issue/note about us adding this in the
           future if it turns out to be needed for those markets?
  fantasai: Yeah.

  florian: Back to inter-character. Do we want it?
  TabAtkins: I'm fine with an alias. Talking with julien earlier,
             it's easier to have "two keywords that do the same
             thing" than "two keywords, one of which computes into
             the other".
  florian: If there is heavy scripting on this property, we might be
           more careful about aliasing, but there isn't, so who
           cares.

  dbaron: Are we okay with the ambiguity of "character"?
  fantasai: Yeah, it separates the things that authors know as
            "characters".
  TabAtkins: Even if they're "grapheme clusters" or whatever
             technically.
  SimonSapin: It's same as letter-spacing?
  fantasai: Yes.
  SteveZ: What about Thai/etc?
  fantasai: Same as letter-spacing.
  fantasai: The spec literally says that this increases the used
            letter-spacing on this line.
  Bert: I don't think people actually know what "character" means.

  RESOLVED: Add inter-character

<br type=snacks>

Received on Wednesday, 15 October 2014 18:51:38 UTC