The editors, The changes to reference-orientation, including its involvement in the from-page-master-region() function and its liberation from inheritance mean, I think, that it is worthwhile re-thinking the whole notion of inheritance for reference-orientation. Now that reference-orientation is not inherited, it must either be specifically set on a reference-area returning FO, or assume the default value, 0. In the previous version of the recommendation, reference-orientation did not apply to fo:page-sequence. Now that it is not inherited, it seems redundant to begin to apply it. Authors wishing to apply a particular reference-orientation to the top-level children of fo:static-content and fo:flow have the option to define such children as reference areas, and place a reference-orientation on them directly. Alternatively, they can define a (non-applying) reference-orientation on fo:page-sequence and access it via from-parent() or from-nearest-specified-value(). What they cannot do is 1) specify one reference-orientation on the relevant fo:layout-master-set element, specify a different orientation on the fo:page-sequence, and 2) expect the fo:block children of fo:flow to exhibit the latter orientation, or expect the orientation of the fo:block-container children to default to the latter. One way to look at a reference-orientation value is as an instruction to set a state of the area tree relative to an ancestor area. A reference-orientation of "0", the default, is a no-op. In this dependency on the area tree it has parallels with percentage values for lengths. Given that, why is it necessary to introduce from-page-master-region() to determine a value for reference-orientation? If 1.0 is left alone, the page-level areas, down to and including span-reference-area and normal-reference-area, will assume the reference-orientation value defined on the relevant ancestor on fo:layout-master-set, or "0". What about writing-mode? Unfortunately, although writing-mode presents similar problems as reference-orientation, it doesn't have such nice characteristics. However, a similar approach can be taken. The draft contains the following in '7.29.7 "writing-mode"'. <quote> The writing-mode trait on an area is indirectly derived from the "writing-mode" property on the formatting object that generates the area or the formatting object ancestors of that formatting object. The "writing-mode" property applies only to formatting objects that set up a reference-area. Each value of writing-mode sets all three of the direction traits indicated in each of the value descriptions above on the reference-area. (See the area model for a description of the direction traits and their usage.) Note: To change the "writing-mode" within an fo:flow or fo:static-content, either the fo:block-container or the fo:inline-container, as appropriate, should be used. </quote> The phrase "formatting object that generates the area" presents all of the usual problems that are associated with fo:page-sequence, of which more later. Leaving that aside, it seems reasonable to specify that, like reference-orientation, writing-mode is not inherited. The difference is that, whereas with reference-orientation, the lack of a specification on a particular reference-area generating fo sends that fo back to the default value of "0", which turns out to be very useful, the Initial value of writing-mode is "lr-tb". What writing-mode needs is a no-op value, which is an instruction to get the value from the current area tree context, without change. Some candidates would be "no-change" and "as-is". On top of the default value, another initial value is required. This would be "lr-tb". Strange as it may seem, this corresponds to the situation with reference-orientation. "0" is "no rotation with respect to the containing reference-area." What is the initial orientation? That depends on the settings of of a number of other properties, for instance media-usage and page-height, and will often devolve to the user agent. Users frequently change from portrait to landscape orientation by specifying page-height and page-width. That results in very different meanings for "0". While reference-orientation can implicitly depend on other properties or the user agent, initial writing mode must, for backward compatibility, be specified as "lr-tb", and this would have to be detailed in the discussion of the writing-mode property. The initial-value, for the purposes of defaulting, would then be specified as "as-is". With that change, the elements of the discussion of reference-orientation would also apply to writing-mode; in particular the manner of specifying a writing-mode on the children of fo:flow and fo:static-content that differs from the writing-mode in effect on the relevant region. fo:page-sequence, in 1.0, embodies a contradiction. On the one hand, it is tasked with "generating" not only the page-viewports, but the region-reference-areas. On the other, reference-orientation and writing-mode do not apply to fo:page-sequence. The editors are seeking to resolve this by applying those properties to fo:page-sequence. However, the properties still apply to the simple-page-master and the region FOs. They must, because, in spite of the language of the draft, those FOs do, in fact, generate reference-areas. Language engineering doesn't alter that reality. My suggestions would require a clarification to the language of area generation. fo:page-sequence would return page-viewport-areas, but not generate them. Likewise, it would not generate region-reference-areas. It does invoke the generation of those areas, because fo:simple-page-master and offspring do not, in isolation, generate anything. They must be invoked by an fo:page-sequence. Once invoked, however, they most definitely generate the reference-areas. This should be made clear in the language of the Recommendation. I realize that this is a critical point. The draft relies on the assertion that fo:page-sequence "generates" page-viewports and region-reference-areas for much of the rationale of what are, to me, controversial changes to the specifying of reference-orientation and writing-mode. My contention is that such changes run against the grain of the underlying structural reality of the use of these properties, and of the inheritance system as a whole. My apologies for the scattered nature of these comments. Thanks for your attention. It is a privilege to be able to participate in such discussions. Peter West -- Peter B. West <http://cv.pbw.id.au/> Folio <http://defoe.sourceforge.net/folio/> --- [This E-mail has been scanned for viruses but it is your responsibility to maintain up to date anti virus software on the device that you are currently using to read this email. ]
This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 10 August 2007 00:11:45 GMT