Looking at different FO implementations it seems to be unclear whether space traits are applied to every area generated by, for example, fo:block. Let's look at the details...

Relevant Passages in the Spec

7.10.15, space-before, XSL 1.0

Specifies the value of the space-specifier for the space before the areas generated by this formatting object.

Here the confusion starts. If it had said ...before each area generated... it would have been clear. Worded like this it could be argued that this means that the space-specifier is only applied to the space before all areas.

7.11.2, space-start, XSL 1.0

Specifies the minimum, optimum, and maximum values for the space before any areas generated by this formatting object and the conditionality and precedence of this space.

Specifies the value of the space-specifier for the space before the areas generated by this formatting object.

So space-start actually adds something to the topic by using any areas. Still not unambiguous. Same argument as above.

4.2.3, Geometric Definitions, XSL 1.0

This section defines the various rectangles of an area. This implies that every area may have spaces around it.

4.2.2, Common Traits, XSL 1.0

Unless otherwise specified, the traits of a formatting object are present on each of its generated areas, and with the same value.

As far as we could see there are no restrictions around spaces which would indicate that the spaces don't apply to every area generated by a formatting object.

Clarification by the XSL FO SG

http://lists.w3.org/Archives/Public/xsl-editors/2006JanMar/0002.html

So, the space-before must only be generated for the first area, and space-after only for the last area.

Interpretation by other FO implementations

Test file: space-interpretation.fo

XslFoSpecificationUncertainties/SpaceTraits (last edited 2009-09-20 23:52:42 by localhost)