-
Notifications
You must be signed in to change notification settings - Fork 131
/
changes.html
911 lines (687 loc) · 44.7 KB
/
changes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:edit="http://xmlns.grorg.org/SVGT12NG/">
<head>
<title>Changes from SVG 1.1</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
<link rel="stylesheet" title="Default" type="text/css" media="screen" href="style/default_svg.css"/>
<link rel="alternate stylesheet" title="No issues/annotations" type="text/css" media="screen" href="style/default_no_issues.css"/>
<!--
<link rel="alternate stylesheet" title="CSS3 Unmodified" type="text/css" media="screen" href="style/default.css"/>
<link rel="alternate stylesheet" title="SVG 1.1" type="text/css" media="screen" href="style/svg-style.css"/>
-->
<!-- W3C style sheet will be added here during processing. -->
</head>
<body class="ready-for-wider-review">
<h1>Changes from SVG 1.1</h1>
<p class="normativity"><em>This appendix is informative, not normative.</em></p>
<p>This appendix summarizes the changes that have been made since the
<a href="https://www.w3.org/TR/2011/REC-SVG11-20110816/">SVG 1.1 Second Edition Recommendation</a>.
Changes made since the initial <a href="https://www.w3.org/TR/2016/CR-SVG2-20160915/">SVG 2 Candidate Recommendation</a> are highlighted.
</p>
<h2 id="editorial">Editorial changes</h2>
<p>A number of stylistic changes have been made to the specification to make it more readable. These include the following:</p>
<ul>
<li>A change towards using styling similar to contemporary CSS specifications.</li>
<li>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.</li>
<li>Changes to highlight that SVG can be used in HTML as well as in XML.</li>
<li>Merged the metadata chapter with the document structure chapter.</li>
<li>Updated IDL for <a>SVGSVGElement</a> marking the referenceElement argument in <a href="struct.html#__svg__SVGSVGElement__getIntersectionList">getIntersectionList</a> and <a href="struct.html#__svg__SVGSVGElement__getEnclosureList">getEnclosureList</a> as nullable.</li>
</ul>
<h2 id="substantial">Substantial changes</h2>
<p>In additional to the editorial changes listed above, the following substantial additions, changes and removals
have been made.</p>
<h3 id="whole">Across the whole document (owner: liam)</h3>
<ul>
<li>References to the SVG DTD have been removed.</li>
<li>IDL has been updated to use Web IDL syntax.</li>
<li>Added "length" attribute and indexed property access to all list interfaces.</li>
<li>Remove definition of <a><angle></a> type and reference CSS3-values.</li>
<li>Change all coordinate types to <a><length></a> in preparation for referencing css3-values..</li>
<li>Add the <a>'script'</a> element to the content model of all elements.</li>
<li>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.</li>
<li>The <a>'image'</a> and <a>'script'</a> elements have gained a <span class="attr-name">crossorigin</span> attribute,
for use with the <em>CORS-enabled fetch</em> algorithm.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Use mixins over NoInterfaceObject.</li>
</ul>
</div>
<h3 id="concepts">Concepts (owner: BogdanBrinza)</h3>
<ul>
<li>Removed this chapter.</li>
</ul>
<h3 id="rendering">Rendering Model chapter (owner: liam)</h3>
<ul>
<li>Update rendering model to refer to <a href="https://www.w3.org/TR/compositing/">Compositing and Blending Specification</a>.</li>
<li>Added new definitions regarding rendered and renderable elements.</li>
<li>Moved the section on <a>'display'</a> and <a>'visibility'</a> to this chapter.</li>
<li>Resolve issue 2 - removed reference to knock-out.</li>
<li>Resolve issue 3 - rewrote description of how elements and groups are rendered.</li>
<li>Resolve issue 4 - Don't mention each paint server type explicity.</li>
<li>Resolve issue 6 - No changes required.</li>
<li>Merge Clipping, Masking and Compositing chapter into this chapter (resolved issue 7 in process).</li>
<li>Update 'Parent Compositing' section to
explicitly mention how each referencing mode composites.</li>
<li>SVG root and foreignObject are no longer overflow:hidden in User Agent style sheet.</li>
<li>overflow:auto may clip and show scroll bars in some cases.</li>
<li>overflow:scroll may show scroll bars on svg elements.</li>
<li>Removed definition of initial clipping path.</li>
<li>Updated rendering requirements to reflect shadow DOM model for use elements.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Removed z-index.</li>
</ul>
</div>
<h3 id="types">Basic Data Types and Interfaces chapter (owner: BogdanBrinza)</h3>
<ul>
<li>All appearance of <a>SVGMatrix</a> were replaced by <a>DOMMatrix</a> or <a>DOMMatrixReadOnly</a>.</li>
<li>All appearance of <a>SVGRect</a> were replaced by <a>DOMRect</a> or <a>DOMRectReadOnly</a>.</li>
<li>All appearance of <a>SVGPoint</a> were replaced by <a>DOMPoint</a> or <a>DOMPointReadOnly</a>.</li>
<li>Removed the SVGStylable and SVGLangSpace interfaces and moved all of their members on to <a>SVGElement</a>.</li>
<li>Turned SVGLocatable and SVGTransformable into <a>SVGGraphicsElement</a>,
which directly inherits from <a>SVGElement</a>.</li>
<li>Added an <a>SVGGraphicsElement</a> interface.</li>
<li>Added an <a>SVGGeometryElement</a> interface with isPointInFill and isPointInStroke methods.</li>
<li>Removed the SVGExternalResourcesRequired interface.</li>
<li>Added getStrokeBBox on <a>SVGGraphicsElement</a> to get the tight stroke bounding box.</li>
<li>Make viewportElement and ownerSVGElement on <a>SVGElement</a> nullable.</li>
<li>Removed the getPresentationAttribute operation on <a>SVGElement</a> and the SVGColor and SVGICCColor interfaces.</li>
<li>Added focus and blur operations and tabIndex attribute to <a>SVGElement</a>.</li>
<li>Added <a href="struct.html#__svg__SVGDocument__activeElement">activeElement</a> attribute to <a>Document</a>.</li>
<li>Made <a>SVGElement</a> include the <a>GlobalEventHandlers</a> interface from HTML.</li>
<li>Removed getStrokeBBox from <a>SVGGraphicsElement</a> and extended <a href="types.html#__svg__SVGGraphicsElement__getBBox">getBBox</a> with a dictionary argument that controls which parts of the element are included in the returned bounding box.</li>
<li>Allow leading and trailing whitespace in <a><length></a>, <a><angle></a>, <a><number></a> and <a><integer></a>.</li>
<li>Make whitespace include form feed (U+000C) to align with CSS and HTML.</li>
<li>Remove basic data types already defined by CSS Values and Units.</li>
<li>Remove list of color keywords. The list is part of CSS Colors 3 which is referenced normatively and a REC.</li>
<li>Allow a single trailing comma-wsp in various list-typed attributes.</li>
<li>Removed the xmlbase, xmllang and xmlspace attributes from the <a>SVGElement</a> interface.</li>
<li>Removed the SVGViewSpec interface.</li>
<li>Removed the style IDL attribute from <a>SVGElement</a>,
since CSSOM defines that for us.</li>
<li>Removed the getTransformToElement method on
<a>SVGGraphicsElement</a>.</li>
<li>Defined that getCTM on an <a>outermost svg element</a>
should work, and listed which transforms it should include.</li>
<li>Defined attribute reflection in more depth,
including the effect it has on SVG DOM object liveness.</li>
<li>animVal IDL attributes on all interfaces now alias baseVal.</li>
<li>Added the dataset IDL attribute to <a>SVGElement</a>.</li>
<li>Moved the <a href='types.html#__svg__SVGGeometryElement__pathLength'>pathLength</a> attribute,
<a href='types.html#__svg__SVGGeometryElement__getTotalLength'>getTotalLength()</a>,
and <a href='types.html#__svg__SVGGeometryElement__getPointAtLength'>getPointAtLength()</a> methods from SVGPathElement
onto SVGGeometryElement.</li>
<li>Move definition of wsp and comma-wsp to
path grammar since that's the only EBNF grammar in the spec.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li><a>SVGUnitTypes</a> is no longer NoInterfaceObject. <a href="https://github.com/w3c/svgwg/issues/291">Github #291</a>.</li>
<li>Clarified that <a>SVGElement</a>.<a href="types.html#__svg__SVGElement__className">className</a>
overrides <a>Element</a>.className. Not normative, <a href="https://github.com/w3c/svgwg/issues/298">Github #298</a>.</li>
<li>Specify <a>DOMPointInit</a> as argument type for isPointInFill() and isPointInStroke() instead of <a>DOMPoint</a>.</li>
<li>Specify algorithm used for isPointInFill() and isPointInStroke().</li>
<li>Moved dataset, tabIndex, focus(), and blur() to a shared <a>HTMLOrSVGElement</a> mixin defined in the HTML specification.</li>
<li>Made <a>SVGElement</a> include the <a>DocumentAndElementEventHandlers</a> interface from HTML.</li>
</ul>
</div>
<h3 id="structure">Document Structure chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Deprecated the <code>suspendRedraw</code>, <code>unsuspendRedraw</code> and <code>unsuspendRedrawAll</code> methods on the SVGSVGElement interface.</li>
<li>Removed the <span class="attr-name">'externalResourcesRequired'</span> attribute.</li>
<li>Added the ability to use <span class="attr-value">'auto'</span> for the <a>'width'</a> and <a>'height'</a> attributes on <a>'image'</a>.</li>
<li>Lifted the restriction on <a>'use'</a> not being able to reference an entire document.</li>
<li>Added <a>'lang'</a> attribute on <a>'desc'</a> and <a>'title'</a> elements.</li>
<li>Added section on WAI-ARIA attributes.</li>
<li>Clarified that CSS transforms on an <a>outermost svg element</a> do not affect <a href="struct.html#__svg__SVGSVGElement__currentScale">currentScale</a> or <a href="struct.html#__svg__SVGSVGElement__currentTranslate">currentTranslate</a>. Defined the returned values on <a>'svg'</a> elements that are not <a>outermost svg element</a>.</li>
<li>Deprecated the <a href="struct.html#__svg__SVGDocument__rootElement">rootElement</a> attribute.</li>
<li>Defined event handler content attributes and IDL attributes on the root <a>'svg'</a> element to be for events fired at the <a>Window</a>, like HTML's event handler content attributes and IDL attribute on <code>body</code>.</li>
<li>Moved the <a>'image'</a> element to the <a href='embedded.html'>Embedded Content chapter</a>.</li>
<li>Removed the <code>SVGElementInstance</code> and <code>SVGElementInstanceList</code> interfaces, and the corresponding attributes on the <a>SVGUseElement</a> interface.</li>
<li>Changed the <a>'use'</a> element event flow to follow the Shadow DOM spec.</li>
<li>Clarified that the <a>'switch'</a> element does not affect processing of <a>'script'</a> elements.</li>
<li>Made the <span class='attr-name'>'width'</span> and <span class='attr-name'>'height'</span> attributes on the <a>'svg'</a> element presentation attributes, and changed the initial value to
<span class="attr-value">auto</span>.
</li>
<li>Removed the <span class="attr-name">baseProfile</span> and <span class="attr-name">version</span> attributes from the <a>'svg'</a> element.</li>
<li>Deprecated the <a href="struct.html#__svg__SVGSVGElement__forceRedraw">forceRedraw</a> method on the <a>SVGSVGElement</a> interface and defined it to have no effect when called.</li>
<li>Defined the
<a href="struct.html#__svg__SVGSVGElement__deselectAll">deselectAll</a> method
on the <a>SVGSVGElement</a> interface in terms of the Selection API
and simultaneously deprecated it.</li>
<li>Clarified that the <a>'switch'</a> element does not affect the processing of <a>'style element'</a> elements.</li>
<li>Clarified that the <a href="struct.html#__svg__SVGSVGElement__getIntersectionList">getIntersectionList</a> and <a href="struct.html#__svg__SVGSVGElement__getEnclosureList">getEnclosureList</a> methods on the <a>SVGSVGElement</a> interface do not return shadow tree elements.</li>
<li>Removed the <span class="attr-name">requiredFeatures</span> attribute.</li>
<li>Removed the currentView and useCurrentView properties on <a>SVGSVGElement</a>.</li>
<li>Added <a>SVGUnknownElement</a> for handling unknown elements in the svg namespace.</li>
<li>Added the <a>'lang'</a> attribute in no namespace.</li>
<li>Removed the <code>viewport</code> attribute from the <a>SVGSVGElement</a> interface.</li>
<li>Removed the <span class="attr-name">xml:base</span> attribute.</li>
<li>Moved the <span class='element-name'>'discard'</span> element to
the split-out SVG Animations module.</li>
<li>Allowed <a href='struct.html#DataAttributes'>custom data attributes</a>
on all SVG elements.</li>
<li>Rewrite <a>'desc'</a> and <a>'title'</a> description
to reflect ARIA and accessibility mapping.</li>
<li>Remove recommendation on how to structure metadata elements
within the SVG document.</li>
<li>Remove requirement for SVGDocument property on the Document interface object.</li>
<li>Descendent elements of <a>'switch'</a> that have
the <a>'systemLanguage'</a> attribute should be reordered according to the
definition of the SMIL 'allowReorder' attribute.</li>
<li>Add <a>'tspan'</a> and <a>'textPath'</a> to
the <a>graphics element</a> category. This allows filters, masks, etc to
be applied to them.</li>
<li>Update section on element roles to conform to latest SVG Accessibility API Mappings specification.</li>
<li>Soften recommendation to put pre-defined content in a defs element even if not required.</li>
<li>Change display behavior of defs, title, desc, metadata, and symbol elements to be defined using user agent styles.</li>
<li>Allow x, y, width, and height presentation attributes on a symbol, with the same effect on a rendered instance as on a nested svg element.</li>
<li>Specify a backwards-compatible default behavior for <a>'symbol/refX'</a> and <a>'symbol/refY'</a> on a symbol (which will be different from marker); clarify that keywords have same behavior as marker.</li>
<li>Re-define use-element shadow trees to be consistent with the shadow DOM spec,
to integrate better with other SVG 2 changes,
and to clarify much related behavior, including:
<ul>
<li>x/y/width/height are presentation attributes, albeit ones with a unique effect on final layout</li>
<li>zero values for width and height are only significant through their impact on the used value of a cloned svg/symbol; negative values are parse errors</li>
<li>Allow use elements to reference any element that can be a valid child of an SVG container, rather than only graphics elements</li>
<li>Define the SVGUseElementShadowRoot interface as an extension of the ShadowRoot interface, and require it to be used for use-element shadow trees</li>
<li>Define a number of terms related to shadow DOM and use elements, referencing the DOM standard where applicable</li>
<li>Clarify that use-element shadow trees are generated even if the element is in a conditional processing failed branch (consistent with previous guidance re display:none)</li>
<li>Element instances in the shadow tree must appear to be regular Element nodes, except they are read-only.</li>
<li>Properties formerly defined on the SVGElementInstance object are now defined as a mixin interface extending SVGElement</li>
<li>Clarify that URL references in cloned content are made absolute relative to the source file.</li>
<li>Clarify that the shadow tree is discarded if the cross-references change, including due to declarative animation (the original and animated shadow trees are not preserved in parallel).</li>
<li>Clarify that circular references only block the rendering of the use-element that would connect the circle, and not it's own host.</li>
<li>Added warning about x/y behaving as a transformation on the use element, and the impact on userSpaceOnUse graphical effects.</li>
<li>Redefine the way width/height on use elements impact svg/symbol to be consistent with geometry properties and auto values.</li>
<li>Clarify that for other re-used graphics (not svg/symbol), the shadow elements are laid out in the use element's coordinate system, including for the resolution of percentage lengths.</li>
<li>Redefine style cloning in shadow trees to be consistent with style scoping in shadow DOM, including by requiring style sheets to be cloned into the shadow DOM's scope.</li>
<li>Add warning and example regarding the cases where this results in different styles than an SVG 1.1-conforming user agent.</li>
<li>Add example regarding the inherited behavior of the visibility property.</li>
<li>Require multimedia in use-element copies to be synchronized with all other instances of the same original element.</li>
<li>Clarify that the shadow tree shares the document timeline for animations with its host document.</li>
<li>Define a ShadowAnimation interface to represent the cloning of Web Animations API animations</li>
<li>Prohibit WAAPI animations from being directly applied to element instances in the use-element shadow tree.</li>
<li>Define the propagation of SMIL-style animations through the cloning of animation elements; require that animations elements affecting the referenced graphic be cloned into the shadow tree, even if they are not descendents of the referenced element.</li>
<li>Define how event-based animation element triggers and animation element href attributes behave when there are multiple elements with the same <a>'id'</a> in different node trees.</li>
<li>Require event handling in use-element shadow trees to follow the event retargetting rules from the Shadow DOM spec.</li>
<li>Clarify that the copying of event listeners from referenced graphics to their element instances applies to listeners added by script as well as by event attributes.</li>
<li>Prohibit event listeners from being directly added to elements in the use-element shadow tree.</li>
<li>Make use elements and symbols map to the graphics-object role by default, so the shadow content will be accessible.</li>
<li>Make the SVGSymbolElement interface extend from SVGGraphicsElement, so that rendered symbol element instances have all the behavior of graphics elements (e.g., getBBox)</li>
<li>Restore the (animated)instanceRoot properties on the SVGUseElement interface.</li>
</ul>
</li>
<li>Change role mapping for the <a>'a'</a> element to depend on whether it is actually a valid link.</li>
<li>Mark ARIA state and property attributes as animatable.</li>
<li>Update requirements for <a>'id'</a> values to harmonize with HTML, with extra warning about requirements for validity in an XML document.</li>
<li>Moved the <a href="struct.html#ForeignNamespaces">Foreign namespaces and private data</a> section to this chapter and added some new cross-references and notes.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Corrected incorrect interface name for definition of <a>SVGUseElementShadowRoot</a>. <a href="https://github.com/w3c/svgwg/issues/290">Github #290</a>.</li>
</ul>
</div>
<h3 id="styling">Styling chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Removed the <span class="attr-name">'contentStyleType'</span> attribute.</li>
<li><a>SVGStyleElement</a> now implements <a>LinkStyle</a>.</li>
<li>Updated user agent style sheet - inner svg elements and foreignObject elements are no longer set as overflow:hidden.</li>
<li>Added hatch to list of elements with overflow:hidden in User Agent style sheet.</li>
<li>Set the default value of transform-origin to '0 0' for all elements except root svg elements and svg elements that are the child of a foreignObject element.</li>
<li>Substantially rewrote the chapter to be more concise.</li>
<li>Defined that HTML <span class='element-name'>'link'</span> elements
must load external style sheets.</li>
<li>Specified the exact set of properties
that have presentation attributes, their names (when the presentation
attribute name does not match the property name), and on which elements
they are allowed.</li>
<li>Added a list of properties defined in other
specifications that conforming SVG 2 user agents must support.</li>
<li>Added User Agent style sheet rule to map the
deprecated <span class='attr-name'>'xml:space'</span> attribute to the
<a>'white-space'</a> property.</li>
<li>Required that @font-face rules and
::first-letter & ::first-line pseudo-elements on <a>'text'</a>
elements must be supported.</li>
<li>Required that all SVG and HTML
style sheets in an HTML document with inline SVG content must
apply to all content in the document.</li>
<li>Allow presentation attributes on any svg namespaced element.</li>
<li>Change display behavior of style element to be defined using user agent styles.</li>
<li>Add !important user agent style rules controlling never-rendered elements,
with a note explaining their impact.</li>
<li>Require interactive user agents to include :focus and ::selection styles.</li>
<li>Clean-up presentation attributes table to be consistent with other sections of the spec:
remove <a>'mask element'</a> from elements that treat x/y/width/height attributes as presentation attributes,
add <a>'use'</a> and <a>'symbol'</a>;
exclude <a>animation elements</a> from those that treat <a>'fill'</a> as a presentation attribute;
remove <a>'d'</a> as a presentation attribute for <a>'textPath'</a>;
merge the discussion of gradientTransform and patternTransform into the main table.
</li>
<li>Removed requirement for <a>'clip'</a> property support.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Specify that <a>'transform'</a>, <a>'pattern/patternTransform'</a> and <a>'linearGradient/gradientTransform'</a>
are presentation attributes for <a>'transform'</a> that can be specified to certain sets of elements in the SVG namespace.</li>
</ul>
</div>
<h3 id="conform">Conformance chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Animations do not run in documents processed
as resource documents.</li>
<li>Made the appendix a chapter.</li>
<li>Integrate content on processing modes from the SVG Integration specification.</li>
<li>Define required processing modes for different types of SVG cross-references,
with suggested processing modes for similar references from HTML/CSS.
(Replaces the "referencing modes" section from SVG Integration.)
</li>
<li>Update and re-organize all the conformance classes,
to be consistent with changes to other parts of this specification
and changes to other specifications.
</li>
<li>Make clear that a <a>SVG viewer</a> for conformance purposes
is the <a>user agent</a> / <a>SVG user agent</a> mentioned everywhere else in the spec;
move the corresponding definitions from the Document structure chapter to here.
</li>
<li>Move the non-normative section on suggested methods for generating
high-precision graphics to the Implementation Requirements appendix.
</li>
</ul>
<h3 id="geometry">Geometry Properties chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Removed <a>'pattern'</a> and <a>'filter element'</a> from the set of elements that the <a>'x property'</a> and <a>'y property'</a> properties
apply to.</li>
<li>Defined that <a>'width property'</a> and
<a>'height property'</a> property values of <span class='prop-value'>auto</span>
are computed to <span class='prop-value'>0</span> for SVG elements that
the properties apply to.</li>
<li>auto equates to 100% for width and height on the <a>'svg'</a> element, and to auto-sizing for images.</li>
<li>Remove <a>'mask element'</a> from the list of elements where width and height are sizing properties.</li>
<li>Clarify that width and height sizing properties
can be constrained with the corresponding max/min properties.</li>
</ul>
<h3 id="coords">Coordinate Systems, Transformations and Units chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Make <a>SVGMatrix</a>.skew{X,Y} throw an exception on bad values.</li>
<li>Added improved wording on bounding box
from SVG Tiny 1.2, and an algorithm which can compute a bounding box for an element.</li>
<li>Define bounding box for element with no position to be at (0,0).</li>
<li>Removed the defer keyword from <a>'preserveAspectRatio'</a>.</li>
<li>Add definition for 'current viewport'. Change SVG viewport to mean all viewports created by SVG elements.</li>
<li>Add <span class='prop-value'>non-scaling-size</span>, <span class='prop-value'>non-rotation</span>,
and <span class='prop-value'>fixed-position</span> values for <a>'vector-effect'</a></li>
<li>Changed requirement for co-ordinate system layout to be mandatory.</li>
<li><a>'vector-effect'</a> has no effect within a <a>3d rendering context</a>.</li>
<li>Define SVG sizing in CSS contexts with reference to the CSS Default Sizing Algorithm.</li>
<li>Clarify that percentages are relative to the width and height of the specified viewBox.</li>
<li>Mark unimplemented <a>'vector-effect'</a> options at-risk.</li>
<li>Change bounding box algorithm to include the effect of overflow and clip properties when the "clipped" flag is set.</li>
</ul>
<h3 id="paths">Paths chapter (owner: ericwilligers)</h3>
<ul>
<li>Define <a>'path'</a>, <a>'polygon'</a> and <a>'polyline'</a> elements with no data set (empty or zero valid commands) to not render.</li>
<!--
<li>Define how <a href="paths.html#__svg__SVGPathElement__getPathSegAtLength">getPathSegAtLength</a> and
<a href="paths.html#__svg__SVGPathElement__getPointAtLength">getPointAtLength</a> handle out-of-range input, and what to do in case there's no valid path data.</li>
<li>Removed the <code>normalizedPathSegList</code> and <code>animatedNormalizedPathSegList</code> attributes from <a>SVGAnimatedPathData</a>.</li>
-->
<li>Removed the <code>SVGPathSeg*</code> and <code>SVGAnimatedPathData</code> interfaces and the related methods on <a>SVGPathElement</a>.</li>
<li>Promoted the <span class='attr-name'>'d'</span> attribute
to a property.</li>
<li>Removed the <a href='types.html#__svg__SVGGeometryElement__pathLength'>pathLength</a> attribute,
<a href='types.html#__svg__SVGGeometryElement__getTotalLength'>getTotalLength()</a>,
and <a href='types.html#__svg__SVGGeometryElement__getPointAtLength'>getPointAtLength()</a> methods from SVGPathElement,
they are now on SVGGeometryElement.</li>
<li>Clarified that a value of zero for <a>'pathLength'</a> is valid.</li>
</ul>
<h3 id="shapes">Basic Shapes chapter (owner: BogdanBrinza)</h3>
<ul>
<li>The <a href="shapes.html#__svg__SVGAnimatedPoints__animatedPoints">animatedPoints</a>
IDL attributes of SVGAnimatedPoints now aliases the <a href="shapes.html#__svg__SVGAnimatedPoints__points">points</a>
attribute.</li>
<li>Added the <a>'pathLength'</a> attribute to all basic shapes.</li>
<li>Added auto behavior for <a>'rx'</a> and <a>'ry'</a> to <a>'ellipse'</a>.</li>
</ul>
<h3 id="text">Text chapter (owner: BogdanBrinza)</h3>
<ul>
<li>
Require support for WOFF fonts.
</li>
<li>
Added the <a>'text-decoration-fill'</a> and <a>'text-decoration-stroke'</a>
properties. Adopt the CSS3 changes to the <a>'text-decoration'</a> property.
</li>
<li>Added a number of missing attributes to the element summary boxes of the
<a>'text'</a> and <a>'textPath'</a> elements.</li>
<li>Added <a>'inline-size'</a> presentation attribute to <a>'text'</a>.</li>
<li>Added a section about <a>'text-overflow'</a> processing.</li>
<li>
Added <a>'shape-inside'</a> property.
</li>
<li>
Added <a>'shape-subtract'</a> property (replaces <a>'shape-outside'</a>).
</li>
<li>Added <a>'white-space'</a> property and deprecated <a>'xml:space'</a> attribute.</li>
<li>Removed the <span class='property'>'kerning'</span> property.</li>
<li>Added a <span class='attr-name'>'path'</span>
attribute to <a>'textPath'</a>.</li>
<li>Added ability to reference basic shapes to <a>'textPath'</a>.</li>
<li>
Added the <a>'textPath/side'</a> attribute to allow placing text on
either side of a path.
</li>
<li>
Render characters for one loop of a single closed path, effected by the
<a>'textPath/startOffset'</a> attribute and <a>'text-anchor'</a> property.
</li>
<li>Removed the <span class='element'>'tref'</span> element.</li>
<li>Removed the <span class='element'>'altGlyph'</span>, <span class='element'>'altGlyphDef'</span>,
<span class='element'>'altGlyphItem'</span> and <span class='element'>'glyphRef'</span> elements.</li>
<li>Defined the
<a href="text.html#__svg__SVGTextContentElement__selectSubString">selectSubString</a>
method on the <a>SVGTextContentElement</a> interface in terms of the
Selection API and simultaneously deprecated it.</li>
<li>Changed getComputedTextLength() to not include
<a>'tspan/dx'</a> and <a>'tspan/dy'</a> values.</li>
<li>Moved the discussion of <a>'width property'</a>
and <a>'height property'</a> properties to the Geometry Properties chapter.</li>
<li>Require support for ::selection in interactive user agents.</li>
<li>Require that text in non-rendered elements are not included in <a>addressable characters</a>
and therefore are not counted when assigning positioning attributes
and in the <a>SVGTextContentElement::getNumberOfChars</a> methods.
</li>
<li>Require that Unknown elements within text render as unpositioned spans,
but that known-but-invalidly-positioned elements do not.
</li>
<li>Clarify that when text is positioned along a transformed path,
offset distances should be measured in the text element's coordinate system,
not the path element's.
</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Specify <a>DOMPointInit</a> as argument type for getCharNumAtPosition() instead of
<a>DOMPoint</a>.
</li>
<li>
Remove 'number' value from <a>'inline-size'</a> property for constency with CSS.
</li>
<li>Removed unintended restriction that <a>'path/pathLength'</a> applied only to <span class='element'>path</span>s
and not <a>shapes</a>.
</li>
</ul>
</div>
<h3 id="embedded">Embedded Content chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Added this chapter, which includes new
<a>'video'</a>, <a>'audio'</a>, <a>'iframe'</a>, <a>'canvas'</a>,
<span class='element-name'>'source'</span> and <span class='element-name'>'track'</span>
elements that behave almost identically
to the equivalent HTML elements.</li>
<li>Removed the SVG copies of
HTML's embedded content elements and instead allowed those
elements to be used in the HTML namespace within SVG
container elements.</li>
<li>Removed the requirement to
ignore <a>'clip'</a> and <a>'overflow'</a> on an SVG document
when referenced by an <a>'image'</a> element.</li>
<li>Allow image height and width to be "auto", determined from intrinsic dimensions or aspect ratio of the image file.</li>
<li>
Clarify image and foreignObject sizing to be consistent with CSS and with geometry properties;
allow embedded HTML elements to be positioned using <a>'x'</a>, <a>'y'</a>, <a>'width'</a>, and <a>'height'</a> geometric properties.
</li>
<li>
Clarify that <a>'object-fit'</a> and <a>'object-position'</a> properties
apply to embedded HTML elements;
add warning note that they are not defined for <a>'image'</a>.
</li>
<li>Moved the "Foreign namespaces and private data" section to the Document Structure chapter.</li>
<li>Updated the reference to the (abandoned) Resource Priorities spec to instead refer to the (working draft) Resource Hints spec.</li>
</ul>
<h3 id="painting">Painting chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Added more detail to the descriptions of the stroke properties and added algorithms
defining the exact shape a stroke must have.</li>
<li>Added the <a>'paint-order'</a> property.</li>
<li>Moved the <span class='property'>color-interpolation-filters</span> property
to the Filter Effects specification.</li>
<li>Added the <span class="prop-value">context-fill</span> and <span class="prop-value">context-stroke</span>
paint values.</li>
<li>Allowed <a><paint></a> values and marker properties to take the
<span class="prop-value">child</span> keyword and
<child-selector> values to support ID-less referencing.</li>
<li>Move normative definition of <a>'vector-effect'</a> property
<span class='prop-value'>non-scaling</span> into SVG 2.</li>
<li>Added arcs value on <a>'stroke-linejoin'</a>.</li>
<li>Added the <span class="attr-value">'auto-start-reverse'</span>
attribute to the <a>'marker/orient'</a> attribute on <a>'marker element'</a>.</li>
<li>Removed the SVGPaint interface.</li>
<li>Split out some new marker and stroke related
features into the <a href="https://www.w3.org/TR/2015/WD-svg-markers-20150407/">SVG Markers</a>
and <a href="https://www.w3.org/TR/2015/WD-svg-strokes-20150407/">SVG Strokes</a>
specifications.</li>
<li>Removed <child-selector> paint values.</li>
<li>Removed the
<span class='prop-name'>'buffered-rendering'</span> property and replaced it
with a short discussion of the <span class='prop-name'>'will-change'</span>
property.</li>
<li>Added a <span class='prop-value'>child(<integer>)</span>
paint value to support the use cases that <child-selector> was intended for.</li>
<li>Clarify that for all zero length subpaths,
whether open or closed, the rendered result is based on the
<a>'stroke-linecap'</a> attribute.</li>
<li>Allow markers on all <a>shapes</a>.</li>
<li>Clarify the description of context-stroke and context-fill, particularly re use element shadow content.</li>
<li>Change display behavior of marker elements to be defined using user agent styles.</li>
<li>[Since last WD] Roll back the change allowing
<a>fill</a> and <a>stroke</a> to take multiple paints.</li>
<li>Remove the 'markable elements' category.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Removed z-index.</li>
</ul>
</div>
<h3 id="color">Color chapter (owner: Chris Lilley)</h3>
<ul>
<li>Removed this chapter, replaced with normative reference to CSS Color.</li>
</ul>
<h3 id="pservers">Paint Servers chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Added the solidcolor element and its two properties solid-color
and solid-opacity, ported over from SVG Tiny 1.2. (Renamed 'solidColor' to
'solidcolor'.)</li>
<li>Added an <a>'radialGradient/fr'</a> attribute to the <a>'radialGradient'</a> element,
which allows specifying the radius of the focal circle.</li>
<li>Added a section for mesh gradients, defining the mesh, meshrow
and meshpatch elements. (Renamed 'meshGradient' to 'mesh', 'meshRow' to 'meshrow',
and 'meshPatch' to 'meshpatch'.)</li>
<li>Added a section for hatches, defining the hatch and hatchpath elements.
(Renamed 'hatchPath' to 'hatchpath'.)</li>
<li>Renamed <span class="attr-name">'gradientTransform'</span> on the <a>'mesh'</a> element
and <span class="attr-name">'hatchTransform'</span> on the <a>'hatch'</a> element to <span class="attr-name">'transform'</span>.</li>
<li>Change display behavior of paint server elements to be defined using user agent styles.</li>
<li>Define common handling of paint server template cross-references,
allowing external file references,
using a use-element shadow DOM model for cloned child content,
defining consistent behavior for whether title and desc affect child cloning,
and explicitly defining which attributes are derived from the template for each element.
</li>
<li>Add notes warning about attributes that look like presentation attributes, but aren't.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li><a>SVGGradientElement</a> and <a>SVGPatternElement</a> no longer implement <a>SVGUnitTypes</a>. <a href="https://github.com/w3c/svgwg/issues/291">Github #291</a>.</li>
<li>Deferred hatch and hatchpath elements to a future version of SVG.</li>
<li>Deferred mesh gradients, including mesh, meshrow, and meshpath elements to a future version of SVG.</li>
<li>Removed the solidcolor element and the solid-color and solid-opacity properties.</li>
</ul>
</div>
<h3 id="masking">Clipping, Masking and Compositing chapter (owner: BogdanBrinza)</h3>
<ul>
<li>SVG now references CSS Masking [<a href="refs.html#ref-css-masking-1">css-masking-1</a>] specification.
<ul>
<li>Removed definition of clipping/masking properties and elements.</li>
<li>Keep short introduction to clipping/masking and add reference to CSS Masking</li>
</ul>
</li>
<li>Added reference to Compositing and Blending spec. Simple alpha compositing it mandatory.</li>
<li>The <a>'overflow'</a> property should be respected on the outermost svg elements inline in html.</li>
<li>Merge Clipping, Masking and Compositing chapter into Rendering Model chapter.</li>
</ul>
<h3 id="filters">Filter Effects chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Removed the body of this chapter and replaced it with a link to the
Filter Effect specification.</li>
</ul>
<h3 id="interact">Interactivity chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Added the <span class="attr-name">'tabindex'</span> attribute.</li>
<li>Corrected the definition of the <a>'cursor/href'</a> attribute on
the <a>'cursor element'</a> element to take an URL that is not in a CSS-like
functional form.</li>
<li>Added the <span class="prop-value">bounding-box</span> keyword to <a>'pointer-events'</a>.</li>
<li>Replaced SVGLoad, SVGAbort, SVGError and SVGUnload with load, abort, error and unload respectively.</li>
<li>Required that only <a>structurally external elements</a> and the <a>outermost svg element</a> must fire load events.</li>
<li>Replaced SVGResize and SVGScroll with resize and scroll respectively.</li>
<li>Removed DOMActivate.</li>
<li>Replaced DOMFocusIn and DOMFocusOut with focusin and focusout, and added the blur event.</li>
<li>Added keyboard events.</li>
<li>Removed mutation events.</li>
<li>Removed SVGZoomEvent.</li>
<li>Clarify that shadow DOM content is focusable and interactive.</li>
<li>Change display behavior of script elements to be defined using user agent styles.</li>
<li>Mark cursor element as deprecated, update description of <a>'cursor property'</a>.</li>
</ul>
<div class='changed-since-cr1'>
<ul>
<li>Removed the cursor element and the SVG specific definition of the <a>'cursor property'</a></li>
</ul>
</div>
<h3 id="linking">Linking chapter (owner: BogdanBrinza)</h3>
<ul>
<li><a id="linking-tests-all" href="https://github.com/web-platform-tests/wpt/tree/master/svg/linking/reftests">Tests</a></li>
<li><a id="linking-test-results" href="https://wpt.fyi/svg/linking/reftests/">Test results</a></li>
</ul>
<ul>
<li>Added <a>animation elements</a> to the content model of <a>'view'</a>.</li>
<li>Added the possibility to link to SVG resources with fragment identifiers defined by the Media Fragments specification.</li>
<li>Removed the <span class='attr-name'>'xlink:type'</span>, <span class='attr-name'>'xlink:role'</span>, <span class='attr-name'>'xlink:arcrole'</span>, <span class='attr-name'>'xlink:show'</span> and <span class='attr-name'>'xlink:actuate'</span> attributes.</li>
<li>Deprecated the <a>'xlink:href'</a> attribute in favor of using <span
class="attr-name">'href'</span> without a namespace.
<h4 id="linking-tests">Tests:</h4>
<ul>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-feImage-element.html">feImage</a></li>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-filter-element.html">filter</a></li>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-gradient-element.html">gradient</a></li>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-image-element.html">image</a></li>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-pattern-element.html">pattern</a></li>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-textPath-element.html">textPath</a></li>
<li><a href="https://github.com/web-platform-tests/wpt/blob/master/svg/linking/reftests/href-use-element.html">use</a></li>
</ul>
<h4 id="linking-actions">Actions:</h4>
<ul>
<li><a href="https://github.com/w3c/svgwg/issues/362">Convert SVG linking reftests to .svg files</a></li>
</ul>
</li>
<li>Deprecated the <a>'xlink:title'</a> attribute in favor of using child
<a>'title'</a> elements.</li>
<li>Allowed spaces in SVG view fragments.</li>
<li>Defined how "pixel:" and "percent:" spatial media
fragments are interpreted.</li>
<li>Made linking to <a>'view'</a> elements not
cause an implicit view box transformation to show the nearest ancestor
<a>'svg'</a> element.</li>
<li>Clarified that unspecified SVG view fragment
parameters do not cause the corresponding attributes to be reset to their
initial values.</li>
<li>Removed the <span class='attr-name'>'viewTarget'</span> attribute
on the <a>'view'</a> element and the corresponding SVG view fragment
parameter.</li>
<li>Fragment-only URLs are always same-document.</li>
<li>Added additional attributes on <a>'a'</a> element to synchronize with HTML.</li>
<li>Create detailed instructions for processing URLs and external resource files.</li>
</ul>
<h3 id="script">Scripting chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Removed the <span class="attr-name">'contentScriptType'</span> attribute.</li>
<li>Removed <span class="attr-name">'onload'</span> from AnimationEvents.</li>
<li>Merged this entire chapter into the Interactivity chapter.</li>
</ul>
<h3 id="animate">Animation chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Moved this chapter to a separate
<a href="https://svgwg.org/specs/animations/">SVG Animations</a> module.</li>
</ul>
<h3 id="fonts">Fonts chapter (owner: BogdanBrinza)</h3>
<ul>
<li>Added WOFF requirement, rearranged content.</li>
<li>Removed this chapter and the SVG Fonts
feature it contained, including the
<span class='element-name'>'font'</span>,
<span class='element-name'>'glyph'</span>,
<span class='element-name'>'missing-glyph'</span>,
<span class='element-name'>'hkern'</span>,
<span class='element-name'>'vkern'</span>,
<span class='element-name'>'font-face'</span>,
<span class='element-name'>'font-face-src'</span>,
<span class='element-name'>'font-face-uri'</span>,
<span class='element-name'>'font-face-format'</span> and
<span class='element-name'>'font-face-name'</span> elements
and their corresponding IDL interfaces.</li>
</ul>
<h3 id="extend">Extensibility chapter (owner: ericwilligers)</h3>
<ul>
<li>Made <a>'foreignObject'</a> a <a>graphics element</a>.</li>
<li>Made <span class='attr-name'>'width'</span> and <span class='attr-name'>'height'</span> presentation attributes on the <a>'foreignObject'</a> element.</li>
</ul>
<h3 id="svgdtd">Document Type Definition appendix (owner: BogdanBrinza)</h3>
<ul>
<li>Removed this appendix, as SVG 2 is not defined in terms of a DTD.</li>
</ul>
<h3 id="java">Java Language Binding appendix (owner: BogdanBrinza)</h3>
<ul>
<li>Removed this appendix, as language bindings are now defined by
Web IDL.</li>
</ul>
<h3 id="escript">ECMAScript Language Binding appendix (owner: BogdanBrinza)</h3>
<ul>
<li>Removed this appendix, as language bindings are now defined by
Web IDL.</li>
</ul>
<h3 id="impreqs"> Implementation Requirements appendix</h3>
<ul>
<li class="'changed-since-cr1'">Removed <a href="https://github.com/w3c/svgwg/issues/324">un-implemented out-of-range flag values note</a>.</li>
</ul>
<h3 id="refs">References appendix (owner: BogdanBrinza)</h3>
<ul>
<li>Removed normative reference to CSS2.</li>
<li>Removed informative reference to DOM Level 3 Core.</li>
<li>Changed normative reference to DOM Level 1 Core to be informative.</li>
<li>Changed normative reference from DOM Level 2 Core to DOM4.</li>
<li>Changed informative reference to SMIL 3 to be normative.</li>
<li>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.</li>
<li>Added informative references to CSS 3 Transitions and Animations.</li>
<li>Replaced references from DOM Level 2 Events and DOM Level 3 Events to normative references to UI Events and DOM 4.</li>
<li>Added normative reference to WAI-ARIA 1.1.</li>
<li>Added normative reference to Shadow DOM.</li>
</ul>
<h3 id="idlindex">IDL Index appendix (owner: BogdanBrinza)</h3>
<ul>
<li>Added this appendix.</li>
</ul>
<h3 id="feature">Feature Strings (owner: BogdanBrinza)</h3>
<ul>
<li>Removed this appendix.</li>
</ul>
</body>
</html>