12.6.21 Glyph-annotation Flow Object Class
Flow objects of class glyph-annotation are mainly used for characters, words, or phrases that have an associated description of their meaning or pronunciation. The annotation is placed on the before side in the line-progression direction of the annotated glyphs. A glyph-annotation flow object that has more than one annotated glyph shall not be broken between lines.

NOTE 99

Users should explicitly divide long annotations between several glyph-annotation flow objects.
A glyph-annotation flow object has the following ports:

•  the principal port is used for the annotated glyph. Only character flow objects shall be flowed into this port.

•  annotation is used for the annotating glyph or glyphs that are placed on the annotated glyph or glyphs. Only character flow objects shall be flowed into this port.
The applicable characteristics are:

•  annotation-glyph-placement: is a symbol that specifies the nominal placement rule of the annotating glyph. The shouldered placement shall be applied only for a glyph-annotation flow object that has exactly one annotated glyph. Permitted values are:

•  centered indicating that annotating glyphs shall be centered,

•  shouldered indicating that annotating glyphs shall be placed in relation to the number of annotating glyphs and the starting edge of the annotated glyph.  There shall be exactly one annotated glyph with this placement.  The precise placement of the annotating glyph is determined by the annotation-glyph-style.

The initial value is centered.

•  annotation-glyph-style: is #f or a string that specifies a public identifier for additional rules to be applied in formatting. The initial value is #f.

NOTE 100

These rules might, for example, control details about placement, different forms at the start and end of the line, or space adjustment in the line.

•  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.

•  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.

•  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.