12.6.16 Included-container-area Flow Object Class
An included-container-area flow object results in a sequence of one or more areas each of which is specified as an area container.  An included-container-area flow object has a single principal port.  The contents of this port shall be displayed.
Flow objects of the included-container-area class may be inlined or displayed.
The size of the container shall be fixed in the direction perpendicular to the area container's filling-direction.  It shall be specified unless the flow object is being displayed and the filling-direction is the same as the placement direction, in which case the size is the display-size.  It need not be specified in the filling-direction.  In this case, it shall be determined by the size of the child areas.  If the included-container-area flow object is displayed and its placement direction is parallel to the area container's filling-direction and the size in the filling-direction is not specified, then the size in the filling-direction shall be limited by the size of its parent in that direction.  If the flow object is being displayed and its placement direction is perpendicular to the area container's filling direction and the size in the filling-direction is not specified, then the size in the filling-direction shall be limited to the display-size.
An included-container-area has the following characteristics:

•  display?: is a boolean specifying whether the flow object shall be displayed rather than inlined.  This characteristic is not inherited.  The default value is #f.

•  filling-direction: is one of the symbols top-to-bottom, left-to-right, or right-to-left.  It specifies the filling-direction of the area container.  The filling-direction of the area container may be perpendicular to the placement direction. The initial value is top-to-bottom.

•  width: is a length specifying the width of the area container. This characteristic is not inherited.

•  height: is a length specifying the height of the area container.  This characteristic is not inherited.

•  contents-alignment: is one of the symbols start, end, center, or justify specifying the alignment of the child areas within the area container in the filling-direction of the area container. The initial value is start.

•  overflow-action: is one of the symbols truncate, error, or repeat specifying the action to be taken if the content of the area container does not fit within the dimensions specified for the area container. The initial value is repeat.

•  contents-rotation: is one of the integers 0, 90, 180, or 270 specifying the counter-clockwise rotation to be applied to the area contents. This characteristic is not inherited. The default is 0.

•  scale: is a number specifying a scaling factor to be applied to the content of the area.  Numbers less than 1 shall make the content smaller.  Numbers greater than 1 shall make it larger.  This characteristic is not inherited.  If not specified, it shall default to 1.

•  position-preference: is either #f or one of the symbols top or bottom.  This applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into both the top-float and bottom-float zones of a column-subset and indicates whether the areas from this flow object may be flowed into only one of the zones. This characteristic is not inherited. The default value is #f.

•  display-alignment: is one of the symbols start, center, end, inside, or outside specifying the alignment of the areas resulting from the flow object in the direction of the writing-mode. The initial value is start. This determines how the flow object expands its areas so their size is equal to the display size in the direction perpendicular to the area container's filling-direction.  First space is added to the area so that its size is equal to the display size less the sum of the start and end indents:

•  if the alignment is start, the space is all added at the end in the direction of the writing-mode;

•  if the alignment is end, the space is all added at the start in the direction of the writing-mode;

•  if the alignment is center, the space is added equally at the start and the end in the direction of the writing-mode;

•  if the alignment is inside, then the flow object shall have an ancestor of class page-sequence, the direction of the writing-mode shall be perpendicular to the binding-edge: of the page-sequence, and the space shall be added on the edge that is outside with respect to the spread;

•  if the alignment is outside, then the flow object shall have an ancestor of class page-sequence, the direction determined by the writing-mode shall be perpendicular to the binding-edge: of the page-sequence, and the space shall be added on the edge that is inside with respect to the spread.

Then an amount of space equal to the start-indent is added at the start in the direction of the writing-mode, and an amount of space equal to the end-indent is added at the end in the direction of the writing-mode. This applies only if the flow object is displayed.

•  start-indent: is a length-spec specifying the indent for the edge of the area at the start in the direction of the writing-mode. The initial value is 0pt. This applies only if the flow object is displayed.

•  end-indent: is a length-spec specifying the indent for the edge of the area at the end in the direction of the writing-mode. The initial value is 0pt. This applies only if the flow object is displayed.

•  writing-mode: is one of the symbols left-to-right, right-to-left, or top-to-bottom.  The direction determined by the writing-mode shall be perpendicular to the placement direction.  The initial value is left-to-right. This applies only if the flow object is displayed.

•  span: is a strictly positive integer specifying the number of columns that the areas resulting from this flow object shall span. This characteristic shall apply if the flow object is directed into a port on a column-set-sequence flow object that is flowed into the top-float, bottom-float, or body-text zone of a spannable column-subset.  The initial value is 1. This applies only if the flow object is displayed.

