Re: [CSS21][css3-text] letter-spacing, word-spacing and justification

On 07/31/2013 06:18 PM, Bert Bos wrote:
>
> That changes the meaning of 'letter-spacing' as it has been used until
> now (and which I've been relying on).

You're relying on the fact that UAs do not put gaps between
Latin letters in order to justify the documents you've written.
I don't think you need to worry: I'm pretty sure this will
continue to be true as long as there as at least one space
character within each line of your text. :)

Are you concerned that you have lines of text without spaces
that would suddenly start being letter-spaced for justification?

> Besides, using inter-letter spacing for justification is something you
> don't want to happen by default. If you have a really difficult text,
> you may want to explicitly enable it, if there is no other option.

Non-Western texts will hit the "really difficult text" situation
much more frequently, and the spec needs to allow for that.

> I propose explaining under the <length> value of 'letter-spacing' that
> the space between letters may still be varied for the purposes of
> justification if 'text-justify' is set to 'distribute':
>
>      User agents may not further increase or decrease the inter-character
>      space in order to justify text <ins>except if 'text-justify' is
>      'distribute'</ins>.

This isn't sufficient, because a lot of justification in CJK
is not of the 'distribute' variety. The 'distribute' version
distributes spaces equally between Latin letters as between
CJK letters. But usually justification will distribute space
between CJK letters on the line and *not* between Latin letters.

Besides, it's confusing if the meaning of 'letter-spacing: 0'
changes based on 'text-justify'!

I don't think what you're worried about -- excessive use of
letter-spacing between Western letters -- is going to be a
problem in practice. UAs will do sensible things for Western
text: we just have to allow them to do sensible things for
non-Western, texts, too!

Also, on a consistency note, right now
   word-spacing: normal;
and
   word-spacing: 0;
both mean the same thing: the space between words is not altered
from its default, but is allowed to justify. It's more consistent
if
   letter-spacing: normal;
and
   letter-spacing: 0;
also meant the same thing: the space between letters is not
altered from its default, but is allowed to justify.
Don't you think that makes sense?

~fantasai

Received on Friday, 9 August 2013 03:22:25 UTC