Appendix L: Changes from SVG 1.1
Contents
This appendix is informative, not normative.
This appendix summarizes the changes that have been made since the
SVG 1.1 Second Edition Recommendation.
Changes made since the last SVG 2 Working Draft are highlighted.
L.1. Editorial changes
A number of stylistic changes have been made to the specification to make it more readable. These include the following:
- A change towards using styling similar to contemporary CSS specifications.
- Annotations have been added to the specification to reflect features that the Working Group
has resolved on including and for which a member of the group has committed to drive that feature.
- Define comma-wsp and wsp in the types chapter and reference these from all other grammars that need it.
- Changes to highlight that SVG can be used in HTML as well as in XML.
- Merged the metadata chapter with the document structure chapter.
- Updated IDL for SVGSVGElement marking the referenceElement argument in getIntersectionList and getEnclosureList as nullable.
L.2. Substantial changes
In additional to the editorial changes listed above, the following substantial additions, changes and removals
have been made.
L.2.1. Across the whole document
- References to the SVG DTD have been removed.
- IDL has been updated to use Web IDL syntax.
- Added "length" attribute and indexed property access to all list interfaces.
- Remove definition of <angle> type and reference CSS3-values.
- Change all coordinate types to <length> in preparation for referencing css3-values..
- Add the ‘script’ element to the content model of all elements.
- Changed the initialize, appendItem, replaceItem and insertItemBefore methods
on list objects to make a copy of any list item being inserted that is already
in another list.
- The ‘image’ and ‘script’ elements have gained a crossorigin attribute,
for use with the CORS-enabled fetch algorithm.
L.2.2. Concepts
L.2.3. Rendering Model chapter
- Update rendering model to refer to Compositing and Blending Specification.
- Moved z-index to this chapter. Removed non-normative text, keeping examples.
- Resolve issue 2 - removed reference to knock-out.
- Resolve issue 3 - rewrote description of how elements and groups are rendered.
- Resolve issue 4 - Don't mention each paint server type explicity.
- Resolve issue 6 - No changes required.
- Merge Clipping, Masking and Compositing chapter into this chapter (resolved issue 7 in process).
- Update 'Parent Compositing' section to
explicitly mention how each referencing mode composites.
L.2.4. Basic Data Types and Interfaces chapter
L.2.5. Document Structure chapter
- Deprecated the
suspendRedraw
, unsuspendRedraw
and unsuspendRedrawAll
methods on the SVGSVGElement interface.
- Removed the ‘externalResourcesRequired’ attribute.
- Added the ‘discard’ element and the ‘timelinebegin’ and ‘playbackorder’ attributes on the ‘svg’ element, as defined in SVG Tiny 1.2.
- Added the ability to use 'auto' for the ‘width’ and ‘height’ attributes on ‘image’.
- Lifted the restriction on ‘use’ not being able to reference an entire document.
- Added ‘lang’ attribute on ‘desc’ and ‘title’ elements.
- Added section on WAI-ARIA attributes.
- Clarified that CSS transforms on an outermost svg element do not affect currentScale or currentTranslate. Defined the returned values on ‘svg’ elements that are not outermost svg element.
- Deprecated the rootElement attribute.
- Defined event handler content attributes and IDL attributes on the root ‘svg’ element to be for events fired at the Window, like HTML's event handler content attributes and IDL attribute on
body
.
- Moved the ‘image’ element to the Embedded Content chapter.
- Removed the
SVGElementInstance
and SVGElementInstanceList
interfaces, and the corresponding attributes on the SVGUseElement interface.
- Changed the ‘use’ element event flow to follow the Shadow DOM spec.
- Clarified that the ‘switch’ element does not affect processing of ‘script’ elements.
- Made the ‘width’ and ‘height’ attributes on the ‘svg’ element presentation attributes, and changed the initial value to
auto.
- Removed the baseProfile and version attributes from the ‘svg’ element.
- Deprecated the forceRedraw method on the SVGSVGElement interface and defined it to have no effect when called.
- Defined the
deselectAll method
on the SVGSVGElement interface in terms of the Selection API
and simultaneously deprecated it.
- Lowercased the ‘playbackorder’ and ‘timelinebegin’ attributes and the corresponding keyword values.
- Renamed the attribute values for timelinebegin to loadend and loadstart and fixed their definitions to refer to SVG document fragments.
- Clarified that the ‘switch’ element does not affect the processing of ‘style’ elements.
- Clarified that the getIntersectionList and getEnclosureList methods on the SVGSVGElement interface do not return shadow tree elements.
- Removed the requiredFeatures attribute.
- Removed the currentView and useCurrentView properties on SVGSVGElement.
L.2.6. Styling chapter
L.2.7. Geometry Properties chapter
- Removed ‘pattern’ and ‘filter’ from the set of elements that the ‘
x
’ and ‘y
’ properties
apply to.
L.2.8. Coordinate Systems, Transformations and Units chapter
- Make SVGMatrix.skew{X,Y} throw an exception on bad values.
- Added improved wording on bounding box
from SVG Tiny 1.2, and an algorithm which can compute a bounding box for an element.
- Define bounding box for element with no position to be at (0,0).
- Removed the defer keyword from ‘preserveAspectRatio’.
L.2.9. Paths chapter
- Added new B and
b "bearing" path commands.
- Added new R and r Catmull-Rom curve commands.
- Allow Z or z to fill in
missing path coordinate data in the previous command with the
coordinate of the initial point in the subpath.
- Define ‘path’, ‘polygon’ and ‘polyline’ elements with no data set (empty or zero valid commands) to not render.
- Moved the Catmull-Rom commands out into a separate module.
- Removed the
SVGPathSeg*
and SVGAnimatedPathData
interfaces and the related methods on SVGPathElement.
L.2.10. Text chapter
- Added a number of missing attributes to the element summary boxes of the
‘text’ and ‘textPath’ elements.
- Added ‘
inline-size
’ presentation attribute to ‘text’, and a
section about ‘text-overflow
’ processing.
- Added ‘
white-space
’ property and deprecated ‘xml:space’ attribute.
- Removed the ‘kerning’ property.
- Added ‘d’ attribute to ‘textPath’.
- Added ability to reference basic shapes to ‘textPath’.
- Removed the 'tref' element.
- Removed the 'altGlyph', 'altGlyphDef',
'altGlyphItem' and 'glyphRef' elements.
- Defined the
selectSubString
method on the SVGTextContentElement interface in terms of the
Selection API and simultaneously deprecated it.
L.2.11. Embedded Content chapter
- Added this chapter, which includes new
‘video’, ‘audio’, ‘iframe’, ‘canvas’,
‘source’ and ‘track’ elements that behave almost identically
to the equivalent HTML elements.
L.2.12. Painting chapter
- Added more detail to the descriptions of the stroke properties and added algorithms
defining the exact shape a stroke must have.
- Added the ‘
paint-order
’ property.
- Moved the color-interpolation-filters property
to the Filter Effects specification.
- Added the ‘
buffered-rendering
’ property.
- Added the context-fill and context-stroke
paint values.
- Allowed <paint> values and marker properties to take the
child keyword and
<child-selector> values to support ID-less referencing.
- Added ‘
vector-effect
’ property to support non-scaling stroke.
- Added arcs value on ‘
stroke-linejoin
’.
- Added the 'auto-start-reverse'
attribute to the ‘orient’ attribute on ‘marker’.
- Removed the SVGPaint interface.
- Extended the definitions of ‘
fill
’ and
‘stroke
’ <paint> so that they can take multiple paints.
- Added the ‘
z-index
’ property.
- Split out some new marker and stroke related
features into the SVG Markers
and SVG Strokes
specifications.
L.2.13. Color chapter
- Added requirements for images to be color managed.
- Added new color syntaxes from the SVG Color specification: RGBA colors, HSL colors,
LAB colors, ICC named colors and device colors.
- Removed the ‘color-profile’ property.
- Removed the ‘color-profile’ element.
L.2.14. Paint Servers chapter
- Added the ‘solidcolor’ element and its two properties ‘
solid-color
’
and ‘solid-opacity
’, ported over from SVG Tiny 1.2. (Renamed 'solidColor' to
'solidcolor'.)
- Added an ‘fr’ attribute to the ‘radialGradient’ element,
which allows specifying the radius of the focal circle.
- Added a section for mesh gradients, defining the ‘mesh’, ‘meshrow’
and ‘meshpatch’ elements. (Renamed 'meshGradient' to 'mesh', 'meshRow' to 'meshrow',
and 'meshPatch' to 'meshpatch'.)
- Added a section for hatches, defining the ‘hatch’ and ‘hatchpath’ elements.
(Renamed 'hatchPath' to 'hatchpath'.)
- Renamed ‘gradientTransform’ on the ‘mesh’ element
and ‘hatchTransform’ on the ‘hatch’ element to ‘transform’.
L.2.15. Clipping, Masking and Compositing chapter
- SVG now references CSS Masking [CSS-MASKING] specification.
- Removed definition of clipping/masking properties and elements.
- Keep short introduction to clipping/masking and add reference to CSS Masking
- Added reference to Compositing and Blending spec. Simple alpha compositing it mandatory.
- The ‘
overflow
’ property should be respected on the outermost svg elements inline in html.
- Merge Clipping, Masking and Compositing chapter into Rendering Model chapter.
L.2.16. Filter Effects chapter
- Removed the body of this chapter and replaced it with a link to the
Filter Effect specification.
L.2.17. Interactivity chapter
- Added the ‘tabindex’ attribute.
- Corrected the definition of the ‘href’ attribute on
the ‘cursor’ element to take an URL that is not in a CSS-like
functional form.
- Added the bounding-box keyword to ‘
pointer-events
’.
- Replaced SVGLoad, SVGAbort, SVGError and SVGUnload with load, abort, error and unload respectively.
- Required that only structurally external elements and the outermost svg element must fire load events.
- Replaced SVGResize and SVGScroll with resize and scroll respectively.
- Removed DOMActivate.
- Replaced DOMFocusIn and DOMFocusOut with focusin and focusout, and added the blur event.
- Added keyboard events.
- Removed mutation events.
L.2.18. Linking chapter
- Added animation elements to the content model of ‘view’.
- Added the possibility to link to SVG resources with fragment identifiers defined by the Media Fragments specification.
- Removed the ‘xlink:type’, ‘xlink:role’, ‘xlink:arcrole’, ‘xlink:show’ and ‘xlink:actuate’ attributes.
- Deprecated the ‘xlink:href’ attribute in favor of using ‘href’ without a namespace.
- Deprecated the ‘xlink:title’ attribute in favor of using child
‘title’ elements.
L.2.19. Scripting chapter
- Removed the ‘contentScriptType’ attribute.
- Removed ‘onload’ from AnimationEvents.
- Merged this entire chapter into the Interactivity chapter.
L.2.20. Animation chapter
- Removed the attributeType attribute.
- Folded the ElementTimeControl interface into SVGAnimationElement.
- Removed the animateColor element.
- Added the onbegin, onend and onrepeat attributes to the SVGAnimationElement interface.
- The ‘values’, ‘keyTimes’ and ‘keySplines’ attributes now ignore the last semicolon separator if it's not followed by a value.
- Allowed the ‘mpath’ element to refer to
a shape element.
L.2.21. Fonts chapter
- Added WOFF requirement, rearranged content.
- Removed this chapter and the SVG Fonts
feature it contained, including the
‘font’,
‘glyph’,
‘missing-glyph’,
‘hkern’,
‘vkern’,
‘font-face’,
‘font-face-src’,
‘font-face-uri’,
‘font-face-format’ and
‘font-face-name’ elements
and their corresponding IDL interfaces.
L.2.22. Extensibility chapter
L.2.23. Document Type Definition appendix
- Removed this appendix, as SVG 2 is not defined in terms of a DTD.
L.2.24. SVG Document Object Model (DOM) appendix
- Added text to require IDL fragments be interpreted as Web IDL.
- Removed some unnecessary text.
- Removed mention of read only nodes in the DOM, since that concept no longer
exists in DOM4.
- Removed the table defining how properties
are exposed as specific types of CSSValue objects, since CSSValue has been
removed.
L.2.25. Java Language Binding appendix
- Removed this appendix, as language bindings are now defined by
Web IDL.
L.2.26. ECMAScript Language Binding appendix
- Removed this appendix, as language bindings are now defined by
Web IDL.
L.2.27. References appendix
- Removed normative reference to CSS2.
- Removed informative reference to DOM Level 3 Core.
- Changed normative reference to DOM Level 1 Core to be informative.
- Changed normative reference from DOM Level 2 Core to DOM4.
- Changed informative reference to SMIL 3 to be normative.
- Added normative references to CSS3 Color, CSS3 Fonts, CSS3 Line Box, CSS3 Transforms, CSS3 UI, CSS3 Values and Units, CSS4 Images, Filter Effects, WOFF, Web IDL.
- Added informative references to CSS 3 Transitions and Animations.
- Updated reference from DOM Level 2 Events to DOM Level 3 Events and added a normative reference to UI Events.
- Added normative reference to WAI-ARIA 1.1.
- Added normative reference to Shadow DOM.
L.2.28. IDL Index appendix
L.2.29. Feature Strings