{"id":606,"date":"2010-01-29T13:20:31","date_gmt":"2010-01-29T13:20:31","guid":{"rendered":"http:\/\/www.codedread.com\/blog\/?p=606"},"modified":"2010-01-29T13:23:27","modified_gmt":"2010-01-29T13:23:27","slug":"svg-2-0-wishlist","status":"publish","type":"post","link":"https:\/\/www.codedread.com\/blog\/archives\/2010\/01\/29\/svg-2-0-wishlist\/","title":{"rendered":"SVG 2.0 Wishlist"},"content":{"rendered":"<p><object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/angry-axe.svgz\">[clipart]<\/object><a href=\"http:\/\/berjon.com\/blog\/2010\/01\/svg2.0-wishlist.html\">Robin Berjon posted<\/a> about what his SVG 2.0 Wishlist would be.  I think he used the hatchet a little too much, so I thought I'd give some feedback.  Since he doesn't support comments (boo!) here we go.<!--more--><\/p>\n<h3><a href=\"#chopping-defs\" id=\"chopping-defs\">Chopping defs<\/a><\/h3>\n<p>This was probably my biggest annoyance\/concern since, to my knowledge, the &#60;defs&#62; elements causes zero problems.  Why would &#60;head&#62; or &#60;g style=\"display:none\"&#62; be preferable to <a href=\"http:\/\/www.w3.org\/TR\/SVG11\/struct.html#DefsElement\">&#60;defs&#62;<\/a>?  The defs elements provides semantics to a SVG document.  Specifically, it acts like Flash IDE's \"stage\", where graphical editors can store and find the re-usable elements in a drawing.  I don't see any benefit to getting rid of &#60;defs&#62; nor do I see a problem that it causes.  Why are you using &#60;section&#62; elements when &#60;div&#62; will do just fine on your blog, Robin? \ud83d\ude09<\/p>\n<h3><a href=\"#chopping-smil\" id=\"chopping-smil\">Chopping SMIL<\/a><\/h3>\n<p>I think chopping SMIL at this point would be a bad idea, considering that all native SVG browsers are just coming online with this stuff now.  Yes, SMIL is vastly underused, but frankly SMIL has not had a chance to prove itself - both in user agents and in graphical editors.  I'd say now that it's been (being) finally implemented, give SMIL a chance and drop it in SVG 3.0 (or whatever comes next) if it is still too under-used.<\/p>\n<p>Your alternatives to SMIL are <a href=\"http:\/\/www.w3.org\/TR\/css3-animations\/\">CSS3 Animations<\/a> for simple cases (sounds good) and JS+DOM for complex cases.  I disagree with the latter as the only way to animate complex SVG.  I think that SMIL still has good uses there.  Out of curiosity Robin, what do you think of <a href=\"http:\/\/www.w3.org\/TR\/timesheets\/\">SMIL Timesheets<\/a>? <\/p>\n<p>What we do need to solve is the DOM interface for SMIL.  I agree baseVal and animVal are truly hated.  In general, I think declarative animations make sense for SMIL, but I don't know about the mixture of SMIL + DOM - that never quite made sense to me.<\/p>\n<p>Maybe move SVG+SMIL out into its own SVG 2.0 Module and see how it fares and provide SVG DOM Core 2.0 that's leaner, meaner and leaves out the SMIL?<\/p>\n<h3 id=\"elems-props\"><a href=\"#attrs-props\">Attributes and CSS Properties<\/a><\/h3>\n<p>What's the migration strategy?  If the SVG 2.0-capable browser encounters an attribute that was present in SVG 1.1 and not present in 2.0 - what should it do?  Ignore?  &#60;circle fill=\"blue\" \/&#62; becomes black?  <\/p>\n<p>Not all editors universally love inline style attributes (though the popular ones do).  Inline style attributes are another layer of parsing, another micro-syntax for hand authors, and can actually bloat the markup - unless you have more than 3 presentational attributes \ud83d\ude1b<\/p>\n<p>I think removing the CSS properties as attributes will actually end up confusing authors further (what? i can set the radius of the circle using XML but not the stroke-width?).  I think the decision to make presentational attributes was a conscious one based on the fact that SVG is such a visual language.<\/p>\n<p>I guess I don't have a better solution for CSS properties as XML attributes, because I admit that it <em>is<\/em> confusing as it stands, but I'm not convinced that simply removing them is the answer.<\/p>\n<h3><a href=\"#slicing-not-chopping\" id=\"slicing-not-chopping\">Slicing - not Chopping<\/a><\/h3>\n<p><object type=\"image\/svg+xml\" width=\"100\" height=\"100\" style=\"float:right\" data=\"http:\/\/codedread.com\/clipart\/scalpel.svgz\">[clipart]<\/object>I hope that SVG 2.0 <em>does<\/em> become leaner.  I just think that now that browsers are seemingly rallied around 1.1 Full and people are actually starting to use SVG that we need take a more cautious approach with changes.  To me, carefully and iteratively shaving is a better approach than swinging a hacksaw and see what you end up with.  Sorry to mix up so many blades in my analogies.<\/p>\n<p>Here are some things I wouldn't be upset about if they went away:<\/p>\n<ul>\n<li>&#60;symbol&#62; - hardly needed if &#60;use&#62;-referenced elements could have a viewBox, I don't think they add considerable semantics like defs does<\/li>\n<li>&#60;tref&#62; - sure, I've never used it<\/li>\n<li>&#60;view&#62; - agree with your comments<\/li>\n<li>&#60;audio&#62;, &#60;video&#62; - agreed that HTML5's versions are the future<\/li>\n<li>&#60;switch&#62; - never lived up to its potential, unfortunately (though I guess this leaves server-side or JS as solutions for localization?<\/li>\n<li>&#60;font&#62; and related - I agree with your idea to move it out of the 'core' spec.  Put it into a module and see what happens with WOFF, etc<\/li>\n<li>&#60;foreignObject&#62; - I agree that this shouldn't be necessary to mix HTML in SVG.  If inline HTML can somehow show up directly inline with SVG then we could also do away with &#60;textArea&#62; and others<\/li>\n<li>version and baseProfile - I think I agree with you on this one, they could be dropped.  But if this is done, we need a good way of marking features non-conforming and obsolete going forward.  HTML5 still has spec text for the &#60;font&#62; element.<\/li>\n<\/ul>\n<h3><a href=\"#my-wishlist\" id=\"my-wishlist\">My Wishlist<\/a><\/h3>\n<p>I liked your \"Better HTML Inlining\" idea. I think it has merit.<\/p>\n<p>You seem to be extremely focused on paring down the language so that implementers can reduce their \"SVG code footprint\".  While <a href=\"http:\/\/tech.groups.yahoo.com\/group\/svg-developers\/message\/62393?l=1\">this is definitely a concern for me<\/a> as well, I think your proposals for removal do not pay enough attention to authors, tool-makers and existing content.<\/p>\n<p>Personally, I think <em>the<\/em> major focus for SVG 2.0 should be on one thing:<\/p>\n<p><b>Making the DOM Suck Less<\/b><\/p>\n<p>This alone could seriously help reduce the SVG code footprint in the long run (though I still don't understand how browsers could easily obsolete their SVG 1.1 DOM code yet).  I hope to see the SVG WG hosting a DOM Summit as mentioned by shepazu.  I look forward to reading\/seeing concrete examples and spec proposals from attendees there.<\/p>\n<p>Once the SVG DOM is improved and we have interoperable implementations of SVG well-deployed around the web, then I would think about seeing what else needs to be cut in the next-next version of SVG.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[clipart]Robin Berjon posted about what his SVG 2.0 Wishlist would be. I think he used the hatchet a little too much, so I thought I&#8217;d give some feedback. Since he doesn&#8217;t support comments (boo!) here we go.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[25,46,11,28],"tags":[198],"class_list":["post-606","post","type-post","status-publish","format-standard","hentry","category-software","category-svg","category-technology","category-web","tag-svg"],"_links":{"self":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts\/606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/comments?post=606"}],"version-history":[{"count":23,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions"}],"predecessor-version":[{"id":641,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions\/641"}],"wp:attachment":[{"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/categories?post=606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codedread.com\/blog\/wp-json\/wp\/v2\/tags?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}