SVG 2 support in Mozilla

Draft
This page is not complete.

SVG 2 is the next major version of the SVG standard, which is a complete rework of the SVG 1.2 draft.

Version 2 contains a lot of changes regarding the last stable version SVG 1.1. Those changes are listed below including their support status within Mozilla applications.

General

Change Notes
length attribute and indexed property for list interfaces Implementation status unknown
<script> element in content model of all elements Implementation status unknown
initialize(), appendItem(), replaceItem(), and insertItemBefore() on list objects making a copy of any list item being inserted that is already in another list Implementation status unknown
crossorigin attribute for <image> and <script> elements Not implemented yet (at least for <image>; bug 1240357)

Rendering Model

Change Notes
SVG root and <foreignObject> not overflow:hidden in UA style sheet Implementation status unknown
Allow overflow: auto; to clip and show scroll bars Implementation status unknown
Allow overflow: scroll; to show scroll bars on <svg> elements Implementation status unknown

Basic Data Types and Interfaces

Change Notes
DOMMatrix or DOMMatrixReadOnly instead of SVGMatrix Implementation status unknown
DOMRect or DOMRectReadOnly instead of SVGRect Implementation status unknown
DOMPoint or DOMPointReadOnly instead of SVGPoint Implementation status unknown
Members of SVGStylable and SVGLangSpace available in SVGElement Implementation status unknown
SVGGraphicsElement instead of SVGLocatable and SVGTransformable Implementation status unknown
SVGGeometryElement with SVGGeometryElement.isPointInFill() and SVGGeometryElement.isPointInStroke() methods Partially implemented (bug 1239100). The methods
isPointInFill() and isPointInStroke() are not implemented yet (bug 1325319).
SVGExternalResourcesRequired removed Never implemented
SVGElement.viewportElement and SVGElement.ownerSVGElement nullable Implementation status unknown
SVGElement.getPresentationAttribute() removed Never implemented (prototype removed in bug 921456)
SVGColor and SVGICCColor removed Never implemented
SVGElement.focus(), SVGElement.blur() Not implemented (bug 778654)
SVGElement.tabIndex Implemented (bug 778654)
Document.activeElement Implementation status unknown
GlobalEventHandlers on SVGElement Implementation status unknown
options dictionary attribute for SVGGraphicsElement.getBBox() Implemented behind the preference svg.new-getBBox.enabled (bug 999964, bug 1019326)
Allow leading and trailing whitespace in <length>, <angle>, <number> and <integer> Implementation status unknown
Form feed (U+000C) in whitespace Implementation status unknown
SVGElement.xmlbase, SVGElement.xmllang and SVGElement.xmlspace removed Implementation status unknown
SVGViewSpec removed Implementation status unknown
SVGElement.style removed Implementation status unknown
SVGGraphicsElement.getTransformToElement() removed Not removed yet
SVGGraphicsElement.getCTM() on the outermost element Implementation status unknown
animVal attribute alias of baseVal Implementation status unknown
dataset attribute for SVGElement Implementation status unknown
Moved pathLength attribute and getTotalLength() and getPointAtLength() methods from SVGPathElement to SVGGeometryElement Implemented (bug 1239100)

Document Structure

Change Notes
SVGSVGElement.suspendRedraw(), SVGSVGElement.unsuspendRedraw(), and SVGSVGElement.unsuspendRedrawAll() deprecated Turned into no-ops (bug 734079)
externalResourcesRequired attribute removed Implementation status unknown
auto value for width and height in <image> Implementation status unknown
referencing entire document with <use> Implementation status unknown
lang attribute on <desc> and <title> Implemented (bug 721920)
CSS transforms on outermost <svg> not affecting SVGSVGElement.currentScale or SVGSVGElement.currentTranslate Implementation status unknown
rootElement attribute deprecated Implementation status unknown
SVGElementInstance and SVGElementInstanceList and corresponding attributes on SVGUseElement removed Implementation status unknown
<use> event flow following Shadow DOM spec. Implementation status unknown
auto as initial value for width and height attributes of <svg> Implementation status unknown
baseProfile and version attributes removed from <svg> Implementation status unknown
SVGSVGElement.forceRedraw() deprecated Turned into a no-op (bug 733764)
SVGSVGElement.deselectAll() deprecated Not yet deprecated (bug 1302705)
<switch> not affecting <style> Implementation status unknown
requiredFeatures attribute removed Implementation status unknown
SVGSVGElement.currentView and SVGSVGElement.useCurrentView removed SVGSVGElement.currentView was never implemented, SVGSVGElement.useCurrentView not removed yet (bug 1174097)
SVGUnknownElement Not implemented (bug 1239218)
lang attribute without namespace Implemented (bug 721920)
SVGSVGElement.viewport removed Never implemented
xml:base attribute removed Implementation status unknown
Reorder descendent elements of <switch> having systemLanguage attribute according to allowReorder SMIL attribute Implementation status unknown
Made <tspan> and <textPath> graphics elements Implementation status unknown
Allow x, y, width, and height on <symbol> Implementation status unknown
Made <use> element shadow trees consistent with Shadow DOM spec Implementation status unknown
Role mapping of <a> element depending on whether it is a valid link Implementation status unknown
ARIA state and property attributes animatable Implementation status unknown

