[CSS3 Text Layout] working draft (compact version)

My previous suggestion had been designed to handle all imaginable 
horizontal/vertical text layout.  This suggestion is designed to be as 
compact as possible.  It has only one CSS property.
See the Robust Vertical Text Layout paper[1] for more discussion of text 
layout.

I would particularly be interested in examples of text layout that 
people feel should be handled, but are not by this model.

CSS Text Layout Level 3

Three properties and two classes of scripts describe the layout of text 
by this model.  The natural layout for each script determines its 
default property values and classes.

Properties:
Block progression direction specifies the direction in which successive 
lines of text are stacked.
Examples:
Latin, Arabic - down
Mongolian - right
Chinese, Japanese, Korean - left

Inline progression direction specifies the direction in which successive 
glyphs are placed within a line of text.
Examples:
Latin - right
Arabic - left
Mongolian, Chinese, Japanese, Korean - down

Text orientation specifies the direction which the glyphs' "up" points 
towards.
Examples:
Latin, Arabic, Mongolian, Chinese, Japanese, Korean - up.

Classes:
Relative scripts are scripts for which there exists an invertible 
transformation between the inline progression direction and text 
orientation.  This transformation defines the natural relation between 
the two properties among all possible values.
Examples of transformations from text orientation to inline progression 
direction:
Latin - 90 degrees clockwise rotation
Arabic - 90 degrees counterclockwise rotation
Mongolian - 180 degrees rotation

Independent scripts are scripts for which the inline progression 
direction and text orientation are independent of each other.
Examples:
Chinese, Japanese, Korean are independent scripts.

The CSS property for Text Layout Level 3:
Name: text-orientation-vertical
Value: up | down | left | right | natural
Initial: natural
This property describes the text's glyph orientation.  Block progression 
direction is defined by the flow direction of the Box Model.  For 
relative scripts, when text-orientation-vertical does not have the value 
natural, inline progression direction is defined by the transformation 
of text-orientation-vertical when the transformed direction is an inline 
direction.  In other cases, inline progression direction is down for 
vertical lines, or the script's default for horizontal lines if the 
default is horizontal.  Otherwise it is right.
   up      - text orientation is up.
   down    - text orientation is down.
   left    - text orientation is left.
   right   - text orientation is right.
   natural - for relative scripts, text orientation is defined by the 
inverse transformation of the inline progression direction.  For 
independent scripts, text orientation is defined by the script's default.

Note: the choice of right as the last case for inline progression 
direction is fairly arbitrary, if possible something like inheriting the 
direction of the surrounding text might be more useful.
What would be the procedure for turning something like this into an 
actual working draft?

[1] http://www.unicode.org/notes/tn22/

Received on Sunday, 7 January 2007 21:46:33 UTC