- From: Peter B. West <lists@pbw.id.au>
- Date: Fri, 14 Jan 2005 15:52:16 +1000
- To: xsl-editors <xsl-editors@w3.org>
The editors,
I am seeking clarification of the semantics of reference-orientation.
The Draft Recommendation has:
<quote>
7.20.3 "reference-orientation"
XSL Definition:
Value: 0 | 90 | 180 | 270 | -90 | -180 | -270 | inherit
Initial: 0
Inherited: yes (see prose)
</quote>
I don't find that the prose of 7.20.3 clarifies the semantics. There is
no further mention of inheritance in that text. It does have:
<quote>
The "reference-orientation" property is applied only on formatting
objects that establish a reference-area. Each value of
"reference-orientation" sets the absolute direction for "top", "left",
"bottom", and "right"; which is used by "writing-mode", "direction", and
all positioning operations that are referenced to the reference-area or
are nested within it.
</quote>
This is the only thing I can see that has any aspect of inheritance
about it.
Assuming that a reference-orientation of 90 has been applied on the
nearest ancestor reference area A of some reference area B, and is never
re-specified, does this mean that the effective reference-orientation of
B is 180? If so, say that B has a reference-area descendant C, and that
C has a reference-area descendant D, and that reference-orientation is
never re-specified in the FO tree path to D. The implication is that the
effective reference-orientation of C is 270, and that of D is 0. In
other words, does the "inheritance" of a single non-zero
reference-orientation have the effect of causing multi-generation
descendant reference-areas to "spin"?
If not, would the addition of 'reference-orientation="inherit"' on B, C
and D cause them to "spin"?
"Spinning" seems to be a consequence of the way the Rec is currently
worded. I don't know whether any implementations displays this behaviour.
It would seem to me desirable to have the semantics defined along the
following lines.
Value: 0 | 90 | 180 | 270 | -90 | -180 | -270 | inherit
Initial: 0
Inherited: No
I.e. allow the "inherit" keyword, but deny default inheritance. The
default value for all reference-areas is the initial value, 0. (Note
that this behaviour is spelled out for the reference-area in a number of
viewport/reference-area pairs.) "inherit" would, in the case above,
cause "spinning", and this should be pointed out in explanatory text for
the "inherit" value.
The description of the "integer" values is unchanged.
The problem arises, I think, because the trait "reference-orientation"
is an accumulator, unlike other traits.
Peter West
Received on Friday, 14 January 2005 05:52:23 UTC