Re: CSS3 Text and UAX14 (was: CSS3 Text - Edit Suggestions)

Asmus Freytag wrote:
> fantasai wrote: 
>> Every time UAX 14 comes up, some member of the WG notes that taking UAX
>> 14 literally doesn't work well. Therefore I've been careful to reference
>> it, but leave that reference non-normative so that implementors can apply
>> their own judgement to the information it contains. 
> In Unicode 5.0 we've clearly separated those statements in UAX#14 that 
> speak about the characters that one could consider "line break 
> controls", i.e. that were encoded to provide specific interaction with 
> line breaking, from those statements that speak about all other 
> characters, the line break behavior of which results from convention.
> To enable reliable interchange, the behavior of the control-like 
> characters should be as uniform as possible, therefore we've made their 
> identity and behavior normative in Unicode. The behavior of all other 
> characters is subject to stylistic. orthographic and typographic 
> conventions, which in many cases require explicit tailoring. 
> However, for the line break controls, CSS should *not* deviate from 
> UAX#14, because doing so, effectively redefines characters that were 
> encoded for their linebreak behavior. This does not mean that we think 
> UAX#14 is infallible: we just found out that our specification of they 
> way that NBHY, NBSP etc.interact with hyphens and soft-hyphens was 
> inadvertantly made too restrictive. The 5.0 formulation is counter to 
> widespread practice and needs for Polish and Portuguese. That is being 
> fixed in 5.0.1. Therefore, instead of silently deviating, the CSS 
> editors should make sure that the normative part of the UAX#14 
> specification is corrected (if necessary) and then follow it - and 
> discourage any deviation from that normative part by implementations.

Your argument has convinced me that CSS3 Text should be normatively
requiring the correct implementation of UAX14's normative line breaking
classes. However, there are several problems with a full normative
reference to UAX 14. Here are those I've found so far:

   1. Spaces are a non-tailorable line breaking class. The description
      of its behavior also includes prescriptions on presentation that
      are not compatible with what CSS prescribes.
   2. CSS has a line breaking mode that forbids all breaks. This needs to
      override the non-tailorable behavior of the ZW (and SP?) classes.
   3. CSS3 Text introduces an 'unrestricted' line breaking mode. In this
      mode, line breaking restrictions are ignored completely, (except for
      the CM class). I don't see any allowance for this kind of behavior
      (effectively suspending all line-breaking restrictions, including
      WJ and GL) in UAX 14.

In general, UAX 14 is not worded in a manner that makes it clear which
statements are normative requirements and which are background information.
For example,
   "Finally, most text layout systems will support an emergency mode that
    handles the case of an unusual line that contains no ordinary line
    break opportunities."
This is worded as if it's background information. What it does is provide
some information about (presumably non-UAX14-compliant) layout systems in
general. What was probably meant was to allow UAX14-compliant layout
systems to implement this behavior.

 > For the non-normative part, as I already pointed out, we are interested
 > in learning about specific improvements, with the goal to make something
 > like the UAX#14 an attractive baseline implementation in situations
 > where tailoring is either not possible or not feasible.

I don't, at this point, have any specific points to add that have not
already been brought up. However, I'll report back any problems or
improvements pointed out by members of the CSS WG at our next F2F.


Received on Tuesday, 20 February 2007 10:22:50 UTC