This article needs a technical review. How you can help.
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 |
Not implemented (bug 1239100) |
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 |
Not 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 |