W3C home > Mailing lists > Public > www-svg@w3.org > January 2016

Re: transform property on <tspan> and <textPath>

From: Tab Atkins Jr. <jackalmage@gmail.com>
Date: Fri, 15 Jan 2016 17:08:32 -0800
Message-ID: <CAAWBYDCW67wDa2Ur6ODuKnfwmQK2oFuejq3vKp3sfTZBVH=J9Q@mail.gmail.com>
To: Tavmjong Bah <tav.w3c@gmail.com>
Cc: Cameron McCormack <cam@mcc.id.au>, www-svg <www-svg@w3.org>
On Fri, Jan 15, 2016 at 11:13 AM, Tavmjong Bah <tav.w3c@gmail.com> wrote:
> On Fri, 2016-01-15 at 14:35 +1100, Cameron McCormack wrote:
>> In the SVG 2 draft, we allow transform on <tspan> and <textPath>.  I
>> realise now however that this is inconsistent with what CSS allows in
>> non-SVG documents, and if we are defining SVG text layout in terms of
>> CSS text layout (plus an additional layer of SVG glyph positioning),
>> then we might want to reconsider.
>> Specifically, the transform property is defined to apply only to
>> “transformable elements”:
>>   https://drafts.csswg.org/css-transforms/#transformable-element
>> Notably this doesn’t include inline elements, which is what we are
>> considering <tspan> and <textPath> to be.
>> As far as I know nobody has implemented this.
> Actually, rsvg seems to support transforms on tspan elements!
> I would have thought that transform on tspan elements would be treated
> as part of the post CSS layout step. However, I don't have a strong
> opinion on keeping transforms on tspan and textPath elements.

CSS's issues are mostly with inlines broken across a line, as there's
no good answer for what coordinate space the transforms should operate
in (particularly rotates/skews).  Thus our restriction to blocks and
atomic inlines (like display:inline-block elements).

SVG's text model is a little different, but putting the restriction on
<tspan> amounts to the same thing.  A <text> can span multiple lines,
but it in itself is a reasonable "container", like a block in CSS.  A
<tspan> can contain text split across different lines, tho, which runs
into the issues we had.

(There is no "post-CSS layout step". Transforms are part of CSS
layout, and SVG is just using an unspecified CSS layout mode which
resembles forced absolute positioning.)

Received on Saturday, 16 January 2016 01:09:19 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 March 2017 09:47:43 UTC