W3C home > Mailing lists > Public > www-style@w3.org > September 2013

Re: [css3-writing-modes] inconsistent handling of 'Tr' codepoints in 'text-orientation'

From: Koji Ishii <kojiishi@gluesoft.co.jp>
Date: Mon, 30 Sep 2013 01:48:21 -0400
To: John Daggett <jdaggett@mozilla.com>
CC: Sylvain Galineau <galineau@adobe.com>, W3C Style <www-style@w3.org>
Message-ID: <CE6F3414.40BF1%kojiishi@gluesoft.co.jp>
On 9/30/13 10:20 AM, "John Daggett" <jdaggett@mozilla.com> wrote:

>
>Koji Ishii wrote:
>
>>> I do not think this is a good characterization of John's position.
>>> No one wants to prohibit 'Unicode-compliant implementations', as
>>> far as I can tell, nor is a 'fork of the Unicode spec' suggested.
>> 
>> I agree. My point is that, if we accept his proposal, although his
>> intention is different, it'll be in-compliant to Unicode as a
>> result. And John is not responding to that point.
>
>Koji, I've already responded to your claim that Unicode compliance
>somehow requires the behavior you've defined in the Writing Modes spec:
>
>http://lists.w3.org/Archives/Public/www-style/2013Sep/0714.html
>
>See the text under "More on UTR50, Unicode and CSS".  I've appended
>the same text at the end of this message.
>
>In short, I see no "compliance" issue here.  Unicode defined an
>*informative* character property that CSS is using to define layout
>engine behavior.

Ah, ok, thank you for pointing that out, I missed that part. So you're
saying, since this is UTR, not UAX, CSS can fork the behavior, correct?
It's true it's UTR, but the idea to make it to UAX sometime in future was
discussed. When that happens, the property will be a normative property. I
do not think it's a good idea to fork Unicode spec just because it's UTR.

>I'm not saying UTR50 is wrong nor do I feel the need
>for what you describe as "tailoring" here.  I'm not debating whether
>individual codepoints should be U, R, Tu, or Tr, I'm simply saying
>that I don't think implementing what is effectively OpenType feature
>fallback is a good idea, and I've detailed why I think that way in
>several previous posts [1], [2].

Unicode takes implementations into account, and OpenType and CSS are two
most important applications. If you don't think Tr is not a good idea for
OpenType, I'm suggesting you go to Unicode ML to discuss.

Why do you not like to discuss there? It's not single person I can try to
bring in to www-style. Tr appeared in UTR#50 revision #4[1] in April 2012,
and UTC as a group spent really a long time to review the spec. I don't
think asking whole UTC members to discuss on a Unicode spec at www-style
is a good idea.

My memory is a bit vague here, but revision #1 had SB instead of Tr.
Wasn't that fantasai, you, and me who said SB is too ambiguous and
requested to put Tr instead? Sorry in advance if I remember this
incorrectly.

>For vertical text, layout engines need to divide text into two basic
>categories: (1) upright runs laid out using vertical font metrics
>(i.e. using the *height* of glyphs) and default vertical features (e.g.
>'vert') and (2) rotated runs that are laid out using horizontal font
>metrics (i.e. using the *width* of glyphs) with default horizontal
>features and then placed on the line by rotating the coordinate
>system.

We're in consensus on this point, aren't we? You said this more than a
year ago, we added to the spec more than a year ago, so this is non-issue,
except that James is against the idea now.

>The optional behavior you've proposed for CSS is that user agents are
>allowed to add a third, hybrid category: upright runs that switch to
>rotated runs based on a complex fallback mechanism involving OpenType
>features.  From an authoring standpoint the optional part is not
>desirable at all, a point James Clark [3] and Sylvain [4] have also made.

James is against adding your proposed behavior and want to stick with
UTR#50 behavior, if I understand correctly. Do I misunderstand?

> 
>From an implementor viewpoint, adding complex fallback mechanisms need
>to be judged based on the value they supply.  Given that well-designed
>fonts already supply vertical alternates for the both 'Tu' and 'Tr'
>codepoints, I don't see the importance of having this fallback
>mechanism.

As I replied to James, browser developers don't have to. People working on
FreeType, harfbuzz, Skia, Cairo, or Qt are looking at UTR#50. Because
their API is used to render plain text as well, they might provide an API
which just does UTR#50. In such architecture, all browser developers need
to do is to split runs only when computed values of 'text-orientation'
change, and pass the value to the underlying APIs.

In that architecture, the behavior you requested will make browser code
more complicated. You need to split runs by Tr code points or not, and
re-define Tr as Tu.

Which costs more depends on what architecture you're building your browser
upon. Compliant to Unicode, and not to fork, is important because
underlying APIs will follow Unicode, and we're on such layered
architecture.

But on the other hand, if your underlying APIs do not provide such
capability today, I agree with you that it's not an easy work for browser
developers to do without changing underlying APIs. That's why I'm
proposing allowing both behavior makes the most sense.

>As Sylvain has noted, it would be helpful at this point to have more
>information about the implementors who feel it's important to have
>complex fallback for fonts that lack vertical alternates for 'Tr'
>codepoints. I don't see much value in arguing about Unicode compliance
>or the fine points of which codepoints are classified which way in
>UTR50.

Does the above paragraph give you what you requested here?

I'm seeing multiple times why your proposed behavior is important, but
we're in consensus on that point (except James,) and your proposal is
already in the spec for more than a year.

The point of discussion here is that, whether we want to prohibit
Unicode-compliant behavior or not, right? And since you said the diff is
subtle, I do not see any values of prohibiting Unicode-compliant behavior
and therefore require additional complex and slow code for different
architecture.

[1] http://www.unicode.org/reports/tr50/tr50-4.html

/koji
Received on Monday, 30 September 2013 05:48:52 UTC

This archive was generated by hypermail 2.3.1 : Monday, 30 September 2013 05:48:57 UTC