Re: rlo text should not be automatically right-aligned

On Wednesday 01 November 2006 22:58, Paul Nelson (ATC) wrote:
> Richard,
> Your assertion that "rlo" and "lro" should not set the text direction
> is flawed because you are putting two properties together.
> 'direction' sets initial block level text-align. The 'unicode-bidi'
> is a second property that does not set the block direction.
> ****Please do not override the 'dir' property to contain two
> properties**** It only causes confusion.

Just another small clarification on the 'text-align' property:

The CSS2 specification is rather brief on how a block's 'direction' 
property influences the default alignment, but the right interpretation 
is that the initial value of the property is neither 'left' nor 
'right', but another, nameless value, which acts as 'left' or 'right' 
depending on the 'direction' property.

The WG already decided some time ago to give this value an explicit name 
in CSS3, viz. 'start'[1] (borrowed from XSL-FO) and now also decided to 
improve the wording in CSS2 to make it unambiguous that the initial 
value is indeed neither 'left' nor 'right'. (The CSS3 Text Module is 
already clear on that point.)

This 'start' value exists basically to ensure that documents in a single 
script automatically align to the correct side in the absence of any 
CSS rules. It may indeed lead to surprising results in documents with 
mixed scripts, because the value is inherited, and thus a nested block 
element may unexpectedly be aligned differently from its parent, just 
because it has a different 'direction' property. (Although I've also 
heard claims that some designers *want* to justify blockquotes 
differently based on their script.)

It may be that having 'start' as the initial value of 'text-align' is 
not optimal, but, this being CSS, the designer still has the choice:

 1. To make the justification of blocks of text depend on 'direction',
    don't set 'text-align' (or set it to 'start').

 2. To make the justification of blocks of text independent of the
    'direction', set 'text-align' to either 'left' or 'right' (e.g., on
    the BODY element).

(I believe some browsers already support the new 'start' value from 
CSS3, which allows you to get behavior 1 explicitly, even for parts of 
a document.)


  Bert Bos                                ( W 3 C )                               W3C/ERCIM                             2004 Rt des Lucioles / BP 93
  +33 (0)4 92 38 76 92            06902 Sophia Antipolis Cedex, France

Received on Thursday, 2 November 2006 17:58:26 UTC