W3C home > Mailing lists > Public > public-svg-wg@w3.org > January to March 2011


From: Cameron McCormack <cam@mcc.id.au>
Date: Thu, 20 Jan 2011 15:47:39 +1300
To: public-svg-wg@w3.org
Message-ID: <20110120024739.GJ31087@wok.mcc.id.au>
In the telcon today, I suggested unapproving text-align-07-t and
text-align-07-b based on my flip-flopping understanding of the test.

I just now had a look at the css3-linebox spec, which defines baseline
alignment for CSS boxes.  I think now that we can have the behaviour
that text-align-07-t requires, but I want to make sure that it is
reasonable to have it as the default.  There is a good discussion of
baseline stuff here:


One difference I note between css3-linebox and SVG 1.1 is that the
initial value of alignment-baseline in the CSS spec is baseline while in
SVG it is auto.  alignment-baseline defines how a child box is aligned
with its parent.  A value of baseline means that a child element has its
dominant baseline aligned with the dominant baseline of its parent.
If this is indeed the initial value, it would give text-align-07-t the
effect shown in this reference image:


where each of the three text runs are aligned by their alphabetic
baseline (since that is the dominant baseline of the <text> and both of
the <tspan>s), and the non-alphabetic-aligned glyphs within each run of
text are positioned relative to the alphabetic baseline according to the
font size.

In SVG, alignment-baseline’s initial value of auto is confusingly
defined as:

  The value is the dominant-baseline of the script to which
  the character belongs - i.e., use the dominant-baseline of the parent.

css3-linebox doesn’t have a value auto, but it does have a value
use-script, which seems like it’s meant to be the same kind of thing SVG
is defining with auto.  Its definition is:

  If the element ‘text-script’ property value is ‘auto’, the alignment
  point of each glyph is aligned with the parent baseline-identifier of
  the script to which the glyph belongs. If the element ‘text-script’
  property value is other than ‘auto’, the alignment point of each glyph
  is aligned with the parent baseline-identifier of the script specified
  by the ‘text-script’ property. The parent baseline-identifier position
  is determined by using the baseline information appropriate to the
  determined script within the parent dominant-baseline set.

Now SVG doesn’t have a text-script property (and I can’t actually find a
definition of it in css3-text) so let’s assume it is auto.
alignment-baseline:use-script would mean that each glyph in the <tspan>s
would be aligned to the appropriate baseline of the parent <text>
element.  That would be the behaviour required by the test, as shown by
the current reference image:


So my current belief is that the test is correct to require this
behaviour because SVG’s alignment-baseline has an initial value of auto,
and this property isn’t explicitly set in the test.  However, having
different initial values across CSS and SVG seems like a bad thing.
What I want to know is which of these two values is a more normal text
layout behaviour.  (My completely evidenceless guess would be
alignment-baseline:baseline, but those in the CSS WG who have experience
with mixing different scripts would be in a better position to answer
this question.)  The second bad thing is the difference in value name:
auto in SVG and use-script in CSS.

Either way, I think CSS and SVG should be aligning(!) here.

Cameron McCormack ≝ http://mcc.id.au/
Received on Thursday, 20 January 2011 02:48:18 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:20:13 UTC