browser SVG bugs

This page lists the bugs of the underlying browser SVG implementations for which I have filed a bug report.

Browser Bug id Description Fix or bypass
Firefox Bug 374216 – Setting element.style.someSvgProperty has no effect The syntax used by GWT Style class to access properties (element.style[propertyName] = value) does not work for SVG elements The getSyle() methods of SVG elements returns an OMSVGStyle which derives from GWT Style. This object has getSVGProperty() / setSVGProperty() methods, which implement the bypass proposed by 374216 to access the style properties. Thus you should not use the getStyle()/setStyle() methods from Style as the code will not work with Firefox)
Firefox 3.6+ Bug 543965 – SVGLocatable::getCTM on outer SVG element returns null instead of an instance of SVGMatrix The title says it all. It turns out one should not call getCTM on the root element. If one does, FF returns null while other browsers return getScreenCTM A later version of lib-gwt-svg will emulate other browser’s behavior for consistency’s sake.
Firefox Bug 265895 – Support SVGElementInstance event delivery for <svg:use> Events occurring on SVGUseElement should have a target of type SVGElementInstance. Firefox incorrectly sets the target directly to SVGUseElement Currently there is no bypass for this. If you need events on SVGUseElement, you should not try to access the event targets in you handlers.
Chrome Issue 23810 Crash when one update the coordinates of a SVGUseElement from an event handler No bypass yet Version 4.1.249.1036 (41514) of Chrome fixes the bug
Chrome TBD Setting the coordinates of a SVGUseElement programmatically does not work No bypass yet Version 4.1.249.1036 (41514) of Chrome fixes the bug
Chome / Safari Bug 46025 – Altering the CSS class of an attached SVG element causes Chrome to crash You cannot change the “class” attribute of an SVG element once it has been attached to the DOM tree. Otherwise, the browser crashes No bypass yet
Chome / Safari Bug 46259 – SVG path is not displayed correctly In lib-gwt-svg-samples, the heart image is not displayed correctly (it is truncated). Maybe it is related to the path containing a mix of CurvetoCubicRel and CurvetoCubicAbs ? No bypass yet. Fixed in Chrome 7
Chome / Safari Bug 46260 – Inside a table, SVG images sized by CSS with percentage units are not displayed This issue forces apps to use a ResizeHandler and compute the svg size manually, instead of relying on CSS2 with an SVG size specified with percentage units No bypass yet
Chome / Safari Bug 46910 – Node.cloneNode does not work on SVG nodes SVG nodes which are created programmatically cannot be cloned (the clone has blank attributes) No bypass yet
Chome / Safari Bug 55010 – the SVG transform attribute does not work when manipulated from javascript The SVG API for manipulating transforms exists in Chrome but has no effect Where possible, call elt.setAttribute(“transform”, “<value>”)
Chome / Safari Bug 57871 – importNode does not work if the source XML tree contains a CDATA section The method raises a JavaScript exception: Uncaught Error: NOT_SUPPORTED_ERR: DOM Exception 9 None. Do not use CDATA section in your SVG documents.
Chome / Safari Bug 13585 – Problem with trigger animation with SVG animateMotion beginElement() There seems to be a problem with the javascript constructor/prototype for animateMotion. Calling document.createElementNS(“http://www.w3.org/2000/svg”, “animateMotion”) in JavaScript returns an object of type SVGElement instead of SVGAnimateMotionElement. No bypass yet
Chome / Safari Bug 69664 – Nested svg elements cause display to not refresh properly If one attempts to move (change x or y) of an svg element nested into another svg element, the screen will not refresh probably and the nested svg element will leave a trail of dirty pixels. Use g elements with a transform=’translate(x,y)’ attribute instead of the nested svg but this is not fully equivalent
Firefox Bug 628407 – SMIL repeat events are fired too many times when an animation element is detached / reattached from DOM tree When one detaches and reattaches svg elements which define animations, all past events will be replayed as the svg container resynchronizes its internal state with the present time Avoid this pattern and change the visibility instead.
Firefox Bug 647914 and Bug 78522 – Horizontal and vertical SVG paths are omitted from bbox calculations if they have siblings Bounding box computation problem in certain cases. Discovered by Pap Lôrinc None.
Chome / Safari Bug 88295 – XMLSerializer produces not-well-formed XML if namespaces are used Causes the OMSVGElement.getMarkup() to produce not-well-formed XML, notably with SVG files imported from Inkscape. Remove all non-SVG attributes from the SVG before calling OMSVGElement.getMarkup()

You may also want to check the global bug databases for major browsers

Browser URL
Chrome Google issue tracker
Firefox Bugzilla
Opera Opera bug tracker (registration required)