Styling

Change Notes
contentStyleType attribute removed Implementation status unknown
LinkStyle on SVGStyleElement Implemented (bug 1239128 (Firefox 46.0 / Thunderbird 46.0 / SeaMonkey 2.43))
Inner <svg>s and <foreignObjects>s not overflow: hidden; in UA style sheet Implementation status unknown
overflow: hidden; on <hatch> in UA style sheet Implementation status unknown
0 0 as default value of transform-origin except root <svg> and <svg> children of <foreign> Implementation status unknown
Use of white-space instead of deprecated xml:space attribute in UA style sheet Implementation status unknown
@font-face, ::first-letter and ::first-line on <text> Implementation status unknown
SVG and HTML style sheets in HTML document with inline SVG applying to whole document content Implementation status unknown
Presentation attributes on any SVG namespaced element Implementation status unknown
Display behavior of <style> defined via UA style sheet Implementation status unknown
!important user agent style rules controlling never-rendered elements Implementation status unknown
:focus and ::selection styles Implementation status unknown

Geometry

Change Notes
x and y attributes removed from <pattern> and <filter> Implementation status unknown
auto value of width and height computes to 0 but 100% on <svg> Not implemented

Coordinate Systems, Transformations and Units

Change Notes
Exception for bad values on SVGMatrix.skewX() and SVGMatrix.skewY() Implementation status unknown
Bounding box for element with no position at (0, 0) Implementation status unknown
defer keyword removed from preserveAspectRatio attribute Removed (bug 1280425)
Added non-scaling-size, non-rotation and fixed-position keywords for vector-effect property Not implemented yet (bug 1318208)
vector-effect has no effect within 3D rendering context Implementation status unknown
Consider clip and overflow on SVG document referenced by <image> Implementation status unknown

Paths

Change Notes
B and b path commands Implementation status unknown
Z and z path commands to add path coordinate data to previous command Implementation status unknown
Not render <path>, <polygon> and <polyline> with no data Implementation status unknown
SVGPathSeg*, SVGAnimatedPathData and related methods removed from SVGPathElement Implementation status unknown
d attribute as CSS property Implementation status unknown

Basic Shapes

Change Notes
pathLength attribute for all basic shapes Implementation status unknown
SVGAnimatedPoints.animatedPoints as alias of SVGAnimatedPoints.points Implementation status unknown
Auto behavior for rx and ry in <ellipse> Implementation status unknown

Text

Change Notes
text-decoration-fill and text-decoration-stroke properties Not implemented yet (bug 1303569)
inline-size attribute for <text> Implementation status unknown
shape-inside property Inplementation status unknown
shape-subtract property Inplementation status unknown
white-space Implementation status unknown
Deprecated xml:space attribute Implementation status unknown
kerning property removed Implementation status unknown
path attribute for <textPath> Implemented (bug 1446617)
Reference basic shapes to <textPath> Implementation status unknown
side attribute for <textPath> Implemented (bug 1446650)
Render characters for one loop of a single closed path, effected by the startOffset attribute and text-anchor property Implementation status unknown
<tref> removed Implementation status unknown
<altGlyph>, <altGlyphDef>, <altGlyphItem> and <glyphRef> removed <altGlyph>, <altGlyphDef> and <altGlyphItem> removed (bug 1260032), <glyphRef> never really implemented (bug 1302693)
SVGTextContentElement.selectSubString() deprecated Implementation status unknown
getComputedTextLength() not including dx and dy values Implementation status unknown
Text in non-rendered elements not included in addressable characters Implementation status unknown
Unknown elements in text render as unpositioned spans Implementation status unknown
Offset distances of text positioned along a transformed path measured in text elements coordinate system Implementation status unknown

