I18N-ISSUE-354: Questions about letter-spacing for Arabic script [.prep-CSS3-text]

I18N-ISSUE-354: Questions about letter-spacing for Arabic script [.prep-CSS3-text]


Raised by: Richard Ishida
On product: .prep-CSS3-text

8.2 Tracking: the letter-spacing property
Editor’s Draft, 20 March 2014

The length value has the description:

"Specifies additional spacing between visually-perceived characters. Values may be negative, but there may be implementation-dependent limits." 

For cursive text the spec says:

"If it is able, the UA may apply letter-spacing to cursive scripts by translating the total spacing distributed to a run of such letters into some form of cursive elongation for that run."

Does this mean that if tracking length is set to 1em for a word that is 6 letters long, that the total length of the resulting text will be 6em plus the letter widths, and that therefore if there are some letters that are not allowed to elongate the others will elongate wider than 1em?  Or does it mean that those letters that can stretch will each stretch by 1em (possibly resulting in less than 6em overall width)?

If values are negative, does this have any meaning for cursive scripts, or is it a hint to use ligatures if any are available (which will result in different effects per font)?

And then there are Arabic font styles that don't elongate, such as ruq'a. Does the application have to disable letter-spacing if the user or the device chooses a ruq'a-style font, or is that the responsibility of the author?  It seems that it might be hard for authors to signal what to do in the case of fallback fonts.

In addition to these questions, I'm also wondering whether the concept of letter-spacing as one might use for, say, Latin text really applies for Arabic. For example, elongations are often not uniform even across the letters that do elongate. (see the example different-elongations.jpg and doha-airport.jpg)  As currently defined, letter-spacing seems to imply some uniformity across letters where tracking is applied.

What may be more useful for cursive scripts like Arabic is the ability to specify the overall width of a piece of text, and let the application produce elongation according to rules to fill that space. Note that this is different from what I described above (6 letters example) in that the overall length includes the space taken up by the letters themselves - it's more like justification.

Most of the stretching I've seen appears to be more concerned with filling a given horizontal space than ending up with an unpredictable overall width that is driven by the letters selected.

For example, many signs that include arabic and english make the arabic and english the same width, one above the other. The degree of stretching is determined by the overall width, rather than just by making letters wider.

Even in single-line, non-bilingual situations also it appears to me, though I admit I'm not certain at all, as if the desired overall width is often what drives the amount of stretching, rather than the desire to just have wider characters. See for example the Macdonalds advert attached.

[I will add the images when I forward this as email.]

Received on Friday, 30 May 2014 20:52:05 UTC