- From: Dael Jackson <daelcss@gmail.com>
- Date: Wed, 15 Oct 2014 14:51:10 -0400
- To: www-style@w3.org
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