•  span-weak?: is a boolean specifying whether the areas resulting from this flow object span weakly rather than strongly.  See section 12.6.5.1, Column-set-model.  This characteristic applies if the flow object is directed into a port on a column-set-sequence flow object that is flowed into the top-float, bottom-float, or body-text zone of a spannable column-subset and has a span: characteristic with a value greater than 1.  The initial value is #f. This applies only if the flow object is displayed.

•  space-before: is an object of type display-space specifying space to be inserted before, in the placement direction, the areas produced by the flow object. This characteristic is not inherited. The default is for no space before to be inserted. This applies only if the flow object is displayed.

•  space-after: is an object of type display-space specifying space to be inserted after, in the placement direction, the areas produced by the flow object. This characteristic is not inherited. The default is for no space after to be inserted. This applies only if the flow object is displayed.

•  keep-with-previous?: is a boolean specifying whether the flow object shall be kept in the same area as the previous flow object. This characteristic is not inherited. The default value is #f. This applies only if the flow object is displayed.

•  keep-with-next?: is a boolean specifying whether the flow object shall be kept in the same area as the next flow object.  This characteristic is not inherited. The default value is #f. This applies only if the flow object is displayed.

•  break-before: is #f or one of the symbols page, page-region, column, or column-set specifying that the flow object shall start an area of that type. This characteristic is not inherited. The default is #f. This applies only if the flow object is displayed.

•  break-after: is #f or one of the symbols page, page-region, column, or column-set specifying that the flow object shall end an area of that type. This characteristic is not inherited. The default is #f. This applies only if the flow object is displayed.

•  keep: is one of the following:

•  #t meaning that the areas produced by this flow object shall be kept together within the smallest possible area.

•  the symbol page indicating that the areas produced by the flow object shall lie within the same page; in this case, the flow object shall have an ancestor flow object of class page-sequence.

•  the symbol column-set indicating that the areas produced by the flow object shall lie within the same column set; in this case, the flow object shall have an ancestor of class column-set-sequence.

•  the symbol column indicating that the areas produced by the flow object shall lie within the same column set, and that the first column that each area spans in the column set shall be the same.

•  #f indicating that this characteristic is to be ignored.

This characteristic is not inherited. The default value is #f. This applies only if the flow object is displayed.

•  may-violate-keep-before?: is a boolean which, if true, specifies that constraints imposed by the keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its previous flow object may not be respected. This characteristic is not inherited. The default value is #f. This applies only if the flow object is displayed.

•  may-violate-keep-after?: is a boolean which, if true, specifies that constraints imposed by keep: characteristics of ancestor flow objects on the relative positioning of this flow object and its next flow object may not be respected. This characteristic is not inherited. The default value is #f. This applies only if the flow object is displayed.

•  position-point-x: is a length-spec giving the x-coordinate of the position point of the resulting area in the area's coordinate system.  For this purpose, the area is considered to have a coordinate system in the same way as an area container.  This shall apply only when the flow object is inlined.  This characteristic is not inherited.  If this characteristic is not specified and the writing-mode: characteristic is left-to-right or right-to-left, then the value shall default to 0.

•  position-point-y: is a length-spec giving the y-coordinate of the position point of the resulting area in the area's coordinate system.  For this purpose, the area is considered to have a coordinate system in the same way as an area container.  This applies only when the flow object is inlined.  This characteristic is not inherited.  If this characteristic is not specified and the writing-mode: characteristic is top-to-bottom, then the value shall default to 0.

•  escapement-direction: is one of the symbols top-to-bottom, left-to-right, bottom-to-top, or right-to-left specifying the escapement direction of the resulting area relative to the area's coordinate system.  For this purpose, the area is considered to have a coordinate system in the same way as an area container.  This applies only when the flow object is inlined.  This characteristic is not inherited.  If this characteristic is not specified, then its value shall default to the value of the writing-mode: characteristic.

•  inhibit-line-breaks?: is a boolean specifying whether line breaks shall be inhibited before and after each area produced by this flow object. This applies only to line breaks introduced by the formatter to make lines fit in the available space. The initial value is #f. This applies only if the flow object is inlined.

•  break-before-priority: is an integer that affects whether a break is allowed before this flow object.  The break priority of a potential breakpoint is the maximum of the break-after-priority of the flow object immediately preceding the potential breakpoint and the break-before-priorities of the flow object immediately following the potential breakpoint, and any characters immediately following that character for which the drop-after-line-break?: characteristic is true.  A break shall be allowed at a potential breakpoint only if the break priority is even.  This characteristic is not inherited. The default value is 0. This applies only if the flow object is inlined.

•  break-after-priority: is an integer that affects whether a break is allowed after this flow object as described in the specification of the break-before-priority: characteristic. This characteristic is not inherited. The default value is 0. This applies only if the flow object is inlined.