W3C home > Mailing lists > Public > www-style@w3.org > August 2014

Re: [css-text] Shaping Isolation and Layout Separation of Inlines

From: fantasai <fantasai.lists@inkedblade.net>
Date: Mon, 18 Aug 2014 11:27:44 -0700
Message-ID: <53F245A0.8070709@inkedblade.net>
To: John Hudson <tiro@tiro.com>, "Tab Atkins Jr." <jackalmage@gmail.com>, John Daggett <jdaggett@mozilla.com>
CC: WWW International <www-international@w3.org>, www-style list <www-style@w3.org>
On 08/15/2014 12:06 PM, John Hudson wrote:
>> Note: This means that color changes, font changes, letterspacing
>> changes, etc. have no effect on shaping. Shaping might not result
>> in the glyphs joining correctly, but will nonetheless choose the
>> correct form of the letter (initial, medial, final, isolated).
>
> Further to what John D and Glenn have written with regard to this:
>
> Whether a change in font results in a change in character shaping will depend on whether the desired shaping is affected by
> discrete layout features applied based on character level analysis (broadly speaking, the OpenType Layout model for basic
> Arabic shaping and *some* aspects of Indic cluster shaping), or is instead affected at the glyph level using contextual
> substitutions (broadly speaking, the AAT/Graphite model).
>
> So, for example, an Arabic medial letter form can be displayed by a typical Arabic OpenType font using character string
> analysis, even if there is a change in font between this letter and the next. The two resulting glyphs won't join nicely, but
> they should take their respective basic joining forms according to the Unicode joining behaviour model. In contrast, an AAT
> font that uses glyph string analysis to affect state changes seems almost guaranteed to break shaping when the font changes in
> mid-string.
>
> The reality of most complex script fonts, though -- even those following the MS OpenType script specifications --, is that
> they utilise a mixture of basic shaping associated with discrete features applied by layout engines according to character
> string analysis and glyph-level contextual substitutions.

For Arabic, at least, it's always possible to get the right
form by passing in ZWJ at the start/end of the run as necessary.
I'm not sure that helps Indic at all, I don't really understand
Indic shaping.

Either way, though, breaking Arabic joining due to a font change
(such as fallback, which I've seen happen in the middle of a word
before) is quite disruptive, and if the implementation *can*
shape appropriately, I think it should.

~fantasai
Received on Monday, 18 August 2014 18:28:14 UTC

This archive was generated by hypermail 2.3.1 : Monday, 18 August 2014 18:28:15 UTC