Embedded Content

Change Notes
<video> Implementation status unknown
<audio> Implementation status unknown
<iframe> Implementation status unknown
<canvas> Implementation status unknown
<source> Implementation status unknown
<track> Implementation status unknown

Painting

Change Notes
paint-order Implemented (bug 828805)
will-change instead of buffered-rendering Implementation status unknown
context-fill and context-stroke paint values Implemented (bug 719286 (Firefox 18.0 / Thunderbird 18.0 / SeaMonkey 2.15) and bug 798843 (Firefox 26.0 / Thunderbird 26.0 / SeaMonkey 2.23))
child keyword for <paint> values and marker properties Implementation status unknown
vector-effect property Only none and non-scaling-stroke values are supported (bug 528332 (Firefox 15 / Thunderbird 15 / SeaMonkey 2.12), bug 1318208)
arcs value for stroke-linejoin Not implemented (bug 1239142)
auto-start-reverse value for <marker>'s orient attribute Implemented (bug 879659)
SVGPaint removed Implementation status unknown
fill and stroke taking multiple paints Implementation status unknown
z-index Not implemented (bug 360148
child(<integer>) paint value Implementation status unknown
Display of zero-length subpaths depends on stroke-linecap attribute Implementation status unknown
Markers on all shapes Implementation status unknown
<marker> element display defined in UA style sheet Implementation status unknown
Only single paints for fills and strokes Implementation status unknown

Color

Change Notes
Color managed images Implementation status unknown
RGBA, HSL, LAB, ICC named colors and device colors Implementation status unknown
color-profile removed Implementation status unknown
<color-profile> removed Implementation status unknown

Paint Servers

Change Notes
<solidcolor> (renamed solidColor) Not implemented (bug 1177032)
fr attribute for <radialGradient> Not implemented (bug 1240275)
<mesh> (renamed meshGradient) Not implemented (bug 1238882)
<meshrow> (renamed meshRow) Not implemented (bug 1238882)
<meshpatch> (renamed meshPatch) Not implemented (bug 1238882)
<hatch> Not implemented (bug 1239147)
<hatchpath> (renamed hatchPath) Not implemented (bug 1239147)
Display behavior of paint server elements defined by UA style sheet Not implemented

Clipping, Masking, and Compositing

Change Notes
overflow respected on outermost <svg> elements inline in HTML Implementation status unknown

Interactivity

Change Notes
tabindex attribute Implemented (bug 778654)
bounding-box on pointer-events Not implemented (bug 945187)
load, abort, error, and unload instead of SVGLoad, SVGAbort, SVGError, and SVGUnload Not implemented (bug 620002)
Only structurally external elements and outermost <svg> element fire load events Implementation status unknown
resize and scroll instead of SVGResize and SVGScroll Implementation status unknown
DOMActivate removed Implementation status unknown
focusin and focusout instead of DOMFocusIn and DOMFocusOut Implementation status unknown
Keyboard events Implementation status unknown
Mutation events removed Implementation status unknown
SVGZoomEvent removed Implementation status unknown
<cursor> element deprecated Implementation status unknown

Linking

Change Notes
Link SVG resources with fragment identifiers Implementation status unknown
xlink:type, xlink:role, xlink:arcrole, xlink:show, and xlink:actuate attributes removed Implementation status unknown
xlink:href attribute deprecated in favor of href Implemented (bug 1245751)
xlink:title attribute deprecated in favor of child <title> Implementation status unknown
Spaces in SVG view fragments Implementation status unknown
pixel: and percent: spatial media fragments Implementation status unknown
Linking to <view> elements does not cause implicit box transformation to show nearest ancestor <svg> element Implementation status unknown
Unspecified SVG view fragment parameters don't cause corresponding attributes to be reset to initial values Implementation status unknown
viewTarget attribute of <view> and corresponding SVG view fragment parameter removed Implementation status unknown
Fragment-only URLs are always same-document Implementation status unknown
Additional attributes on <a> Implemented (bug 1451823)

Scripting

Change Notes
contentScriptType removed Implementation status unknown
AnimationEvents.onload removed Implementation status unknown

Fonts

Change Notes
<font>, <glyph>, <missing-glyph>, <hkern>, <vkern>, <font-face>, <font-face-src>, <font-face-uri>, <font-face-format>, and <font-face-name> and corresponding IDL interfaces removed Implementation status unknown

Extensibility chapter

Change Notes
Made <foreignObject> graphics element Implementation status unknown