- From: Erik Dahlström <ed@opera.com>
- Date: Tue, 15 Jul 2008 10:51:16 +0200
- To: "Jeff Schiller" <codedread@gmail.com>
- Cc: public-html@w3.org, "www-svg@w3.org" <www-svg@w3.org>
On Tue, 15 Jul 2008 04:20:25 +0200, Jeff Schiller <codedread@gmail.com> wrote: > 1) Copying SVG documents from an SVG editor to an HTML document won't > magically prefix name-clashed elements. SVG fragments currently inline in > XHTML documents won't be magically prefixed either. I guess users would > have to do that manually? This seems to violate requirement #2. > > This might be fixable eventually in editors currently under active > development, but what about Adobe Illustrator, for example? For the few elements where it actually makes a major visual difference (e.g textArea), yes you need to do prefixing - if and only if you don't want the content to look weird in legacy user agents. That's why prefixing elements is a recommendation to authors rather than a requirement. The next questions is: does Illustrator actually export 'textArea' elements? Having <svg:a> be interpreted by a legacy user agent as <html:a> is perhaps not that critical, you can even add a 'src' attribute to have the link work in both contexts, so it can be used as a sort of fallback. An <svg:title> is unlikely to cause any major problems if interpreted as <html:title>, <svg:font> may cause a legacy user agent to render its textcontent in some unexpected way (though there are few svgfonts that have much textcontent except for whitespace). For <svg:script> and <svg:style> they are meant to be compatible with the XHTML counterparts, so only in the case where you really want to make sure they're not executed/applied do you need to prefix them. > Manual author intervention + tutorials? An author may have to tweak the content if it is to fallback gracefully, yes. > It also, frankly, sucks for hand-authoring - since I have to put that prefix > and namespace declaration on every element (the way it's described in the > document) Might I at least suggest something like this instead: > > <html><body> > <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg=" > http://www.w3.org/2000/svg" ...> > <svg:title.../> > <circle .../> > <svg:a ... /> > </svg> > </body></html> The proposal didn't say anything about adding the prefix declaration on every element it's used on, if the example gave that impression it was unintentional. > 2) If my SVG has a foreignObject with HTML in it, and the browser does not > handle SVG yet, then the contents of that foreignObject will be > inadvertently rendered by the UA, which might not be desired. Any > recommendation for that? html: prefix for all elements? Sure, using prefixes is one way of dealing with that problem. Other possible solutions: - svg:script or svg:style that turns the display on for <svg> and removes the replacement image from the document - use CSS Namespaces to detect if the element was given the proper namespace <!DOCTYPE html> <html> <head> <title>foo</title> <style> @namespace svg "http://www.w3.org/2000/svg"; foreignObject { display:none } svg|foreignObject { display:inline; } </style> </head> <body> hello <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> <foreignObject> <div style="width:100px;height:100px;background:red">red</div> </foreignObject> hello </body> </html> Cheers /Erik -- Erik Dahlstrom, Core Technology Developer, Opera Software Co-Chair, W3C SVG Working Group Personal blog: http://my.opera.com/macdev_ed
Received on Tuesday, 15 July 2008 08:51:32 UTC