See also: IRC log
<trackbot> Date: 08 August 2013
<TabAtkins> I'll be following along in IRC.
Zakim: [IP is me
krit: I also added CSSMatrix item
<heycam> ScribeNick: birtles
heycam: this spec defines how the
cascade works and values that can be defined to every
property
... initial default etc. and also scoped styles etc.
... it probably doesn't affect us a lot so probably not a lot
of work
... anyone interested apart from me?
<TabAtkins> Nah, it should affect SVG only insofar as SVG uses CSS, and even then it's almost completely just a proper rewrite and clarification of what was already stated.
heycam: it defines which rules win for each property etc.
<TabAtkins> Only real addition is the "unset" value, and clarification of how scoped styles and some newer things like transitions/animations interact with other origins.
krit: we need the functionality from that spec
heycam: yes, but it's unlikely they are speccing anything we will disagree with
krit: I'll read over it
<scribe> ACTION: Dirk to review CSS3 Cascade by August 26 [recorded in http://www.w3.org/2013/08/08-svg-minutes.html#action01]
<trackbot> Created ACTION-3516 - Review CSS3 Cascade by August 26 [on Dirk Schulze - due 2013-08-15].
<Tav> http://tavmjong.free.fr/SVG/publish/text.html
Tav: I've made a start on
rewriting this
... the goal is to move towards more CSS-framed layout
... I'm looking for some basic feedback as to if the direction
I've been taking is something the group agrees with
... basically, the first step is to layout text using CSS
... then after that you apply SVG transformations like dx, dy
etc.
... in order to layout CSS text you need a content area
... there are different ways
... if you don't specify a content area you get a rectangle
with a width and height
... if you do specify a content area you get specify a
rectangle with width and height or a shape inside or
outside
... and then you apply CSS layout
... after that you apply SVG rules if any
... if you look at the reorganization of that chapter the most
important sections are the text layout sections
... content area, direction, positioning
... then the SVG-specific rules: pre-formatted text,
auto-wrapped text, text on a path
... I've reworked the introductions to each of those
sections
... I've had trouble determining which CSS specs to
reference
... there are a bunch of specs at different stages of
development
... and there are various inconsistencies between the CSS specs
and SVG 1.1 that need to put address
... I've put issues throughout the spec to mark those
... any comments?
heycam: when do you think we
should incorporate this into the main spec?
... do you want to resolve the issues first?
Tav: I think the sooner we merge
the better
... but I'd like to get some review of it first because it is a
drastic change
... although the end result shouldn't change
... but the structure of the chapter has changed
heycam: I'll have to set aside
time for a proper review to give detailed feedback
... but in general I'm in favour of this work
... I had one question about wrapping with shape-inside
... in CSS you have your box you would normally put text in and
then with shape-inside you'd put that inside the box
Tav: one of the difficulties is
the coordinate system is different
... we don't have the box, we have the viewbox and user
coordinates
... CSS defines it relative to a float but SVG doesn't have
floats
... at an implementation level you can just say you have a
float the size of the content area
<TabAtkins> Yeah, that's not a big deal.
Tav: in CSS you have a box to
begin with, so your shape inside, what you wrap text into, the
units are based on that box
... we only have a viewbox and user units
... if you have an exclusion it's defined using a shape
inside
... and in CSS/HTML that is defined using a float
... and that float determines the units you will use for
adjusting... essentially you're changing the shape of the
float
... but SVG doesn't have floats
... so instead we need to the use the viewbox and user units to
define the shape of the exclusion region
heycam: does that mean you'd be required to put the width/height attributes on the text element?
Tav: no, because you're not using
the <text> to determine the exclusion
... there's a complete example:
http://tavmjong.free.fr/SVG/publish/text.html#TextShapeInside
<Tav> http://tavmjong.free.fr/SVG/publish/text.html#TextShapeOutside
Tav: so you see there are two
rectangles and two text elements
... the first text element uses the first rectangle as a shape
inside and the second rectangle as a shape outside
... it also shows the shape-padding and shape-margin
... the blue area is the resulting wrapping area
... does that make sense?
heycam: so the default
shape-outside is the shape-inside
... and then if you specify the shape-outside you're
intersecting a rectangle with that?
Tav: the default shape-outside is nothing because you're excluding something
heycam: but the default area you're excluding from is what?
Tav: the shape-inside
... the shape-inside defines the content area
... then you can exclude part of that using shape-outside
shepazu: how does this apply to floats?
Tav: it doesn't apply to floats
in SVG
... in CSS/HTML it is defined using floats
heycam: perhaps we could ask people to review it by a certain date and then look at merging it?
Tav: ok
shepazu: is this compatible with the current regions/exclusions stuff in CSS? or is this somehow different?
Tav: it is compatible with shapes
except Shapes Level 1 doesn't have SVG paths in it (that will
be in Level 2)
... and shape-inside is not in level 1
... but it was agreed in Japan that it will go into level
2
... and the author is supposed to be preparing a draft of level
2
shepazu: I see you included text auto-wrapping
Tav: yes, we agreed to that
... the one issue there is whether you want to define a
rectangle using both width and height
heycam: so if we had 2~3 weeks to review, would that be alright?
Tav: yes
heycam: so how about we revisit it in the Sept 5 telcon
shepazu: I think we need to review the definition of the width/height attributes on text element
heycam: yes, I think CSS/HTML does something different here so I think we should look at it
shepazu: do you specify what happens when text overwraps its container?
Tav: yes, that's specified towards the bottom
heycam: it falls off the edge of the page
<shepazu> +1
heycam: a couple of weeks ago I thought about how we could radically change the SVG DOM
<TabAtkins> Also +1.
heycam: it came about partly when
trying to write up the new marker properties
... where we were trying not to add new integer constants to
the IDL
<TabAtkins> Note: Per spec at least, createElement() *always* puts the element in the HTML namespace. There's no need to say that SVG elements with no namespace have this behavior as well.
<TabAtkins> Just dump all the SVG elements into HTML and let that be the switch.
<heycam> http://people.mozilla.org/~cmccormack/improving-svg-dom
heycam: I thought about the discussion we had about having a big switch which would let us change to an improved SVG DOM
<heycam> http://dev.w3.org/SVG/proposals/improving-svg-dom/
<heycam> (that link)
heycam: I only sent it to the
list yesterday so I just wanted to bring it up and briefly
summarise it
... the basic idea is that to get the new interface on the DOM
nodes you'd create the SVG nodes in the HTML namespace / no
namespace
... that's the big switch
... it's critical that something about the creation of the
element is what determines what interface is available
<TabAtkins> I just wrote up a blog post with my initial reactions, too: http://www.xanthir.com/b4RR0 ^_^
heycam: and attribute on the
other hand happens after the element is created and it would be
difficult to switch interfaces on the fly
... the second point is how to make sure that works well with
parsing in the HTML parser
... the existing behaviour of the parser--I would be worried
that we can't change what currently parsed SVG in HTML is
doing
<krit> TabAtkins: great! We can stop the discussion immediately: "I'm going to make sure that SVG and CSS evolve together"
heycam: so I don't think we can just say that all <svg> in <html> get parsed in the HTML namespace
<TabAtkins> krit: I have no idea whether you're being sarcastic or not. Regardless, it's not appreciated.
<krit> TabAtkins: I have no problem with that
heycam: because then all existing content would end up in that category without the author opting into it
shepazu: so why is that important?
<TabAtkins> If anyone's currently scripting at <svg>-in-HTML, they'll break if we just switch them over.
shepazu: perhaps I didn't get the nuance of the proposal, but I didn't see anything you proposed that people would likely to be relying on
<TabAtkins> And without something like a new root element, we can't switch over standalone <svg>.
shepazu: how often to people actually test interface names
heycam: not so much, but they depend on the APIs themselves
shepazu: this is a fairly radical proposal, specifically the <graphics> element
<TabAtkins> Yeah, these proposals are both additive *and* subtractive, so scripts expecting SVG1 stuff will break.
<krit> TabAtkins: we discussed allowing SVG elements in HTML directly and may change to SVG 1.1 mode if you use an <svg> root-element
<TabAtkins> krit: I know.
shepazu: there's going to have to be fallback for older content and older browsers
heycam: yes I think that's the biggest problem with introducing a new root element (fallback for older browsers)
shepazu: that's not a deal-breaker but we need to do an analysis to work out the cost given that it will take a long time for this to deploy
<krit> TabAtkins: I meant to switch from SVG.next to SVG1.1 you just use the <svg> element, and no root element at all if you don't want to (not even <graphics>)
shepazu: if you did createElement now, you are proposing the element does get put in the HTML namespace
<TabAtkins> krit: That doesn't help when you *do* need a viewport element. It also does nothing for the standalone case - svg-in-html is not an image.
heycam: that's how it already works
shepazu: so let's just dump the SVG namespace at all
<TabAtkins> Yeah, right now it'll just have the HTMLUnknownElement interface.
<TabAtkins> But it'll be an <html:svg> element.
<krit> TabAtkins: that is correct
shepazu: if we are going to change it radically, I don't think we should persist in having an SVG namespace
<TabAtkins> shepazu: How are you going to deal with legacy content?
<krit> TabAtkins: he actually rasied this concern
<krit> TabAtkins: brian can't catch up :)
<TabAtkins> krit: Hah, kk.
<TabAtkins> krit: The perils of having a dead phone and a broken charger.
<krit> TabAtkins: :)
shepazu: if someone created something in the SVG namespace explicitly, and we put in the HTML namespace for forwards compatibility reasons
<TabAtkins> That would break legacy code that expects elements it creates to be in the SVG namespace, and to have the SVG1 DOM.
shepazu: we should see what at
what points a script is likely to break if we adopted Cameron's
proposal from an interface perspective
... Cameron seems to be trying to prevent breakage by
introducing a new root element
... and we have to see how disruptive that would be compared to
simply introducing the new API
<TabAtkins> Lots of things would break, quickly. Anything trying to get .baseVal, for example, since it's missing from the new DOM.
krit: if we put SVG elements in
HTML namespace and vice versa, it wouldn't matter which
namespace they were in
... it wouldn't matter how you created them
heycam: every element gets
created in a given namespace
... every node will be in one namespace
birtles: shepazu are you saying we could add Cameron's proposal in parallel to the existing interfaces?
shepazu: I don't have a specific proposal, but I'm wondering how many scripts would break...
krit: I don't think anything would break if we switched on namespace
shepazu: I don't like the idea of
having two different namespaces for SVG
... you're saying we'd have two different namespaces for
SVG
<TabAtkins> No, we'd have the SVG1 namespace, for SVG1. Then SVG2 would just be a part of Greater HTMListan.
krit: now you have to specify the
namespace if you want to create an SVG element
... if you don't do that it ends up as HTMLUnknownElement
... so new scripts could use the new interface...
shepazu: I think it complicates implementations if we have to support both
heycam: I think the proposal complicates it for implementations since they have to support both
<TabAtkins> We have to support both anyway. You're just proposing we support both, merged into the same interfaces.
shepazu: I think that's madness
heycam: I think it's the maximally compatible thing to do
shepazu: I'm trying to think of
scripts that I've been writing where I've been trying to find
the SVG root in an HTML document
... I just walk up until I find a different namespace
... when it comes down to it, what are we trying to
preserve?
... the more complex the content is more likely to not work in
browsers anyway
heycam: It's not that I'm worried about, it's using the actual interfaces
shepazu: so you're suggesting we
use namespaces to switch interfaces but require browsers to
support the old interfaces
... instead of having an implicit switch we just alias the new
behaviour
... why do we need the extra step of opting into the new
interface
<TabAtkins> Browsers only support the old interfaces on the old elements, for legacy compat reasons.
heycam: so you're proposing we
support the union of the two interfaces on the same
element
... we tried to do that but we reached limits
... because we can't change, for example, rect.x to something
more sensible because it's defined to return
SVGAnimatedLength
<TabAtkins> Yeah, too many things are broken in ways that would require actually changing names, which breaks the language much more thoroughly (and ruins hopes of compat with HTML in things like <a>.href)
shepazu: if we change that, how much will it break?
birtles: I think it will break a lot
<TabAtkins> It will break literally *anything* that actually uses that attribute.
shepazu: I think we need to analyze what will break and determine if we really need a switch, but I don't like the new root element
<TabAtkins> zcorpan over in #whatwg asks if we know usage numbers for the current DOM. If they're low enough, can we just drop the old stuff straight up?
<TabAtkins> shepazu: We've already looked it through. >_<
shepazu: if it's just to do with the dom then maybe it's a new keyword
<krit> TabAtkins: shepazu doesn't read your comments :( Can't you call in?
<TabAtkins> No, I can't.
shepazu: I think the distinction based on root element / namespace is going to be difficult for someone new to web development / svg
<TabAtkins> There's no distinction. There's SVG, which has a <graphics> root and is part of Greater HTML, and then there's some weird legacy stuff you see occasionally.
heycam: well this is a start to
get people thinking about new SVG DOM ideas
... feel free to send more thoughts to the mailing list
krit: please add points from this discussion as issues to the proposal
This is scribe.perl Revision: 1.138 of Date: 2013-04-25 13:59:11 Check for newer version at http://dev.w3.org/cvsweb/~checkout~/2002/scribe/ Guessing input format: RRSAgent_Text_Format (score 1.00) Succeeded: s/please points/please add points/ Found ScribeNick: birtles Inferring Scribes: birtles WARNING: No "Present: ... " found! Possibly Present: Doug_Schepers IPcaller Note P0 P7 ScribeNick TabAtkins Tav ThomasSmailus aaaa birtles heycam joined krit krit1 nikos shepazu svg trackbot You can indicate people for the Present list like this: <dbooth> Present: dbooth jonathan mary <dbooth> Present+ amy Agenda: http://lists.w3.org/Archives/Public/public-svg-wg/2013JulSep/0040.html Found Date: 08 Aug 2013 Guessing minutes URL: http://www.w3.org/2013/08/08-svg-minutes.html People with action items: dirk[End of scribe.perl diagnostic output]