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 to clip and show scroll bars |
Implementation status unknown |
Allow 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), Support for elements other than <path> missing (bug 1325320) and isPointInFill() and isPointInStroke() 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 in UA style sheet |
Implementation status unknown |
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 1265666) |
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> |
Implementation status unknown |
Reference basic shapes to <textPath> |
Implementation status unknown |
side attribute for <textPath> |
Implementation status unknown |
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 1265666) |
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( 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 |
Not 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> |
Implementation status unknown |
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 |