- From: Cameron McCormack <cam@mcc.id.au>
- Date: Mon, 03 Jun 2013 17:32:07 +0900
- To: "www-svg@w3.org" <www-svg@w3.org>
Minutes from day 1 of the Tokyo 2013 SVG F2F meeting:
http://www.w3.org/2013/06/03-svg-minutes.html
[1]W3C
[1] http://www.w3.org/
- DRAFT -
SVG Working Group Teleconference
03 Jun 2013
[2]Agenda
[2] http://www.w3.org/Graphics/SVG/WG/wiki/F2F/Tokyo_2013/Agenda
See also: [3]IRC log
[3] http://www.w3.org/2013/06/03-svg-irc
Attendees
Present
Jun, Cyril, Tav, Tab, Satoru, Yusuke, Tomoaki, Cameron,
Rik, Dirk, Nikos, Brian, Shane
Regrets
Chair
Cameron
Scribe
Cyril
Contents
* [4]Topics
1. [5]agenda
2. [6]should fill-rule apply to text elements?
3. [7]marker orientation issues
4. [8]feBlend issues
5. [9]enable-background issues
6. [10]What makes a stacking context?
7. [11]buffered rendering
8. [12]Stacking contexts, cont.
9. [13]review of hatches
10. [14]multiple paint servers on one element
* [15]Summary of Action Items
__________________________________________________________
<trackbot> Date: 03 June 2013
<TabAtkins> Hrm. I got confused and came up to Mori tower for
some reason. Is the best way to fix this to head back down and
use the subway again?
<heycam> TabAtkins, no, but it is about 15 minutes walk
<cabanier> scribenick: cabanier
<heycam> TabAtkins, (Mori tower is right where my hotel is)
<heycam> TabAtkins, do you have a map? it's a reasonably
straightforward route
<TabAtkins> kk
<TabAtkins> i have google maps?
<TabAtkins> kinda?
<shans__> TabAtkins: I can come get you if you want
<TabAtkins> heh, sure
<TabAtkins> <3
<TabAtkins> birtles: Yeah, I have that up, but it doesn't stop
me from being dumb.
<shans__> TabAtkins: OK, I'll meet you at the bottom of the
mori tower?
<TabAtkins> yeah, i'm at the starbucks
<shans__> TabAtkins: alright, be there in 10
<TabAtkins> yay!
agenda
heycam: are there missing topics?
… don't worry about scribing
<TabAtkins> Shane has found me! Coming in.
should fill-rule apply to text elements?
heycam: in svg 1.0, it applies to shapes and text
… but does it make sense?
Tav: maybe for SVG in OpenType?
heycam: does it make sense to control how the path data is
interpreted?
krit: per glyph or the whole word?
heycam: my feeling is that it's not very useful
… so wanted to see if other people feel the same way
… I discovered because a site was using
cabanier: yes, it should have no effect
… you are supposed to define them so that are unaware of the
fill rule
… outlining glyphs should be unaware of winding rules
heycam: our implementation was slower for even odd
krit: we rely on the rendering engine so it doesn't affect the
winding
nikos: so, subpixel-aa is also turned off
heycam: yes
... what if the glyphs overlap?
cabanier: they should paint separately and not interact with
each other anyway
heycam: so, should they work?
everyone: no
heycam: so we'll change the text so it doesn't aooky
Cyril: maybe this is for SVG fonts?
heycam: that's possible
... for SVG in OpenType, there's no way either
resolution: fillrule does not apply to text
marker orientation issues
tav: I added it
… basically there are inconsistencies between browsers
… you can look at the examples
<krit> [16]http://paullebeau.com/svg2/markers/
[16] http://paullebeau.com/svg2/markers/
… and there's also the question of rectangles
… what do you do with rounded corners
heycam: I remember making a test for this
… I have a feeling that the spec should define this
… ie angle coming from 2 different directions
krit: is there a spec issue of is it just implemenation
Tav: it might be just implementaion
… for 2 subpath, they should not be treated as 1
… I think
(looking over the examples)
heycam: looks like rendering issue
tav: what with the double point?
heycam: I wonder what the spec says?
… (reading) it seems that you get 2 markers for double points
krit: why would you draw points on top?
tav: maybe in animations
krit: I would expect the markers over each other
tav: you always get the discontinuity
krit: I'm more talking about transparent markers
heycam: taking a look at the 'correct' version, I think he is
right
krit: do we need to change the spec
heycam: yes, it should be make clearer. for instance the
orientation shouldn't be in an appendxi
… it could benefit from being rewritten
… orientation is also used for motion path orientation
krit: text on a path
heycam: yes when the glyph is on the point
… it sounds like we agree with his findings
TabAtkins: we can't use his exact wording
… because he wants to use coincident points to be ignorder
heycam: he may be talking about the orientation
… do we all agree that there should be rendering for each
point?
tav: yes
resolution: we agree with his finding to determine the
orientation of the marker and we should paint a marker for each
vertex even if they coincide
heycam: he also suggest a new value for the orient attribute
TabAtkins: that seems to make easy double arrows
heycam: given that you need to duplicate marker elements
TabAtkins: no, it will flip it around. the name is unclear
… start or reverse seem better names
heycam: I like the idea but not the name
tav: autoreverse?
TabAtkins: 'auto-reverse'
… could it be multi-value
heycam: not sure. let me check
<birtles> (discussed that 'auto-reverse' is used on
animateMotion's rotate attribute with different meaning so it
could be confusing)
… currently the value for marker orient is exposed as IDL
attributes
… orient type which is an animated enumeration
— and the angle value
… maybe we can resolve on this new value
resolution: we'll have a new value for orient attribute to do
the right thing for arrow heads
TabAtkins: there's an issue where there are begin and end
markers on closed paths
heycam: I find it odd that the open subpaths don't have an end
TabAtkins: that's what the spec said. It's on path element
itself
heycam: closed subpaths should only have marker mids?
all: yes
heycam: markers on rects and ellipses
(previous topic)
(discussion on just moveto's creating markers)
krit: we have patches to make that happen
heycam: I thought we had tests for all this
… but I can't find it
… so we should decide something
… I think it would be most consistent to paint both
krit: this is strange
TabAtkins: the problem is that this is a spec change
heycam: looking at subpaths makes more sense but it seems that
most implementations already agree on the just looking per path
element
… I'd be most happy with the small change
TabAtkins: it all seems broken
<TabAtkins> TabAtkins: All the existing renderings are broken.
>_<
krit: we should add a note that it may change in the future
resolution: we'll keep start and end markers apply to the whole
path
<TabAtkins> Hey shepazu, WRITE STAR.
<TabAtkins> Alternately, send me your notes and I'll write it.
<shepazu> TabAtkins, I'll write star
<shepazu> or at least start it
heycam: there was 1 remaining topic on markers
… rectangles, ellipses, etc
tav: what about rounded corners?
TabAtkins: all the remaining elements should define the
equivalent path
heycam: you'd probably want to use marker pattern
… should that be doable
TabAtkins: yes
birtles: it would be useful to have path equivalents for the
rect and ellipse
<birtles> (for variable-width stroke)
resolution: closed subpaths should get no start or end markers
<AlexD> +1 to that
heycam: I already have an action to come up with equivalent
paths for rects and ellipses
<AlexD> Make sure ellipses use ellipse segments, not beziers!
cabanier: yes
TabAtkins: Canvas already defines this
… it uses it as 4 arc paths
<AlexD> Nice
heycam: I have the action so we can draw the dashes correctly
<TabAtkins> Canvas doesn't define it as 4 arc paths - it does
it as one continuous arc. But still, its start point is the
rightmost point.
<TabAtkins> So we should match.
… maybe we can copy rect over from svg tiny 1.2
<AlexD> We already have tests for dashing around rects & Arcs
so should be easy to check they match
<AlexD> Ellipses, sorry
TabAtkins: yes, canvas has it with the start in upper left and
going clockwise
<heycam> AlexD, good point
<AlexD> e.g. shapes-ellipse-03-t.svg
resolution: we need to have markers on rect, circle and ellipse
and all basic shapes (in case of stars)
... rounded rects start at straight horizontal line of the top
left
... rounded rects wind clockwise and include 0 length segments
when the rounder corner is 50%
... for ellipses and circles, the path starts at right-most
point and consists of 4 arcs going clockwise and each are 90
degrees
<scribe> ACTION: heycam to integrate the marker resolutions in
the spec [recorded in
[17]http://www.w3.org/2013/06/03-svg-minutes.html#action01]
<trackbot> Created ACTION-3496 - Integrate the marker
resolutions in the spec [on Cameron McCormack - due
2013-06-10].
<TabAtkins> ScribeNick: TabAtkins
feBlend issues
cabanier: feBlend as defined today does blending an
compositing.
... This is usually fine today, but if you blend with
backgroundIMage, you'll get double compositing, and there's no
way to avoid it.
<Tav>
[18]http://tavmjong.free.fr/INKSCAPE/MANUAL/images/FILTERS/Filt
ers_Background.svg
[18]
http://tavmjong.free.fr/INKSCAPE/MANUAL/images/FILTERS/Filters_Background.svg
cabanier: We can either change feBlend (seems to be the only
way)
... We can add an attr to feBlend, so it doesn't do the
compositing.
... That is, do the "normal" compositing only.
krit: [draws an example]
cabanier: There's too much existing content out there for us to
change the default behavior.
... And if you don't use backgroundImage, it's not bad, and
sometimes good, to composite eagerly.
... So choices are add an attribute that stops compositing, or
try to detect when backgroundImage is the input, and don't
composite.
krit: I like the attribute, because it might sometimes be
useful to do the extra composite.
[some side discussion about naming]
TabAtkins: So it looks like just dropping backgroundImage
compositing would be web-compatible?
heycam: Anything else with this problem?
cabanier: feComposite, but that's much more intentional.
krit: There are more use-cases that might want only blending,
so doing the attr seems better.
ACTION krit to define a new attribute (nocomposite?) on feBlend
that turns off the compositing effect.
<trackbot> Created ACTION-3497 - Define a new attribute
(nocomposite?) on feBlend that turns off the compositing
effect. [on Dirk Schulze - due 2013-06-10].
RESOLUTION: Keep feBlend's current behavior (where it blends
and composites), but add an attribute that turns off
compositing.
enable-background issues
cabanier: Today, e-b has a really long description.
... I think IE implemented it, and Opera, but nobody else.
TabAtkins: I think roc is against it, and we (blink) have
similar concerns.
cabanier: Yeah, it's really expensive.
... The way it's defined today you have to render twice - once
to use as the background.
... Nice for authors, but hard/slow to implement.
... Adobe apps do something similar under the hood, which we
can add in the future.
heycam: Isn't there a trick to keep you from double-rendering?
cabanier: Yes, but there are still issues where you have to
keep two sets of pixels, and that kills performance.
<AlexD> double rendering? Isn't it just a backing store that
you bitblt as the second pass? Blts are fast:-)
<nikos> [19]http://www.svgopen.org/2005/papers/abstractsvgopen/
[19] http://www.svgopen.org/2005/papers/abstractsvgopen/
heycam: I think e-b isn't explained well in the spec, and if
impls have a trick that can make it not so slow, the spec
should define this.
... But you're saying that even with that trick, due tto the
arch. of accel. compositors, it'll still be slower.
cabanier: Yeah. We can revisit this in the future, but we
should get the basics right now.
... We can define similar things to HTML's "stacking contexts"
- if you ahve a <g> with opacity, it's a stacking context.
<AlexD> The requirements to support e-b are the same as
supporting filters. So if you can accelerate filters you should
be able to accelerate e-b. Need hard data to falsify this
claim:-)
No, it's not the same.
You can do filters with one copy of the data in a single gpu
pass.
<AlexD> <g> with opacity already requires some intermediate
thing - however you can do it with a pixel sequential renderer
and no backing store.
You don't have to go retrieve data from a different gpu pass in
order to render them.
[some discussion about transforms and stacking contexts]
<AlexD> agreed Tab, and you can model e-b in a similar way
<AlexD> backing stores can be a last resort fallback
cabanier: So I think we should get rid of e-b, and say that
certain elements create a fresh background.
krit: e-b can still be used to create an isolation group for
filters.
... That's what's done in Opera/IE.
<AlexD> If we get rid of e-b, then it should be replaced by
something better, like PDFs transparency groups which are a
better model
cabanier: It can also be used to make non-isolated groups.
krit: Some properties need to create isolated groups by default
anyway. For example, opacity needs to be an isolated group
independently of e-b.
... We already have some impls of e-b, and I'm not keen ot have
it removed without asking the impls about it.
cabanier: In the current spec langauge, it says you *must* use
e-b for blending to work. We don't want that either.
krit: e-b gets less necessary with the definition that some
other properties make isolation groups.
<AlexD> I agree, haven't seen a strong argument that it's not
implementable. Current architectures for H/W accelerate
shouldn't degrade the model...
cabanier: If we can just change e-b without breaking the web,
that's fine too.
... To summarize, everything that creates a stacking context,
creates an isolated group.
heycam: So what's the use of e-b outside of that?
[something about the effects of removing e-b from the spec]
heycam: So when do you want e-b? Somewhere when there's not
already an isolated group?
cabanier: Yeah, but there are several proeprties which can make
isolation without any other effects, and the 'isolation'
property specifically for that.
heycam: Okay, so it sounds easy to get rid of e-b, use
'isolation' or stackign contexts when you want to turn off
background blending.
... As long as people don't think there's strong use-cases for
people using the more complicated e-b stuff.
<AlexD> Maybe we can try to get some data about how much it's
used in the wild. Does Inkscape support it to isolate layers,
etc.
[rehashing of previous conversation]
krit: To be clear, e-b is implementable, just not with the perf
characteristics we want.
<AlexD> Then you need to write better code krit:-) GPUs are so
slow...
[discussion of the values that 'isolate' has and their
meanings]
<krit> AlexD: yeah, that is why I wrote everything for the CPU
:P
<cabanier> cabanier: the issue is not GPU performace, the
problem is that you need at least 2 extra readbacks from the
backbuffer and 3 writes to the input buffer
heycam: Regardless of discussion over ease of implementation,
because current impls dont' do it and don't want to do it, the
spec should leave it out for the moment.
<AlexD> Again we need to get hard data on whether it's used.
Currently it acts as a spot to run your filter chain back to.
So we need to at least address that case.
<cabanier> cabanier: which accesses the memory a lot more which
will drain your battery
heycam: If Alex can convince people later, we can add it.
krit: [wants a value for 'isolate' that prevents isolation of
descendants even with stacking contexts. Pointed out that we
can add this later and have 'auto' respond to it]
RESOLUTION: Remove e-b from this level of Filters.
<AlexD> For the record I'm not for or against, just want to
make sure we don't break existing content in the field
krit: Should I remove e-b silently, or have a note?
several: Seems useful to have a note pointing back to the old
definition.
What makes a stacking context?
cabanier: Anything in CSS that makes a stacking context -
transforms, filters, etc.
heycam: Do you really want every transform attr to make a
stacking context?
<AlexD> NOOOO!
cabanier: No, but we want to be simple and consistent with CSS.
;_;
krit: We all agree that SVG transforms are oftne just used for
moving things around, and are quite basic, rather than
something that requires stacking contexts.
... But impls all do normal CSS stuff.
cabanier: Maybe we can say that 2d transforms in SVG dont' make
a stackign context?
heycam: If you want the same kinds of optimizations, maybe you
do want stacking contexts.
cabanier: Like smooth transitions, yes.
krit: Does FF do transform transitions in hardware? WebKit
doesn't do it yet (all software for SVG), but we want to change
that.
heycam: Same.
... Seems like this will suck.
cabanier: It will.
krit: Rik tried to specify it around whether you're animating
or not, but it didn't gain consensus - ugly flash when you
change.
cabanier: So maybe we can just differentiate 2d vs 3d - 2d
doesn't make a stacking context in SVG.
heycam: What if authors definitely want a separate layer, but
ar ejust using 2d transforms?
TabAtkins: Use a null 3d transform, or just use 'isolate'.
heycam: Ah, I think I might be okay with using 'isolate' to get
the stacking context.
Cyril: That seems to make sense.
<AlexD> I like isolate better than the 3d transform hack
krit: I think in practice implementors are going to use the
same code as in HTML/CSS, so 2d transforms will be isoalting as
well.
... I think we should add an agenda for Wed to ask the other
CSS implementors.
cabanier: Back to the original context, also filters and
opacity cause stacking contexts.
Cyril: z-index also makes a stacking context?
heycam: Yes, just like CSS.
Tav: Question about that - we have someone wanting to
implementing connectors in Inkscape.
... You have symbols for the components, want connectors on
different layers, etc.
... Suppose my symbol has things with different levels.
... And I want to have multiple symbols sometimes interleave?
[explanation of how stacking contexts work]
[conclusion is - it'll work, but making the symbol itself a
stacking context will prevent it]
Cyril: [discussion of a layer use-case]
heycam: BAck to main discussion, are people expecting blending
to work through opacity?
cabanier: Probably, but it's hard to make work.
krit: We make them isolated groups, and I think FF does too.
... Also masks and clips are stacking contexts.
cabanier: Why are clips?
TabAtkins: They're basically inverses of each other.
heycam: Simple clips can be done simpler than masks, but
complex clips (with overlapping curves, or text, etc.) might
use the same code path.
krit: Remember, this is the firsst level of blending. In the
next level, we can do "real" blending, so it can go through
stackign contexts, etc.
buffered rendering
Cyril: It's a hint.
krit: That's the problem. Blink is looking to implement it.
... So it can make a stackign context sometimes - "auto" is
determined by the engine.
... So we should change "auto" to mean "don't make an image
buffer".
Stacking contexts, cont.
[I meant that 'buffered-rendering' also causes stackign
contexts.
RESOLUTION: buffered-rendering:auto/dynamic never create a
stacking context; "static" does.
<Cyril> scribe: Cyril
<scribe> scribeNick: Cyril
heycam: someone should actually note those things that create a
stacking context in the spec
<scribe> ACTION: Rik to note those things that create a
stacking context in the spec [recorded in
[20]http://www.w3.org/2013/06/03-svg-minutes.html#action02]
<trackbot> Created ACTION-3498 - note those things that create
a stacking context in the spec [on Rik Cabanier - due
2013-06-10].
heycam: the rendering model chapter should reference the
compositing/blending
nikos: I did start updating it
<heycam> [21]https://svgwg.org/svg2-draft/render.html
[21] https://svgwg.org/svg2-draft/render.html
cabanier: the CSS compositing spec references that and extends
it
[22]https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.h
tml#module-interactions
[22]
https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#module-interactions
cabanier: we believe that CSS Blending and CSS Filters
currently extend SVG 1.1 and don't need to reference SVG 2
krit: it depends on when SVG 2 goes to CR state
cabanier: there needs to be a link back from SVG 2 to those 2
specs
... does this mean those 2 specs need to be at CR stage ?
krit: no
review of hatches
<Tav> [23]https://svgwg.org/svg2-draft/pservers.html#Hatches
[23] https://svgwg.org/svg2-draft/pservers.html#Hatches
Tav: I'd like people to review it and tell me if it is ok
krit: how would you implement hatches ?
tav: creating a pattern on the fly could work
krit: hatch as a dimension
tav: inifinite in one direction
... you can go to one tile but need to be carefull at tile
boundary
... I would make the tile the size of the whole thing
... as long as you take car of the boundaries, it should work
heycam: can you summarize the new elements
<AlexD> Take a look at my open source hatching that I emailed
ages ago - it's really easy to hatch. You generate the bound
box of the thing being filled, generate the lines and clip them
against the polygon.
tav: the hatch element copied from the pattern element
<heycam> AlexD, but does that work if you want to use the hatch
in the stroke of a shape?
<heycam> (unless you have good stroke-to-path routines)
<AlexD> Yes - you have to generate the outline of the stroke of
course
tav: the hatch has a pitch to repeat
<AlexD> [24]http://www.ishtek.com/hpgl2.htm
[24] http://www.ishtek.com/hpgl2.htm
tav: the hatch has a path which defaults to a line
... and an offset from the origin
heycam: can you choose the origin ?
tav: yes, that's copied from patterns
<AlexD> Source code is [25]http://www.ishtek.com/gl2-0_1.zip
[25] http://www.ishtek.com/gl2-0_1.zip
<shepazu> (isn't the problem with patterns a matter of
implementation, not an inherent problem with the spec?)
tav: the fdifference between a normal path and a hatch path,
you don't have to provide the original move to
... if not, the y is 0 and x is that last x value
... that's how you get the continuous
heycam: why y = 0 ?
tav: because you're repeating in the y direction
... look at the 1st squiggle example
krit: why do you need to introduce a hatchPath element? why not
reuse the path element?
Tav: no initial move to
... it's necessary to repeat
... examples 9 and 10 show the difference between having the
initial move to or not
krit: why do you need the angle attribute since you have the
transform attribute ?
tav: maybe not needed then ...
krit: it can be confusing in which order they apply
tav: I have to think about it
nikos: should the d attribute be called differently ?
krit: I'm worried about the transform attribute
... we already have the gradientTransform ...
tav: that's fine with me, I just copied over from pattern
heycam: this brought the issue of capitalization of elements
... we did not resolve firmly on it
... especially given the HTML parsing algorithm
... each new mixedCase name that we introduce we need to update
the HTML parser
krit: I think we should continue with our naming
heycam: and update the HTML spec ?
... otherwise the casing will not be preserved
... I'm pretty sure there will be a problem if we don't do
anything
... we could say that both names work in the DOM
krit: is it only when SVG elements are not used in an SVG
subtree ?
heycam: no, even if in an SVG subtree because the HTML parser
won't know that new element
Tav: that must be trivial to fix
heycam: yes, but that could create problem between parsing and
DOM manipulations
... maybe it's not a big deal because people won't be doing
that
... one solution could be to allow both cases to produce the
same DOM element
... because if we don't allow that we have to file a bug on the
HTML spec
krit: can you fill hatch paths ?
Tav: no
... that needs to be clarified
krit: what about filters ?
heycam: and markers ?
... can you use the normal stroke properties ?
Tav: yes
... even variable width stroke, but it depends on the use case
heycam: it makes sense to allow all stroke properties
... you could do overlapping, which you can't easily do with
patterns
Tav: overflow on the parent is not defined
<AlexD> Yes, and it does that in GL/2 i.e. hatch lines are
clipped, then the stroke can go outside the original shape with
line ends, etc.
heycam: if overflow is set to hidden, then there must be some
rectangular region used for clipping
tav: the rectangular region is infinite length
(tav drawing on the board)
krit: there would be a difference between overflow x and
overflow y
Tav: it would be nice to have overflow on patterns
krit: it was implemented but then removed from the spec
Tav: it would be easier for authors
heycam: I do it 4 times and clip the middle
krit: it was not implemented by Opera and Firefox
Tav: can we revisit that for SVG 2
heycam: let's start without it
Tav: any other issue that people see ?
heycam: I would start with the assumption that all stroke
properties work
krit: should all paint servers work ?
Tav: like a hatch inside a hatch ?
... why not if it can be implemented easily
<AlexD> Mmmm, fractal hatching:-)
heycam: most people won't use it
... if you have a hatch whose stroke properties references a
paint sever defined in terms of objectboundingbox
... which bounding box would you use, the small one or the
infinite one ?
krit: can we leave that undefined for now
... unspecified
heycam: I don't think it should stay unspecified
TabAtkins: it is a mistake to leave it undefined
Tav: we could say only solid colors for now
RESOLUTION: Hatch will only support solid color paint servers
Cyril: can you reuse a path?
Tav: that's not really the same as another path?
... currently there is only a hatchPath and it cannot reference
something else
krit: I would leave it like that
heycam: there is a xlink:href attribute on the hatch element
break
<TabAtkins> /break
<TabAtkins> [Presentation from IDPF about "Advanced Hybrid
Layouts" to get input from SVGWG for some questions.]
<TabAtkins> [Slides will be published shortly.]
example of "intra-navigation rendition" for Comics using SVG:
[26]http://concolato.wp.mines-telecom.fr/2013/03/28/svg-comics/
[26] http://concolato.wp.mines-telecom.fr/2013/03/28/svg-comics/
works only in Firefox
<TabAtkins>
[27]http://www.whatwg.org/specs/web-apps/current-work/multipage
/the-map-element.html#attr-area-shape
[27]
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-map-element.html#attr-area-shape
heycam; we could have the overflow property apply to the view
element
krit: does it need to be the view element ?
TabAtkins: yes because there is no nested svg element
... it has to be a view
krit: you could use the view element with use elements
IDPF: would you feel offended if we added our own attribute
heycam: we would prefer to define it in SVG
TabAtkins: it sounds useful for general SVG
IDPF: multi-lingual manga, tapping an area or moving the mouse
over to change the language
... it dosn't work on tablet
birtles: you can use SVG animations
TabAtkins: or HTML with hidden option elements
... with pure HTML, no JavaScript
heycam: relies on the fragment changing and links?
TabAtkins: using check boxes and radio buttons and
pseudo-classes
... use check to display none
... you can cycle between language
birtles: if your UA supports SVG animations, it would be a lot
simpler and more semantically intersting to use SVG
IDPF: what about CSS animations?
TabAtkins: some of it will be only possible in SVG animations
... what about scaling to 100 languages
IDPF: with menus maybe
TabAtkins: JS would become more useful
IDPF: could you use SVG animations to store your language
preference
Cyril: maybe using SMIL state
birtles: you could use the switch element
krit: I would not rely on the switch element
IDPF: how well is the support for animation
birtles: well in all browsers except IE
krit: but you could use JS libraries
[28]http://concolato.wp.mines-telecom.fr/2013/03/28/svg-comics/
[28] http://concolato.wp.mines-telecom.fr/2013/03/28/svg-comics/
<TabAtkins>
data:text/html;charset=utf-8,<!DOCTYPE%20html>%0A<div%20id%3Dba
ckground>%0A%20%20<input%20name%3Dfoo%20type%3Dradio%20id%3Di1%
20checked><label%20for%3Di2>1%2C%202%2C%203<%2Flabel>%0A%20%20<
input%20name%3Dfoo%20type%3Dradio%20id%3Di2><label%20for%3Di3>%
E4%B8%80%2C%20%E4%BA%8C%2C%20%E4%B8%89<%2Flabel>%0A%20%20<input
%20name%3Dfoo%20type%3Dradio%20id%3Di3><label
<TabAtkins>
%20for%3Di1>i%2C%20ii%2C%20iii<%2Flabel>%0A<%2Fdiv>%0A<style>%0
Ainput%2C%20input%3Anot(%3Achecked)%20%2B%20label%20%7B%20displ
ay%3A%20none%3B%20%7D%0A<%2Fstyle>
<TabAtkins> D'oh, terrible link handling.
IDPF: How should we capture regions ?
<TabAtkins>
[29]http://software.hixie.ch/utilities/js/live-dom-viewer/saved
/2271
[29] http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2271
<TabAtkins> ^^^ Example of cycling language via HTML.
<TabAtkins> (And it can be powered up with a "default language"
selection as well.)
IDPF: Should we use SVG views, SVG elements in the rendition
tree or SVG elements in <defs>
Cyril: you want to describe metadata
IDPF: yes
... a tree of regions
... for navigation
... the rest is flat
heycam: is the description of the hierarchy inside or outside
the SVG document ?
IDPF: outside
<TabAtkins> (Also, the basic mechanics in my example are
captured in a draft CSS spec on my blog, and the CSSWG is
interested in pursuing it, so this might be usable for SVG as
well.)
TabAtkins: if you extend media fragment to add a polygon that
might do a lot
IDPF: yes
Cyril: it would be good to add the metadata in the SVG document
to enable viewing it with browsers
... possibly with JS navigation logic
IDPF: why having both views and fragment identifiers ?
heycam: maybe for flexibility
TabAtkins: yes it depends on who is the author of the document
<birtles> SVG version of above:
[30]http://software.hixie.ch/utilities/js/live-dom-viewer/saved
/2272
[30] http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2272
heycam: we can answer to the IDPF questions in a liaison
... we need also to wok on the clipping question
TabAtkins: overflow should clip the content
... I will take the question to the CSS group
... and we need to work on swapping text around
heycam: there is also a work on custom media queries
TabAtkins: to avoid creating a class attribute on the body
(modernizr)
IDPF: we are wondering if we should use media queries for text
direction or language
TabAtkins: it should work
... your use cases seem appropriate for MQ
... some properties like luminance are in CSS MQ 4
<heycam>
[31]http://www.w3.org/mid/CAAWBYDBbJ5qSDZzHAvThdA9W0PDmEOTh7+Ap
LaQYtHwi6U0o_Q@mail.gmail.com
[31]
http://www.w3.org/mid/CAAWBYDBbJ5qSDZzHAvThdA9W0PDmEOTh7+ApLaQYtHwi6U0o_Q@mail.gmail.com
heycam: in summary we need to answer how to represent non
rectangular view, clip them, swap text, more media queries
<TabAtkins> Also: where to put region information?
<TabAtkins> heycam: Keep it in content where possible.
heycam: we can consider that for SVG 2
... you need to point to the views from outside
... and for browser fallback to use # to those views and have
sensible behavior
IPDF: we like CR
heycam: the original plan was to have a stable version at the
end of this year
... but I'm not sure we can make that
... we could right a separate specification if that would make
your life easier
IDPF: yes that would
... we would need to decorate semantically the views
heycam: I think that would be fine for you to define the
semantics in the SVG document in a different namespace
IDPF: yes that's our plan
... also order would be significant
heycam: arbritrary authoring tools might not preserve the order
IDPF: but we might need to represent the order in our external
navigation metadata documet
heycam: I will gather our ideas and send that as a liaison
<scribe> ACTION: heycam to gather ideas for solving IDPF issues
and send that as a liaison [recorded in
[32]http://www.w3.org/2013/06/03-svg-minutes.html#action03]
<trackbot> Created ACTION-3499 - Gather ideas for solving IDPF
issues and send that as a liaison [on Cameron McCormack - due
2013-06-10].
<heycam> ScribeNick: heycam
multiple paint servers on one element
Tav: sometimes you want a crosshatch
… you could have multiple fills on an object
… it might be useful to have a colour fill and with a hatch on
top
… how to specify this?
… maybe a comma separated list?
krit: and what about the fallback value?
… fill/stroke have a paint server reference and a fallback
value
… how does that work?
TabAtkins: just like background, the last thing would be a
colour
… and you'd fall back to that
… it's comma separated, but the last layer can be a colour
krit: you have a space separated fallback colour in fill/stroke
now
heycam: why not have <paint> for each item?
krit: then we need to define the paint order. we should do it
like background-image.
heycam: so it's backwards?
Tav: that's how I'd do it
krit: what about having fill-attachment, fill-clip, ...?
TabAtkins: do we really want that? it might be a good idea,
but...
heycam: allow that for stroke as well?
Tav: yeah
RESOLUTION: We will allow multiple paints in the fill and
stroke properties in SVG 2.
<TabAtkins> Comma-separated, painting first layer on top, last
on bottom. Only last layer can be a color or have a fallback
color.
cabanier: what about the other stroke properties, like
stroke-width?
heycam: having a comma separated list of stroke-dasharrays
would be problematic
… we could wrap them in a function if we need to, though
krit: I don't want to support those yet
… let's just do fill and stroke properties, and leave stroke-*
properties as single items for now
heycam: ok
<scribe> ACTION: Tav to put multiple fills/strokes in SVG 2.
[recorded in
[33]http://www.w3.org/2013/06/03-svg-minutes.html#action04]
<trackbot> Created ACTION-3500 - Put multiple fills/strokes in
SVG 2. [on Tavmjong Bah - due 2013-06-10].
RESOLUTION: <hatch angle> will be renamed <hatch rotate>.
... <hatch rotate> will allow angle units.
Summary of Action Items
[NEW] ACTION: heycam to gather ideas for solving IDPF issues
and send that as a liaison [recorded in
[34]http://www.w3.org/2013/06/03-svg-minutes.html#action03]
[NEW] ACTION: heycam to integrate the marker resolutions in the
spec [recorded in
[35]http://www.w3.org/2013/06/03-svg-minutes.html#action01]
[NEW] ACTION: Rik to note those things that create a stacking
context in the spec [recorded in
[36]http://www.w3.org/2013/06/03-svg-minutes.html#action02]
[NEW] ACTION: Tav to put multiple fills/strokes in SVG 2.
[recorded in
[37]http://www.w3.org/2013/06/03-svg-minutes.html#action04]
[End of minutes]
__________________________________________________________
Received on Monday, 3 June 2013 08:32:58 UTC