Summary
Proposal owner: Miklos Vajna
Proposal short name: Allow overlap graphic property
Rationale
Use cases:
Users sometimes want to make sure anchored graphics / shapes don't overlap, even if their positioning properties would require that. In general, the wrap type determines if a graphic and the surrounding text overlaps or not. This new bool attribute defines the interaction between two graphics. Existing behavior was to always allow overlap, now users can opt in to forbid that overlap.
Alternatives considered:
It is possible to manually tweak positioning attributes to avoid the overlap.
Requested changes to the ODF Standard
Text changes/additions (compared to ODF 1.2):
20.<next> draw:allow-overlap (new section)
The draw:allow-overlap attribute specifies placement options for two or more frames or graphic objects with style:wrap properties set to values other than run-through. (20.390) It is intended as a hint to the layout algorithm to help determine the placement of graphic objects in case the graphic objects themselves overlap.
By default, overlapping graphic objects with the above style:wrap properties have text wrapped around them, but the graphic objects are still allowed to overlap.
If this attribute is set to false, then that means the graphic cannot overlap with an other graphic and it shall be repositioned when displayed to prevent this overlap.
The draw:allow-overlap attribute is usable with the following element:
<style:graphic-properties> 17.21.
Schema changes/additions:
<rng:define name="style-graphic-properties-attlist">
<rng:interleave>
<rng:optional>
<rng:attribute name="draw:allow-overlap">
<rng:ref name="boolean"/>
</rng:attribute>
</rng:optional>
</rng:interleave>
</rng:define>
In other words, allow allow-overlap as a new style:graphic-properties attribute.
Impacts
Conformance:
This proposal will not add any mandatory features or behaviors.
Backwards compatibility:
This change will not impact existing ODF processors, the usage of the new attribute value is optional.
Accessibility impact:
This change will not impact accessibility.
Interoperability:
OOXML's wordprocessingML has a <wp:anchor ... allowOverlap="0"> markup to describe the same, this proposal allows roundtripping that feature in ODF.
LibreOffice 6.4 implements this layout feature in its ODF extension namespace. When it comes to repositioning, it adjusts the position of the graphic according to the writing direction, e.g. lr-tb will shift the shape towards the bottom to avoid the overlap.