- From: Cameron McCormack <cam@mcc.id.au>
- Date: Sat, 17 Mar 2012 14:25:42 +1100
- To: Chris Lilley <chris@w3.org>
- CC: SVG public list <www-svg@w3.org>
Chris Lilley: > CM> (a) Render those subsequent lines. > > My preference (and avoids having to throw in tspans just to get line breaks) OK, I think I can go with that. And we wouldn't want to introduce a new <tbreak/> or equivalent element, right -- just suggest using white-space:pre-line and newlines in content. > CM> (What happens on a text path?) > > We have several options for text path > > - disallow breaks > - ignore breaks if it is on a path > - try to put text on parallel paths (hard) > - say its undefined (yuk) We could also put it not exactly on a parallel path, but just a path translated by the line height. Or we could treat it just like with normal straight line text by resetting the x position, shifting the y by the line height, and then relaying out on the path. That'd look like this: http://mcc.id.au/temp/multipath.svg > CM> (b) Treat the newlines as white space, like xml:space="preserve" > CM> does. > > Not a good idea. > > CM> (c) Don't render any line after the first. > > Really not a good idea. I actually think this isn't a completely crazy idea, as it's similar to how glyphs that extend beyond the end of the path are handled (i.e., just dropped). > CM> I'm not really sure which I like. (a) has the advantage of probably > CM> doing what the author wanted. (b) has the disadvantage of changing > CM> what white-space:pre really means. (c) seems like it would never > CM> be what the author wants. > > CM> 2. Are we able to make xml:space="" a presentation attribute for the > CM> white-space property? > > No. > > Firstly, because it is sort-of-similar, but if it was *that* similar we would be keeping on using it. Instead, it has only one real value, preserve, and a second useless value that means 'do whatever you do'. I think one of the reasons we want to move away from xml:space="" is that it's really an abuse of the original intention of that attribute. From the "treatment of white space in SVG text rendering" perspective, xml:space="default" means something specific, doesn't it? Not just "whatever default behaviour your implementation happens to have". > Secondly, because its is not our attribute; it belongs to the xml namespace and we can't, for example, add new values. Thus, we should not promote it to a property, either. OK, although I didn't intend to suggest xml:space="" be the sole presentation attribute for white-space and gain new values. What about instead we handle it with a UA style sheet: svg|text[xml\:space="preserve"], svg|tspan[xml\:space="preserve"], ... { white-space: pre } I guess that was the essence of my question; do we need to keep the differences between xml:space="preserve" and white-space:pre alive, or can we define xml:space="preserve" in terms of CSS white space behaviour? It would be lovely if I could avoid implementing xml:space="preserve" on top of white-space processing. :) But I would like xml:space="default" to mean "do what the white-space property says". white-space:normal is still different from xml:space="default", because the latter will remove newline characters while the former will turn them into a space. If we had to keep xml:space="default" behaviour, then I am not sure how authors are going to opt in to having the white-space property handle things rather than xml:space="". > > CM> Its behaviour does not exactly match any of > CM> the current white-space property values, > > Right > > CM> but I am wondering if it > CM> is that important to preserve those differences from > CM> white-space:pre. xml:space="preserve" is defined to convert > CM> each tab and newline into a space. If we could make it map exactly > CM> to white-space:pre instead that would be good. > > Or we could have (one or more) presentation attribute(s) that do(es) exactly the right thing instead of continuing to try and bend xml:space into shape. I'm working under the assumption here that we need to keep xml:space="preserve" doing some kind of white space preservation going forward. I'm right in that, yes? > CM> This doesn't affect anything, > > It does, really > > CM> but I just noticed css3-text defines > CM> white-space as a shorthand property for text-space-collapse (which gives > CM> the collapsing behaviour) and text-wrap (which gives the line breaking > CM> behaviour). > > Yes. Which means that the two presentation attributes should be called text-space-collapse and text-wrap. Sure, we should definitely have those. (And the white-space shorthand presentation attribute, like we've discussed for font.)
Received on Saturday, 17 March 2012 03:26:19 UTC