--- a/master/changes.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/changes.html Wed Nov 28 16:47:02 2012 +1100
@@ -43,6 +43,8 @@
<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>
</ul>
<h3 id="types">Basic Data Types and Interfaces chapter</h3>
@@ -55,7 +57,13 @@
<li>Added <a>SVGGraphicsElement</a> and <a>SVGDefinitionElement</a> interfaces.</li>
+ <li>Added an <a>SVGGeometryElement</a> interface with isPointInFill and isPointInStroke methods.</li>
+
<li>Removed the SVGExternalResourcesRequired interface.</li>
+
+ <li>Added constructors to <a>SVGNumber</a>, <a>SVGLength</a>, <a>SVGAngle</a> and <a>SVGRect</a>.</li>
+
+ <li>Added <a href="types.html#__svg__SVGLocatableElement__getStrokeBBox">getStrokeBBox</a> to get the tight stroke bounding box.</li>
</ul>
<h3 id="structure">Document Structure chapter</h3>
@@ -74,6 +82,12 @@
<li>Removed the <span class="attr-name">'contentStyleType'</span> attribute.</li>
</ul>
+<h3 id="coords">Coordinate Systems, Transformations and Units chapter</h3>
+
+<ul>
+ <li>Added constructors to <a>SVGPoint</a>, <a>SVGMatrix</a> and <a>SVGTransform</a>.</li>
+</ul>
+
<h3 id="text">Text chapter</h3>
<ul>
@@ -103,6 +117,10 @@
to the Filter Effects specification.</li>
<li>Added the <a>'buffered-rendering'</a> property.</li>
+
+ <li>Added <a>SVGMarkerList</a> and <a>SVGMarkerInstance</a> interfaces to represent the
+ markers painted on a given <a>markable element</a>, and an <a>SVGMarkableElement</a>
+ interface to expose that list on <a>markable elements</a>.</li>
</ul>
<h3 id="color">Color chapter</h3>
@@ -137,6 +155,14 @@
<li>Extended the <a>'mask property'</a> property to allow targetting a CSS
<a><image></a> or <a href="pservers.html">paint server</a> element.</li>
</ul>
+<p class="note">This changes are obsolete with 21 October 2012.</p>
+
+<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>
+ <li>Structural changes to this chapter.<li>
+ <li>Added reference to Compositing and Blending spec. Simple alpha compositing it mandatory.</li>
+</ul>
<h3 id="filters">Filter Effects chapter</h3>
@@ -212,5 +238,11 @@
<li>Added informative references to CSS 3 Transitions and Animations.</li>
</ul>
+<h3 id="idlindex">IDL Index appendix</h3>
+
+<ul>
+ <li>Added this appendix.</li>
+</ul>
+
</body>
</html>
--- a/master/concepts.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/concepts.html Wed Nov 28 16:47:02 2012 +1100
@@ -16,6 +16,9 @@
<h1>Concepts</h1>
+<p class="issue">This chapter is a bit waffley. How much of this
+do we really need to say?</p>
+
<h2 id="Intro">Explaining the name: SVG</h2>
<p class="explain">SVG stands for <a
@@ -194,6 +197,9 @@
<h2 id="UsageOptions">Options for using SVG in Web pages</h2>
+<p class="issue">We should reference the SVG Integration
+specification here, once that has been published.</p>
+
<p>There are a variety of ways in which SVG content can be
included within a Web page. Here are some of the options:</p>
--- a/master/coords.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/coords.html Wed Nov 28 16:47:02 2012 +1100
@@ -48,6 +48,9 @@
([<a href="refs.html#ref-CSS21">CSS21</a>], section 4.3.2)</li>
</ul>
+<p class="issue">Why are real world units relevant? Shouldn't we
+just be relying on CSS' fixed ratio of mm to px units?</p>
+
<p id="SVGInitialUserCoordinateSystem">Using the above information, the SVG user agent determines
the <a>viewport</a>, an initial <a>viewport coordinate system</a> and an
initial <a>user coordinate system</a>
@@ -96,6 +99,9 @@
<h2 id="ViewportSpace">The initial viewport</h2>
+<p class="issue">Do we need to port over some more up-to-date
+definitions of sizing from SVG Tiny 1.2?</p>
+
<p id="SVGViewport">The SVG user agent negotiates with its parent user agent to
determine the viewport into which the SVG user agent can render
the document. In some circumstances, SVG content will be
@@ -111,6 +117,11 @@
containing document and the SVG content itself to choose the
viewport location and size.</p>
+<p class="issue">Talking about a "parent user agent" really makes
+this sound like we have a separate plugin SVG implementation
+communicating with a browser hosting the plugin. These days,
+it's going to be the same user agent.</p>
+
<p>The <a>'svg/width'</a> attribute on the
<a>outermost svg element</a>
establishes the viewport's width, unless the following
@@ -235,7 +246,7 @@
<p>A new user space (i.e., a new current coordinate system) can
be established by specifying <a>transformations</a> in the form of a <a>'transform'</a>
-attribute on a container element or graphics element or a
+property on a container element or graphics element or a
<a>'viewBox'</a> attribute on an
<a>'svg'</a>,
<a>'symbol'</a>,
@@ -353,6 +364,14 @@
</tr>
</table>
+<p class="issue">Do we need this blue box, and if so, should we expand it to
+include all of the property definition information? Some sections (such as
+for <span class="property">'color'</span>) do not have the blue box.
+Others, like the one for <a>'white-space'</a>, have all the information from
+the CSS specification it comes from. Regardless, I think we don't need
+to mention whether the property is animatable since all properties are
+animatable.</p>
+
<p id="TransformList">The term <var><transform-list></var> used by this specification is equivalent to a list of <var><transform-functions></var>, the value of the <a>'transform'</a>
property.</p>
@@ -585,7 +604,7 @@
For <a>'preserveAspectRatio'</a> on all other
elements the <span class='attr-value'>'defer'</span> portion of the attribute is ignored.</p>
-<p>The <span class="attr-value"><align></span> parameter
+<p id="DataTypeAlign">The <span class="attr-value"><align></span> parameter
indicates whether to force uniform scaling and, if so, the
alignment method to use in case the aspect ratio of the <a>'viewBox'</a>
doesn't match the aspect ratio of the viewport. The <span
@@ -928,6 +947,18 @@
desirable to specify values relative to the device pixel grid
or to a particular real world unit size.</p>
+<p class="issue">That's wrong. 1px always corresponds to
+one user unit, and the "absolute" units must be interpreted
+as CSS says to, i.e. as fixed multiples of the CSS px, and
+not anything to do with the display's resolution. The
+recommendation to use the absolute units (apart from px)
+only for <a>'svg/width'</a> and <a>'svg/height'</a> on
+root <a>'svg'</a> is a good one, however. Defining
+the size of a document in mm and then using mm units
+for shapes within it is going to give counterintuitive
+results, since they'll be converted to user units to resolve
+against the view box.</p>
+
<p>For percentage values that are defined to be relative to the
size of viewport:</p>
@@ -968,6 +999,9 @@
different sizes.) The bottom rectangle of the group illustrates
what happens when values specified in inches are scaled.</p>
+<p class="issue">The example needs to be changed in light of
+the issue above about absolute units.</p>
+
<p>The three rectangles in the middle demonstrate the use of
one of the relative unit identifiers, the "em" unit. Because
the <a>'font-size'</a> property has been set
@@ -1003,6 +1037,8 @@
by setting a specified attribute to <span class="attr-value">'objectBoundingBox'</span>
on the given element:</p>
+<p class="issue">Need a line for <a>'meshGradient'</a>.</p>
+
<table class='vert'>
<tr>
<th>Element</th>
@@ -1314,6 +1350,9 @@
<h2 id="SVGGlobalTransformAttribute">The <span class="attr-name">'svg:transform'</span> attribute</h2>
+<p class="issue">Do we need this section? Should we instead have a guide on
+how other specifications should re-use specific attributes or elements?</p>
+
<div class="adef-list">
<p><em>Attribute definition:</em></p>
<dl>
@@ -1411,8 +1450,6 @@
<h3 id="InterfaceSVGPoint">Interface SVGPoint</h3>
-
-
<p>Many of the SVG DOM interfaces refer to objects of class
<a>SVGPoint</a>. An <a>SVGPoint</a> is an (x, y) coordinate pair. When
used in matrix operations, an <a>SVGPoint</a> is treated as a vector of
@@ -1428,7 +1465,9 @@
then attempting to assign to one of its attributes will result in
an exception being thrown.</p>
-<pre class="idl">interface <b>SVGPoint</b> {
+<pre class="idl">[<a href="#__svg__SVGPoint__constructor">Constructor</a>,
+ <a href="#__svg__SVGPoint__constructor1">Constructor</a>(float x, float y)]
+interface <b>SVGPoint</b> {
attribute float <a href="coords.html#__svg__SVGPoint__x">x</a>;
attribute float <a href="coords.html#__svg__SVGPoint__y">y</a>;
@@ -1437,6 +1476,19 @@
};</pre>
<dl class="interface">
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGPoint__constructor" class="operation first-child"><b>SVGPoint</b>()</dt>
+ <dd class="operation">
+ <div>Creates a new <a>SVGPoint</a> object with its x and y attributes set to 0.</div>
+ </dd>
+ <dt id="__svg__SVGPoint__constructor" class="operation first-child"><b>SVGPoint</b>(float x, float y)</dt>
+ <dd class="operation">
+ <div>Creates a new <a>SVGPoint</a> object with its x and y attributes set to <var>x</var> and <var>y</var>, respectively.</div>
+ </dd>
+ </dl>
+ </dd>
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
@@ -1503,26 +1555,29 @@
<h3 id="InterfaceSVGPointList">Interface SVGPointList</h3>
-
-
<p>This interface defines a list of SVGPoint objects.</p>
-
<p><a>SVGPointList</a> has the same attributes and methods as other
SVGxxxList interfaces. Implementers may consider using a single base class
to implement the various SVGxxxList interfaces.</p>
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGPointList</a> object is all non-negative integers less than
+the length of the list.</p>
+
<pre class="idl">interface <b>SVGPointList</b> {
+ readonly attribute unsigned long <a href="coords.html#__svg__SVGPointList__length">length</a>;
readonly attribute unsigned long <a href="coords.html#__svg__SVGPointList__numberOfItems">numberOfItems</a>;
void <a href="coords.html#__svg__SVGPointList__clear">clear</a>();
<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__initialize">initialize</a>(<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> newItem);
- <a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__getItem">getItem</a>(unsigned long index):
+ getter <a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__getItem">getItem</a>(unsigned long index):
<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__insertItemBefore">insertItemBefore</a>(<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> newItem, unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__replaceItem">replaceItem</a>(<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> newItem, unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__removeItem">removeItem</a>(unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="coords.html#__svg__SVGPointList__appendItem">appendItem</a>(<a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> newItem);
+ <a href="#__svg__SVGPointList__setter">setter</a> void (unsigned long index, <a>SVGPoint</a> newItem);
};</pre>
<dl class="interface">
@@ -1530,13 +1585,16 @@
<dd>
<dl class="attributes">
+<dt id="__svg__SVGPointList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+<dd class="attribute">
+ <div>The number of items in the list.</div>
+</dd>
+
<dt id="__svg__SVGPointList__numberOfItems" class="attribute first-child"><b>numberOfItems</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
<dd class="attribute">
-<div>
-The number of items in the list.
-
-</div>
+ <div>The number of items in the list.</div>
</dd>
+
</dl>
</dd>
<dt class="operations-header">Operations:</dt>
@@ -1866,6 +1924,8 @@
</dd>
</dl>
</dd>
+<dt id="__svg__SVGPointList__setter" class="operation"><b>setter</b> void (unsigned long <var>index</var>, <a>SVGPoint</a> <var>newItem</var>)</dt>
+<dd class="operation"><div>Replaces the item at index <var>index</var> with <var>newItem</var>.</div></dd>
</dl>
</dd>
</dl>
@@ -1873,8 +1933,6 @@
<h3 id="InterfaceSVGMatrix">Interface SVGMatrix</h3>
-
-
<p>Many of SVG's graphics operations utilize 2x3 matrices of the form:</p>
<pre>
@@ -1889,7 +1947,10 @@
[a c e]
[b d f]
[0 0 1]</pre>
-<pre class="idl">interface <b>SVGMatrix</b> {
+
+<pre class="idl">[<a href="#__svg__SVGMatrix__constructor">Constructor</a>,
+ <a href="#__svg__SVGMatrix__constructor1">Constructor</a>(float a, float b, float c, float d, float e, float f)]
+interface <b>SVGMatrix</b> {
attribute float <a href="coords.html#__svg__SVGMatrix__a">a</a>;
attribute float <a href="coords.html#__svg__SVGMatrix__b">b</a>;
@@ -1912,6 +1973,17 @@
};</pre>
<dl class="interface">
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGMatrix__constructor" class="operation first-child"><b>SVGMatrix</b>()</dt>
+ <dd>Creates a new <a>SVGMatrix</a> object whose a, b, c, d, e and f attributes
+ are all set to 0.</dd>
+ <dt id="__svg__SVGMatrix__constructor1" class="operation first-child"><b>SVGMatrix</b>(float <var>a</var>, float <var>b</var>, float <var>c</var>, float <var>d</var>, float <var>e</var>, float <var>f</var>)</dt>
+ <dd>Creates a new <a>SVGMatrix</a> object whose a, b, c, d, e and f attributes
+ are set to the values of the respective argument passed to the constructor.</dd>
+ </dl>
+ </dd>
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
@@ -2326,7 +2398,10 @@
<span class="attr-value">'matrix(…)'</span>) within a <a>'transform'</a>
attribute specification.</p>
-<pre class="idl">interface <b>SVGTransform</b> {
+<pre class="idl">[<a href="#__svg__SVGTransform__constructor">Constructor</a>,
+ <a href="#__svg__SVGTransform__constructor1">Constructor</a>(SVGMatrix matrix),
+ <a href="#__svg__SVGTransform__constructor2">Constructor</a>(DOMString value)]
+interface <b>SVGTransform</b> {
// Transform Types
const unsigned short <a href="coords.html#__svg__SVGTransform__SVG_TRANSFORM_UNKNOWN">SVG_TRANSFORM_UNKNOWN</a> = 0;
@@ -2350,6 +2425,37 @@
};</pre>
<dl class="interface">
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGTransform__constructor" class="operation first-child"><b>SVGTransform</b>()</dt>
+ <dd class="operation">
+ <div>Creates a new <a>SVGTransform</a> object whose type attribute is
+ set to SVG_TRANSFORM_MATRIX and whose matrix attribute is set to an
+ <a>SVGMatrix</a> object that represents the identity matrix.</div>
+ </dd>
+ <dt id="__svg__SVGTransform__constructor1" class="operation first-child"><b>SVGTransform</b>(<a>SVGMatrix</a> <var>matrix</var>)</dt>
+ <dd class="operation">
+ <div>Creates a new <a>SVGTransform</a> object whose type attribute is
+ set to SVG_TRANSFORM_MATRIX and whose matrix attribute is set to an
+ <a>SVGMatrix</a> object whose attributes are all initialized to be the
+ same as the corresponding attributes in <var>matrix</var>.</div>
+ </dd>
+ <dt id="__svg__SVGTransform__constructor2" class="operation first-child"><b>SVGTransform</b>(DOMString <var>value</var>)</dt>
+ <dd class="operation">
+ <div>
+ <p>Creates a new <a>SVGTransform</a> object whose type and matrix
+ attributes are set to values determined by parsing <var>value</var>
+ as a <a><transform-function></a>.</p>
+ <p>If <var>value</var> could not be parsed as a
+ <a><transform-function></a>, then a <a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#syntaxerror">SyntaxError</a>
+ is thrown.</p>
+ <p class='issue'>The CSS Transforms specification does not have
+ a grammar for <a><transform-function></a> yet.</p>
+ </div>
+ </dd>
+ </dl>
+ </dd>
<dt class="constants-header">Constants in group “Transform Types”:</dt>
<dd>
<dl class="constants">
@@ -2684,40 +2790,43 @@
<h3 id="InterfaceSVGTransformList">Interface SVGTransformList</h3>
-
+<p class="issue">This section needs to be updated to describe
+how it reflects the value of the <a>'transform'</a> property,
+or just defer to css3-tranforms if everything is defined there.</p>
<p>This interface defines a list of SVGTransform objects.</p>
-
<p>The <a>SVGTransformList</a> and <a>SVGTransform</a> interfaces correspond
to the various attributes which specify a set of transformations, such as
-the <a>'transform'</a> property which is available for many of SVG's elements.
-</p>
-
+the <a>'transform'</a> property which is available for many of SVG's elements.</p>
<p><a>SVGTransformList</a> has the same attributes and methods as other
SVGxxxList interfaces. Implementers may consider using a single base class
-to implement the various SVGxxxList interfaces.
-</p>
-
+to implement the various SVGxxxList interfaces.</p>
+
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGTransformList</a> object is all non-negative integers less than
+the length of the list.</p>
<p id="ReadOnlyTransformList">An <a>SVGTransformList</a> object can be designated as <em>read only</em>,
which means that attempts to modify the object will result in an exception
-being thrown, as described below.
-</p>
+being thrown, as described below.</p>
+
<pre class="idl">interface <b>SVGTransformList</b> {
+ readonly attribute unsigned long <a href="coords.html#__svg__SVGTransformList__length">length</a>;
readonly attribute unsigned long <a href="coords.html#__svg__SVGTransformList__numberOfItems">numberOfItems</a>;
void <a href="coords.html#__svg__SVGTransformList__clear">clear</a>();
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__initialize">initialize</a>(<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> newItem);
- <a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__getItem">getItem</a>(unsigned long index);
+ getter <a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__getItem">getItem</a>(unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__insertItemBefore">insertItemBefore</a>(<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> newItem, unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__replaceItem">replaceItem</a>(<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> newItem, unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__removeItem">removeItem</a>(unsigned long index);
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__appendItem">appendItem</a>(<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> newItem);
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__createSVGTransformFromMatrix">createSVGTransformFromMatrix</a>(<a class="idlinterface" href="coords.html#InterfaceSVGMatrix">SVGMatrix</a> matrix);
<a class="idlinterface" href="coords.html#InterfaceSVGTransform">SVGTransform</a> <a href="coords.html#__svg__SVGTransformList__consolidate">consolidate</a>();
+ <a href="#__svg__SVGTransformList__setter">setter</a> void (unsigned long index, <a>SVGTransform</a> newItem);
};</pre>
<dl class="interface">
@@ -2725,12 +2834,14 @@
<dd>
<dl class="attributes">
+<dt id="__svg__SVGTransformList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+<dd class="attribute">
+ <div>The number of items in the list.</div>
+</dd>
+
<dt id="__svg__SVGTransformList__numberOfItems" class="attribute first-child"><b>numberOfItems</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
<dd class="attribute">
-<div>
-The number of items in the list.
-
-</div>
+ <div>The number of items in the list.</div>
</dd>
</dl>
</dd>
@@ -3136,6 +3247,11 @@
</dd>
</dl>
</dd>
+<dt id="__svg__SVGTransformList__setter" class="operation"><b>setter</b> void (unsigned long <var>index</var>, <a>SVGTransform</a> <var>newItem</var>)</dt>
+<dd class="operation"><div>Replaces the item at index <var>index</var> with <var>newItem</var>.
+If the list is <a href="#ReadOnlyTransformList">read only</a>, then a
+<a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#nomodificationallowederror">NoModificationAllowedError</a>
+is thrown.</div></dd>
</dl>
</dd>
</dl>
--- a/master/definitions.xml Fri Sep 07 16:16:40 2012 +1000
+++ b/master/definitions.xml Wed Nov 28 16:47:02 2012 +1100
@@ -167,6 +167,7 @@
href='struct.html#DescElement'
contentmodel='any'
attributecategories='core, style'
+ attributes='lang'
interfaces='SVGDescElement'/>
<element
@@ -705,6 +706,7 @@
href='struct.html#TitleElement'
contentmodel='any'
attributecategories='core, style'
+ attributes='lang'
interfaces='SVGTitleElement'/>
<element
@@ -764,7 +766,7 @@
<!-- ... element categories ............................................ -->
- <elementcategory name='animation' href='intro.html#TermAnimationElement' elements='animate, animateColor, animateMotion, animateTransform, set'/>
+ <elementcategory name='animation' href='intro.html#TermAnimationElement' elements='animate, animateColor, animateMotion, animateTransform, discard, set'/>
<elementcategory name='container' href='intro.html#TermContainerElement' elements='svg, g, defs, symbol, mask, pattern, marker, a, switch, glyph, missing-glyph'/>
<elementcategory name='descriptive' href='intro.html#TermDescriptiveElement' elements='desc, title, metadata'/>
<elementcategory name='gradient' href='intro.html#TermGradientElement' elements='linearGradient, radialGradient, meshGradient'/>
@@ -785,6 +787,9 @@
their 'attribute' attribute.
-->
+ <!-- attributes common to both desc and title -->
+ <attribute name='lang' elements='desc, title' href='fonts.html#GlyphElementLangAttribute'/>
+
<!-- attributes common to both glyph and missing-glyph -->
<attribute name='d' elements='glyph, missing-glyph' href='fonts.html#GlyphElementDAttribute'/>
<attribute name='horiz-adv-x' elements='glyph, missing-glyph' href='fonts.html#GlyphElementHorizAdvXAttribute'/>
@@ -1057,6 +1062,7 @@
<interface name='SVGLocatableElement' href='types.html#InterfaceSVGLocatableElement'/>
<interface name='SVGTransformableElement' href='types.html#InterfaceSVGTransformableElement'/>
<interface name='SVGGraphicsElement' href='types.html#InterfaceSVGGraphicsElement'/>
+ <interface name='SVGGeometryElement' href='types.html#InterfaceSVGGeometryElement'/>
<interface name='SVGDefinitionElement' href='types.html#InterfaceSVGDefinitionElement'/>
<interface name='SVGTests' href='types.html#InterfaceSVGTests'/>
<interface name='SVGURIReference' href='types.html#InterfaceSVGURIReference'/>
@@ -1108,7 +1114,10 @@
<interface name='SVGGlyphRefElement' href='text.html#InterfaceSVGGlyphRefElement'/>
<interface name='SVGTextContentElement' href='text.html#InterfaceSVGTextContentElement'/>
<interface name='SVGTextPositioningElement' href='text.html#InterfaceSVGTextPositioningElement'/>
+ <interface name='SVGMarkableElement' href='painting.html#InterfaceSVGMarkableElement'/>
<interface name='SVGMarkerElement' href='painting.html#InterfaceSVGMarkerElement'/>
+ <interface name='SVGMarkerInstance' href='painting.html#InterfaceSVGMarkerInstance'/>
+ <interface name='SVGMarkerList' href='painting.html#InterfaceSVGMarkerList'/>
<interface name='SVGColorProfileElement' href='color.html#InterfaceSVGColorProfileElement'/>
<interface name='SVGColorProfileRule' href='color.html#InterfaceSVGColorProfileRule'/>
<interface name='SVGLinearGradientElement' href='pservers.html#InterfaceSVGLinearGradientElement'/>
@@ -1146,6 +1155,7 @@
<interface name='SVGSolidColorElement' href='pservers.html#InterfaceSVGSolidColorElement'/>
<!-- ... grammar symbols ................................................ -->
+ <symbol name='align' href='coords.html#DataTypeAlign'/>
<symbol name='angle' href='types.html#DataTypeAngle'/>
<symbol name='anything' href='types.html#DataTypeAnything'/>
<symbol name='color' href='types.html#DataTypeColor'/>
@@ -1259,7 +1269,8 @@
<term name='hit-testing' href='intro.html#TermHitTesting'/>
<term name='invalid' href='intro.html#TermInvalidValue'/>
<term name='invalid value' href='intro.html#TermInvalidValue'/>
- <term name='Lacuna value' href='intro.html#TermLacunaValue'/>
+ <term name='lacuna value' href='intro.html#TermLacunaValue'/>
+ <term name='lacuna values' href='intro.html#TermLacunaValue'/>
<term name='Paint' href='intro.html#TermPaint'/>
<term name='paint' href='intro.html#TermPaint'/>
<term name='painting' href='intro.html#TermPaint'/>
@@ -1333,6 +1344,7 @@
<interface name='RGBColor' href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/css.html#CSS-RGBColor'/>
<interface name='AbstractView' href='http://www.w3.org/TR/DOM-Level-2-Views/views.html#Views-AbstractView'/>
<interface name='EmbeddingElement' href='http://www.w3.org/TR/Window/#embeddingelt'/>
+ <interface name='Window' href='http://www.w3.org/TR/2012/WD-html5-20120329/browsers.html#the-window-object'/>
<!-- ... terms .......................................................... -->
<term name='compound selector' href='http://dev.w3.org/csswg/selectors4/#compound'/>
@@ -1346,5 +1358,6 @@
<!-- ... grammar symbols ................................................ -->
<symbol name='identifier' href='http://www.w3.org/TR/2012/WD-css3-values-20120308/#identifier'/>
+ <symbol name='transform-function' href='http://dev.w3.org/csswg/css3-transforms/#transform-functions'/>
</definitions>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/master/idlindex.html Wed Nov 28 16:47:02 2012 +1100
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional+edit//EN" "xhtml1-transitional+edit.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:edit="http://xmlns.grorg.org/SVGT12NG/">
+<head>
+ <title>IDL Index</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <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"/>
+</head>
+<body class="ready-for-wg-review">
+
+<h1>IDL Index</h1>
+
+<p class="normativity"><em>This appendix is informative, not normative.</em></p>
+
+<p>The following is a list of all IDL interfaces defined in this specification:</p>
+
+<!-- It would be nice to automatically generate this. -->
+
+<ul>
+ <li><a>GetSVGDocument</a></li>
+ <li><a>SVGAElement</a></li>
+ <li><a>SVGAltGlyphDefElement</a></li>
+ <li><a>SVGAltGlyphElement</a></li>
+ <li><a>SVGAltGlyphItemElement</a></li>
+ <li><a>SVGAngle</a></li>
+ <li><a>SVGAnimateColorElement</a></li>
+ <li><a>SVGAnimateElement</a></li>
+ <li><a>SVGAnimateMotionElement</a></li>
+ <li><a>SVGAnimateTransformElement</a></li>
+ <li><a>SVGAnimatedAngle</a></li>
+ <li><a>SVGAnimatedBoolean</a></li>
+ <li><a>SVGAnimatedEnumeration</a></li>
+ <li><a>SVGAnimatedInteger</a></li>
+ <li><a>SVGAnimatedLength</a></li>
+ <li><a>SVGAnimatedLengthList</a></li>
+ <li><a>SVGAnimatedNumber</a></li>
+ <li><a>SVGAnimatedNumberList</a></li>
+ <li><a>SVGAnimatedPathData</a></li>
+ <li><a>SVGAnimatedPoints</a></li>
+ <li><a>SVGAnimatedPreserveAspectRatio</a></li>
+ <li><a>SVGAnimatedRect</a></li>
+ <li><a>SVGAnimatedString</a></li>
+ <li><a>SVGAnimatedTransformList</a></li>
+ <li><a>SVGAnimationElement</a></li>
+ <li><a>SVGCSSRule</a></li>
+ <li><a>SVGCircleElement</a></li>
+ <li><a>SVGClipPathElement</a></li>
+ <li><a>SVGColor</a></li>
+ <li><a>SVGColorProfileElement</a></li>
+ <li><a>SVGColorProfileRule</a></li>
+ <li><a>SVGCursorElement</a></li>
+ <li><a>SVGDefinitionElement</a></li>
+ <li><a>SVGDefsElement</a></li>
+ <li><a>SVGDescElement</a></li>
+ <li><a>SVGDocument</a></li>
+ <li><a>SVGElement</a></li>
+ <li><a>SVGElementInstance</a></li>
+ <li><a>SVGElementInstanceList</a></li>
+ <li><a>SVGEllipseElement</a></li>
+ <li><a>SVGFitToViewBox</a></li>
+ <li><a>SVGFontElement</a></li>
+ <li><a>SVGFontFaceElement</a></li>
+ <li><a>SVGFontFaceFormatElement</a></li>
+ <li><a>SVGFontFaceNameElement</a></li>
+ <li><a>SVGFontFaceSrcElement</a></li>
+ <li><a>SVGFontFaceUriElement</a></li>
+ <li><a>SVGForeignObjectElement</a></li>
+ <li><a>SVGGElement</a></li>
+ <li><a>SVGGeometryElement</a></li>
+ <li><a>SVGGlyphElement</a></li>
+ <li><a>SVGGlyphRefElement</a></li>
+ <li><a>SVGGradientElement</a></li>
+ <li><a>SVGGraphicsElement</a></li>
+ <li><a>SVGHKernElement</a></li>
+ <li><a>SVGICCColor</a></li>
+ <li><a>SVGImageElement</a></li>
+ <li><a>SVGLength</a></li>
+ <li><a>SVGLengthList</a></li>
+ <li><a>SVGLineElement</a></li>
+ <li><a>SVGLinearGradientElement</a></li>
+ <li><a>SVGLocatableElement</a></li>
+ <li><a>SVGMPathElement</a></li>
+ <li><a>SVGMarkableElement</a></li>
+ <li><a>SVGMarkerElement</a></li>
+ <li><a>SVGMarkerInstance</a></li>
+ <li><a>SVGMarkerList</a></li>
+ <li><a>SVGMaskElement</a></li>
+ <li><a>SVGMatrix</a></li>
+ <li><a>SVGMeshGradientElement</a></li>
+ <li><a>SVGMeshPatchElement</a></li>
+ <li><a>SVGMeshRowElement</a></li>
+ <li><a>SVGMetadataElement</a></li>
+ <li><a>SVGMissingGlyphElement</a></li>
+ <li><a>SVGNumber</a></li>
+ <li><a>SVGNumberList</a></li>
+ <li><a>SVGPaint</a></li>
+ <li><a>SVGPathElement</a></li>
+ <li><a>SVGPathSeg</a></li>
+ <li><a>SVGPathSegArcAbs</a></li>
+ <li><a>SVGPathSegArcRel</a></li>
+ <li><a>SVGPathSegClosePath</a></li>
+ <li><a>SVGPathSegCurvetoCubicAbs</a></li>
+ <li><a>SVGPathSegCurvetoCubicRel</a></li>
+ <li><a>SVGPathSegCurvetoCubicSmoothAbs</a></li>
+ <li><a>SVGPathSegCurvetoCubicSmoothRel</a></li>
+ <li><a>SVGPathSegCurvetoQuadraticAbs</a></li>
+ <li><a>SVGPathSegCurvetoQuadraticRel</a></li>
+ <li><a>SVGPathSegCurvetoQuadraticSmoothAbs</a></li>
+ <li><a>SVGPathSegCurvetoQuadraticSmoothRel</a></li>
+ <li><a>SVGPathSegLinetoAbs</a></li>
+ <li><a>SVGPathSegLinetoHorizontalAbs</a></li>
+ <li><a>SVGPathSegLinetoHorizontalRel</a></li>
+ <li><a>SVGPathSegLinetoRel</a></li>
+ <li><a>SVGPathSegLinetoVerticalAbs</a></li>
+ <li><a>SVGPathSegLinetoVerticalRel</a></li>
+ <li><a>SVGPathSegList</a></li>
+ <li><a>SVGPathSegMovetoAbs</a></li>
+ <li><a>SVGPathSegMovetoRel</a></li>
+ <li><a>SVGPatternElement</a></li>
+ <li><a>SVGPoint</a></li>
+ <li><a>SVGPointList</a></li>
+ <li><a>SVGPolygonElement</a></li>
+ <li><a>SVGPolylineElement</a></li>
+ <li><a>SVGPreserveAspectRatio</a></li>
+ <li><a>SVGRadialGradientElement</a></li>
+ <li><a>SVGRect</a></li>
+ <li><a>SVGRectElement</a></li>
+ <li><a>SVGRenderingIntent</a></li>
+ <li><a>SVGSVGElement</a></li>
+ <li><a>SVGScriptElement</a></li>
+ <li><a>SVGSetElement</a></li>
+ <li><a>SVGSolidColorElement</a></li>
+ <li><a>SVGStopElement</a></li>
+ <li><a>SVGStringList</a></li>
+ <li><a>SVGStyleElement</a></li>
+ <li><a>SVGSwitchElement</a></li>
+ <li><a>SVGSymbolElement</a></li>
+ <li><a>SVGTRefElement</a></li>
+ <li><a>SVGTSpanElement</a></li>
+ <li><a>SVGTests</a></li>
+ <li><a>SVGTextContentElement</a></li>
+ <li><a>SVGTextElement</a></li>
+ <li><a>SVGTextPathElement</a></li>
+ <li><a>SVGTextPositioningElement</a></li>
+ <li><a>SVGTitleElement</a></li>
+ <li><a>SVGTransform</a></li>
+ <li><a>SVGTransformList</a></li>
+ <li><a>SVGTransformableElement</a></li>
+ <li><a>SVGURIReference</a></li>
+ <li><a>SVGUnitTypes</a></li>
+ <li><a>SVGUseElement</a></li>
+ <li><a>SVGVKernElement</a></li>
+ <li><a>SVGViewElement</a></li>
+ <li><a>SVGViewSpec</a></li>
+ <li><a>SVGZoomAndPan</a></li>
+ <li><a>SVGZoomEvent</a></li>
+ <li><a>TimeEvent</a></li>
+</ul>
+
+</body>
+</html>
Binary file master/images/pservers/radial_gradient_dimensions.png has changed
--- a/master/images/pservers/radial_gradient_dimensions.svg Fri Sep 07 16:16:40 2012 +1000
+++ b/master/images/pservers/radial_gradient_dimensions.svg Wed Nov 28 16:47:02 2012 +1100
@@ -23,13 +23,10 @@
<linearGradient
id="linearGradient8358">
<stop
- style="stop-color:#ffffff"
+ style="stop-color:#bbffee"
offset="0" />
<stop
- style="stop-color:#ffffff"
- offset="0.5" />
- <stop
- style="stop-color:#aa88ff"
+ style="stop-color:#bbffee"
offset="0.5" />
<stop
style="stop-color:#ffddcc"
--- a/master/images/pservers/radial_gradient_focus.svg Fri Sep 07 16:16:40 2012 +1000
+++ b/master/images/pservers/radial_gradient_focus.svg Wed Nov 28 16:47:02 2012 +1100
@@ -3,7 +3,7 @@
version="1.1"
viewBox="0 0 600 300" >
<title>Radial gradient with focus to the right of the center.</title>
- <desc>Demmonstrates a radial gradients with the focus placed to the right of the center.. </desc>
+ <desc>Demonstrates a radial gradients with the focus placed to the right of the center.. </desc>
<defs>
<radialGradient id="MyGradient1"
Binary file master/images/pservers/radial_gradient_focus_reflect.png has changed
--- a/master/intro.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/intro.html Wed Nov 28 16:47:02 2012 +1100
@@ -74,6 +74,8 @@
SVG files have the extension <code>".svgz"</code> (all
lowercase) on all platforms.</p>
+<p class="issue">Should we mention <code>.svg.gz</code>?</p>
+
<p>It is recommended that SVG files stored on Macintosh HFS
file systems be given a file type of <code>"svg "</code>
(all lowercase, with a space character as the fourth letter).
@@ -81,6 +83,8 @@
SVG files stored on Macintosh HFS file systems be given a file
type of <code>"svgz"</code> (all lowercase).</p>
+<p class="issue">HFS file types are probably not relevant any more.</p>
+
<div class="ready-for-wider-review">
<h2 id="Namespace">SVG namespace and DTD</h2>
@@ -95,6 +99,11 @@
<h2 id="W3CCompatibility">Compatibility with other standards efforts</h2>
+<p class="issue">This section doesn't sound like it serves any real
+purpose other than self promotion for how well it utilizes other
+specifications and frameworks. I think it can be dropped, or at least
+condensed into a couple of sentences.</p>
+
<p>SVG leverages and integrates with other W3C specifications
and standards efforts. By leveraging and conforming to other
standards, SVG becomes more powerful and makes it easier for
@@ -218,6 +227,13 @@
<h2 id="Definitions">Definitions</h2>
+<p class="issue">Does it make sense to have a glossary here? How
+useful is it compared to defining terms where they make most
+sense in the body of the specification?</p>
+
+<p class="issue">There should be a separate section that lists
+element and attribute categories and their members.</p>
+
<dl class='definitions'>
<dt id="TermAnimationElement">animation element</dt>
<dd>An animation element is an element that can be used to animate
--- a/master/masking.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/masking.html Wed Nov 28 16:47:02 2012 +1100
@@ -17,39 +17,7 @@
<h1>Clipping, Masking and Compositing</h1>
-<h2 id="Introduction">Introduction</h2>
-
-<p>SVG supports the following clipping/masking features:</p>
-
-<ul>
- <li><a href="#ClippingPaths">clipping paths</a>, which uses
- any combination of <a>'path'</a>, <a>'text'</a> and
- <a>basic shapes</a> to serve as
- the outline of a (in the absence of anti-aliasing) 1-bit
- mask, where everything on the "inside" of the outline is
- allowed to show through but everything on the outside is
- masked out</li>
-
- <li><a href="#Masking">masks</a>, which are
- <a>container elements</a>
- which can contain <a>graphics elements</a>
- or other container elements which define a set of graphics
- that is to be used as a semi-transparent mask for compositing
- foreground objects into the current background.</li>
-</ul>
-
-<p>One key distinction between a <a href="#ClippingPaths">clipping path</a>
-and a <a href="#Masking">mask</a> is that clipping paths are hard masks
-(i.e., the silhouette consists of either fully opaque pixels or
-fully transparent pixels, with the possible exception of
-anti-aliasing along the edge of the silhouette) whereas masks
-consist of an image where each pixel value indicates the degree
-of transparency vs. opacity. In a mask, each pixel value can
-range from fully transparent to fully opaque.</p>
-
-<p>SVG supports only simple alpha blending compositing (see
-<a href="#SimpleAlphaBlending">Simple Alpha Compositing</a>).</p>
-
+<div class="ready-for-wider-review">
<h2 id="SimpleAlphaBlending">Simple alpha compositing</h2>
<div class="annotation svg2-requirement">
@@ -101,38 +69,17 @@
<li><a>'color-rendering'</a></li>
</ul>
-<h2 id="ClippingPaths">Clipping paths</h2>
-
-<p class="note">
-Note that this section may be moved to a separate CSS Masking specification in
-a future draft.
-</p>
+<p class="note">Support for simple alpha compositing is mandatory.
+A future module <a href="https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html">Compositing and Blending</a>
+will specify additional compositing and blending operations.</p>
+</div>
-<p>The clipping path restricts the region to which paint can be
-applied. Conceptually, any parts of the drawing that lie
-outside of the region bounded by the currently active clipping
-path are not drawn. A clipping path can be thought of as a mask
-wherein those pixels outside the clipping path are black with
-an alpha value of zero and those pixels inside the clipping
-path are white with an alpha value of one (with the possible
-exception of anti-aliasing along the edge of the
-silhouette).</p>
-
-<h3 id="InitialClippingPath">The initial clipping path</h3>
-
-<p>When an <a>'svg'</a> element is either the root element in the
-document or is embedded within a document whose layout is determined
-according to the layout rules of CSS or XSL, then the user agent must
-establish an initial clipping path for the SVG document fragment. The
-<a>'overflow'</a> and <a>'clip'</a> properties along with additional SVG
-user agent processing rules determine the initial clipping path which
-the user agent establishes for the SVG document fragment:</p>
-
-<h3 id="OverflowAndClipProperties">The <span class="property">'overflow'</span>
-and <span class="property">'clip'</span> properties</h3>
+<h2 id="OverflowAndClipProperties">The <span class="property">'overflow'</span>
+property</h2>
<p class="issue">This property definition table need to be replaced
-with a link to css3-box.</p>
+with a link to <a href="http://www.w3.org/TR/css3-box/">CSS3-box</a>.
+<br/>Dirk: Probably not. It is a WD, not updated for 5 years.</p>
<table class="propdef">
<tr>
@@ -180,6 +127,9 @@
([<a href="refs.html#ref-CSS21">CSS21</a>], section 11.1.1);
however, the following additional points apply:</p>
+<p class="issue">We need to define how 'overflow-x' and 'overflow-y' are
+going to work in the furture. Sadly, these properties belong to CSS3-box.</p>
+
<ul>
<li>The <a>'overflow'</a> property applies to
<a href="coords.html#ElementsThatEstablishViewports">elements that establish new viewports</a>
@@ -238,61 +188,6 @@
establishes a new viewport</a> and each <a>'pattern'</a> and
<a>'marker element'</a> element.</p>
-<p>For related information, see <a href="masking.html#AutoClipAtViewportNotViewBox">Clip
-to viewport vs. clip to <span class="attr-name">'viewBox'</span></a>.</p>
-
-<p class="issue">This property definition table need to be replaced
-with a link to CSS 2.1</p>
-
-<table class="propdef">
- <tr>
- <th>Name:</th>
- <td><dfn id="ClipProperty">clip</dfn></td>
- </tr>
- <tr>
- <th>Value:</th>
- <td><shape> | auto</td>
- </tr>
- <tr>
- <th>Initial:</th>
- <td>auto</td>
- </tr>
- <tr>
- <th>Applies to:</th>
- <td><a href="coords.html#ElementsThatEstablishViewports">elements
- which establish a new viewport</a>, <a>'pattern'</a> elements
- and <a>'marker element'</a> elements</td>
- </tr>
- <tr>
- <th>Inherited:</th>
- <td>no</td>
- </tr>
- <tr>
- <th>Percentages:</th>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Media:</th>
- <td>visual</td>
- </tr>
- <tr>
- <th>Computed value:</th>
- <td>as specified</td>
- </tr>
- <tr>
- <th><a>Animatable</a>:</th>
- <td>yes</td>
- </tr>
-</table>
-
-<p>The <a>'clip'</a> property has the same parameter values
-<a href="http://www.w3.org/TR/2011/REC-CSS2-20110607/visufx.html#clipping">as defined in CSS 2.1</a>
-([<a href="refs.html#ref-CSS21">CSS21</a>], section 11.1.2).
-Unitless values, which indicate current user coordinates, are
-permitted on the coordinate values on the <shape>. The
-value of <span class='prop-value'>auto</span> defines a clipping path along
-the bounds of the viewport created by the given element.</p>
-
<h3 id="AutoClipAtViewportNotViewBox">Clip to viewport vs. clip to
<span class="attr-name">'viewBox'</span></h3>
@@ -314,715 +209,41 @@
<left>, whereas <a>'viewBox'</a> takes values <min-x>,
<min-y>, <width> and <height>.)</p>
-<h3 id="EstablishingANewClippingPath">Establishing a new clipping path: the <span class="element-name">'clipPath'</span> element</h3>
-
-<edit:with element='clipPath'>
-
-<p id="ClipPathElement">A clipping path is defined with a <a>'clipPath'</a>
-element. A clipping path is used/referenced using the <a>'clip-path'</a>
-property.</p>
-
-<p>A <a>'clipPath'</a> element can contain <a>'path'</a> elements,
-<a>'text'</a> elements, <a href="shapes.html">basic shapes</a> (such as
-<a>'circle'</a>) or a <a>'use'</a> element. If a <a>'use'</a> element is a
-child of a <a>'clipPath'</a> element, it must directly reference
-<a>'path'</a>, <a>'text'</a> or <a href="shapes.html">basic shape</a> elements.
-Indirect references are an error (see
-<a href="implnote.html#ErrorProcessing">Error processing</a>).</p>
-
-<p>The raw geometry of each child element exclusive of rendering properties
-such as <a>'fill'</a>, <a>'stroke'</a>, <a>'stroke-width'</a> within a
-<a>'clipPath'</a> conceptually defines a 1-bit mask (with the possible
-exception of anti-aliasing along the edge of the geometry) which represents
-the silhouette of the graphics associated with that element. Anything outside
-the outline of the object is masked out. If a child element is
-made invisible by <a>'display'</a> or <a>'visibility'</a> it does not contribute
-to the clipping path. When the <a>'clipPath'</a> element
-contains multiple child elements, the silhouettes of the child elements are
-logically OR'd together to create a single silhouette which is then used to
-restrict the region onto which paint can be applied. Thus, a point is inside
-the clipping path if it is inside any of the children of the
-<a>'clipPath'</a>.</p>
-
-<p>For a given graphics element, the actual clipping path used
-will be the intersection of the clipping path specified by its
-<a>'clip-path'</a> property (if any) with any clipping paths on its
-ancestors, as specified by the <a>'clip-path'</a> property on the
-ancestor elements, or by the <a>'overflow'</a> property on ancestor
-<a href="coords.html#ElementsThatEstablishViewports">elements
-which establish a new viewport</a>. Also, see the discussion of
-<a href="masking.html#InitialClippingPath">the initial clipping path</a>.)</p>
-
-<p>A couple of notes:</p>
-
-<ul>
- <li>The <a>'clipPath'</a> element itself and its child elements do
- <em>not</em> inherit clipping paths from the ancestors of the
- <a>'clipPath'</a> element.</li>
-
- <li>The <a>'clipPath'</a> element or any of its children can specify
- property <a>'clip-path'</a>.<br /> If a valid <a>'clip-path'</a> reference
- is placed on a <a>'clipPath'</a> element, the resulting clipping path is the
- intersection of the contents of the <a>'clipPath'</a> element with the
- referenced clipping path.<br />
- If a valid <a>'clip-path'</a> reference is placed on one of the children of
- a <a>'clipPath'</a> element, then the given child element is clipped by the
- referenced clipping path before OR'ing the silhouette of the child element
- with the silhouettes of the other child elements.</li>
-
- <li>An empty clipping path will completely clip away the element that had the
- <a>'clip-path'</a> property applied.</li>
-</ul>
-
-<edit:elementsummary name='clipPath'/>
-
- <div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="ClipPathElementClipPathUnitsAttribute"><span
- class="adef">clipPathUnits</span> =
- "<em>userSpaceOnUse</em> | <em>objectBoundingBox</em>"</dt>
- <dd>Defines the coordinate system for the contents of the
- <a>'clipPath'</a>.<br />
- If <span class="attr-value">clipPathUnits="userSpaceOnUse"</span>,
- the contents of the <a>'clipPath'</a> represent values in
- the current user coordinate system in place at the time
- when the <a>'clipPath'</a>
- element is referenced (i.e., the user coordinate system for
- the element referencing the <a>'clipPath'</a> element via the
- <a>'clip-path'</a> property).<br />
- If <span class="attr-value">clipPathUnits="objectBoundingBox"</span>,
- then the user coordinate system for the contents of the
- <a>'clipPath'</a> element is established using the bounding box of
- the element to which the clipping path is applied (see <a
- href="coords.html#ObjectBoundingBox">Object bounding box
- units</a>).<br />
- If attribute <a>'clipPathUnits'</a>
- is not specified, then the effect is as if a value of <span
- class="attr-value">'userSpaceOnUse'</span> were
- specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- </dl>
- </div>
-
-<p><a href="styling.html#SVGStylingProperties">Properties</a> inherit into the
-<a>'clipPath'</a> element from its ancestors; properties do <em>not</em>
-inherit from the element referencing the <a>'clipPath'</a> element.</p>
-
-<p><a>'clipPath'</a> elements are never rendered directly; their only usage is
-as something that can be referenced using the <a>'clip-path'</a> property. The
-<a>'display'</a> property does not apply to the <a>'clipPath'</a> element;
-thus, <a>'clipPath'</a> elements are not directly rendered even if the
-<a>'display'</a> property is set to a value other than
-<span class="prop-value">none</span>, and <a>'clipPath'</a> elements are
-available for referencing even when the <a>'display'</a> property on the
-<a>'clipPath'</a> element or any of its ancestors is set to
-<span class="prop-value">none</span>.</p>
+<h3 id="InitialClippingPath">The initial clipping path</h3>
-<table class="propdef">
- <tr>
- <th>Name:</th>
- <td><dfn id="ClipPathProperty">clip-path</dfn></td>
- </tr>
- <tr>
- <th>Value:</th>
- <td><a><funciri></a> | none</td>
- </tr>
- <tr>
- <th>Initial:</th>
- <td>none</td>
- </tr>
- <tr>
- <th>Applies to:</th>
- <td><a>container elements</a>, <a>graphics elements</a>
- and <a>'clipPath'</a></td>
- </tr>
- <tr>
- <th>Inherited:</th>
- <td>no</td>
- </tr>
- <tr>
- <th>Percentages:</th>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Media:</th>
- <td>visual</td>
- </tr>
- <tr>
- <th>Computed value:</th>
- <td>as specified, but with <a><funciri></a> values made absolute</td>
- </tr>
- <tr>
- <th><a>Animatable</a>:</th>
- <td>yes</td>
- </tr>
-</table>
-
-<dl>
- <dt><span class="prop-value"><a href="types.html#DataTypeFuncIRI"><funciri></a></span></dt>
- <dd>An <a>IRI reference</a> to another graphical object within the same SVG
- document fragment which will be used as the clipping path. If the
- <a>IRI reference</a> is not valid (e.g it points to an object that doesn't
- exist or the object is not a <a>'clipPath'</a> element) the <a>'clip-path'</a>
- property must be treated as if it hadn't been specified.</dd>
-</dl>
-
-<table class="propdef">
- <tr>
- <th>Name:</th>
- <td><dfn id="ClipRuleProperty">clip-rule</dfn></td>
- </tr>
- <tr>
- <th>Value:</th>
- <td>nonzero | evenodd</td>
- </tr>
- <tr>
- <th>Initial:</th>
- <td>nonzero</td>
- </tr>
- <tr>
- <th>Applies to:</th>
- <td>graphics elements within a <a>'clipPath'</a> element</td>
- </tr>
- <tr>
- <th>Inherited:</th>
- <td>yes</td>
- </tr>
- <tr>
- <th>Percentages:</th>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Media:</th>
- <td>visual</td>
- </tr>
- <tr>
- <th>Computed value:</th>
- <td>as specified</td>
- </tr>
- <tr>
- <th><a>Animatable</a>:</th>
- <td>yes</td>
- </tr>
-</table>
-
-<dl>
- <dt><span class="prop-value">nonzero</span></dt>
- <dd>See description of <a>'fill-rule'</a> property.</dd>
-
- <dt><span class="prop-value">evenodd</span></dt>
- <dd>See description of <a>'fill-rule'</a> property.</dd>
-</dl>
-
-<p>The <a>'clip-rule'</a> property only applies to graphics elements that are
-contained within a <a>'clipPath'</a> element. The following fragment of code
-will cause an evenodd clipping rule to be applied to the clipping path because
-<a>'clip-rule'</a> is specified on the <a>'path'</a> element that defines the
-clipping shape:</p>
-
-<pre><![CDATA[
-<g clip-rule="nonzero">
- <clipPath id="MyClip">
- <path d="..." clip-rule="evenodd" />
- </clipPath>
- <rect clip-path="url(#MyClip)" ... />
-</g>
-]]></pre>
-
-<p>whereas the following fragment of code will <em>not</em> cause an
-evenodd clipping rule to be applied because the <a>'clip-rule'</a> is
-specified on the referencing element, not on the object defining the
-clipping shape:</p>
-
-<pre><![CDATA[
-<g clip-rule="nonzero">
- <clipPath id="MyClip">
- <path d="..." />
- </clipPath>
- <rect clip-path="url(#MyClip)" clip-rule="evenodd" ... />
-</g>
-]]></pre>
-
-<h3 id="clipPath-geometry">Clipping paths, geometry, and pointer events</h3>
-
-<p>A clipping path is conceptually equivalent to a custom viewport for
-the referencing element. Thus, it affects the rendering of an element,
-but not the element's inherent geometry. The bounding box of a clipped
-element (that is, an element which references a <a>'clipPath'</a>
-element via a <a>'clip-path'</a> property, or a child of the
-referencing element) must remain the same as if it were not clipped.</p>
-
-<p>By default, <a href="interact.html#PointerEventsProperty">pointer events</a>
-must not be dispatched on the clipped (non-visible) regions of a shape. For
-example, a circle with a radius of 10 which is clipped to a circle with a radius
-of 5 will not receive <span class="event-name">'click'</span> events outside the
-smaller radius. Later versions of SVG may define new properties to enable
-fine-grained control over the interactions between hit testing and clipping.</p>
-
-</edit:with>
+<p>When an <a>'svg'</a> element is either the root element in the
+document or is embedded within a document whose layout is determined
+according to the layout rules of CSS or XSL, then the user agent must
+establish an initial clipping path for the SVG document fragment. The
+<a>'overflow'</a> property along with additional SVG
+user agent processing rules determine the initial clipping path which
+the user agent establishes for the SVG document fragment:</p>
<div class="ready-for-wider-review">
-
-<h2 id="Masking">Masking</h2>
-
-<p class="note">
-Note that this section may be moved to a separate CSS Masking specification in
-a future draft.
-</p>
-
-<p>In SVG, it is possible to specify another graphics element or file
-to be used as an alpha mask for compositing the current object into the
-background.</p>
-
-<p>
-A mask is applied using the <a>'mask property'</a> property.
-The mask source may be defined using a <a>'mask element'</a> element.
-Alternatively, the <a>'mask property'</a> property may refer to a CSS image or
-SVG <a href="pservers.html">paint server</a>.
-</p>
-
-<p>
-The effect of applying a mask is as if the mask source elements are
-rendered into an offscreen image which has been initialized to transparent
-black.
-The graphical object to which the mask is applied
-will be painted onto the background through the
-mask, thus completely or partially masking out parts of the graphical
-object.</p>
-
-<p id="ExampleMask01"><span class="example-ref">Example mask01</span> uses
-an image to mask a rectangle.</p>
-
-<edit:example href='images/masking/mask01.svg' name='mask01' description='blue text masked with gradient against red background' image='yes' link='yes'/>
-
-<h3 id="mask-property">The <span class="property">'mask'</span> property</h3>
-
-<table class="propdef">
- <tr>
- <th>Name:</th>
- <td><dfn id="MaskProperty">mask</dfn></td>
- </tr>
- <tr>
- <th>Value:</th>
- <td>[ <a><mask-source></a> [ luminance | alpha | auto ]? ]
- | none </td>
- </tr>
- <tr>
- <th>Initial:</th>
- <td>none</td>
- </tr>
- <tr>
- <th>Applies to:</th>
- <td><a>container elements</a> and <a>graphics elements</a></td>
- </tr>
- <tr>
- <th>Inherited:</th>
- <td>no</td>
- </tr>
- <tr>
- <th>Percentages:</th>
- <td>N/A</td>
- </tr>
- <tr>
- <th>Media:</th>
- <td>visual</td>
- </tr>
- <tr>
- <th>Computed value:</th>
- <td>A <a><mask-source></a> followed by a mask type
- (one of <span class="prop-value">luminance</span>,
- <span class="prop-value">alpha</span>, or
- <span class="prop-value">auto</span>),
- or otherwise the keyword <span class="prop-value">none</span>.</td>
- </tr>
- <tr>
- <th><a>Animatable</a>:</th>
- <td>yes</td>
- </tr>
-</table>
-<p>Where:</p>
-<dl>
- <dt id="DataTypeMaskSource"><span class="prop-value"><mask-source></span> =</dt>
- <dd>
- <a><funciri></a> | <a><image></a> | child |
- <a><child-selector></a>
- </dd>
-</dl>
-
-<p class="note">
-The ability for the <a>'mask property'</a> property to reference a child element
-without an ID reference, or a CSS <a><image></a> is new in SVG 2.
-</p>
-
-<p>
-The meaning of the different <a><mask-source></a> values is as follows:
-</p>
-
-<dl>
- <dt><span class="prop-value"><a href="types.html#DataTypeFuncIRI"><funciri></a></span></dt>
- <dd>An <a>IRI reference</a> to a <a>'mask element'</a> element or <a
- href="pservers.html">paint server</a> element.</dd>
- <dt><span class="prop-value"><a href="types.html#DataTypeImage"><image></a></span></dt>
- <dd>A CSS image value used to defined the contents of the offscreen buffer
- used for masking.
- As per the definition of <a><image></a> this value may reference bitmap
- images, SVG images, gradients and other graphical elements.
- <p class="issue">
- <a><image></a> overlaps with <a><funciri></a> and hence the
- parsing for <span class="prop-value">url(...)</span> needs to be defined
- (e.g. references to elements may only refer to <a>'mask element'</a>
- elements or <a href="pservers.html">paint server</a> elements, whilst <span
- class="prop-value">url(...)</span> values without a fragment identifier are
- processed in usual fashion for CSS Images).
- </p>
- </dd>
- <dt><span class="prop-value">child</span></dt>
- <dd>A keyword to indicate that the last child <a>'mask element'</a>
- element should be used as the mask source. It is equivalent to
- <span class="prop-value">select(mask:last-of-type)</span>.</dd>
- <dt><span class="prop-value"><a href="types.html#DataTypeChildSelector"><child-selector></a></span></dt>
- <dd>A comma-separated list of <a>compound selectors</a> scoped at the element
- to which the <a>'mask property'</a> property applied.
- The first matching element in <a>tree order</a> (as defined in [<a
- href="refs.html#ref-DOM4">DOM4</a>]) as a result of evaluating the list of
- selectors is taken as the mask source.
- If there are no matching elements the mask source is invalid.</dd>
-</dl>
-
-<p>
-If a <a><mask-source></a> is provided, a mask type may also be specified.
-The mask type determines which of the methods described in <a
-href="#MaskValues">Calculating mask values</a> should be used for calculating
-mask values from the mask source.
-</p>
-
-<p>
-If a <a><mask-source></a> is provided without a mask type, the value <span class="prop-value">auto</span> is used.
-</p>
-
-<p>
-If a mask type other than <span class="prop-value">auto</span> is specified
-and the <a><mask-source></a> refers to a <a>'mask element'</a> element
-with a <a>'mask/maskType'</a> attribute, the mask type specified on the <a>'mask
-property'</a> property takes precedence.
-</p>
-
-<p>The possible values for the mask type are as follows:</p>
-
-<dl>
- <dt><span class="prop-value">luminance</span></dt>
- <dd>
- Indicates that the luminance values of the mask source should be used as the
- mask values.
- </dd>
- <dt><span class="prop-value">alpha</span></dt>
- <dd>
- Indicates that the alpha values of the mask source should be used as the mask
- values.
- </dd>
- <dt><span class="prop-value">auto</span></dt>
- <dd>
- If the mask source is a <a>'mask element'</a> element, the method used for
- calculating the mask values is determined by the <a>'mask/maskType'</a>
- attribute on the <a>'mask element'</a> element.
- Otherwise, the alpha values of the mask source should be used as the
- mask values.
- <p class="issue">
- Should the default be <span class="prop-value">luminance</span> instead?
- </p>
- </dd>
-</dl>
-
-<p>
- The <a>lacuna value</a> for the <span class="property">'mask'</span> property
- is <span class="prop-value">'none'</span>.
-</p>
-
-<h3 id="MaskSources">Mask source content</h3>
-
-<p>
-The content and behavior of a mask can be defined using a <a>'mask element'</a>
-element, a <a href="pservers.html">paint server</a> element, or a CSS
-<a><image></a> value.
-</p>
-
-<h4 id="MaskValues">Calculating mask values</h4>
-
-<p class="note">
-The ability to use the alpha of a mask source as the mask values is new
-in SVG 2.
-In SVG 1.1 masks always use the luminance of the mask source as the mask
-values.
-</p>
-
-<p>
-A mask source may be interpreted using one of two different methods with regards
-to calculating the mask values that will be multiplied with the target alpha
-values.
-</p>
-
-<p>
-The first and simplest method of calculating the mask values is to use the alpha
-channel of the mask source.
-In this case the mask value at a given point is simply the value of the alpha channel at that point.
-The color channels do not contribute to the mask value.
-</p>
-
-<p>
-The second method of calculating the mask values is to use the luminance of the mask source.
-In this case the mask value at a given point is computed from the color channel values and alpha channel value using the following procedure.
-</p>
+<h2 id="ClippingAndMasking">Clipping and Masking</h2>
-<ol>
-<li>Compute a luminance value from the color channel values.
- <ul>
- <li>
- If the computed value of <a>'color-interpolation'</a> on the <a>'mask
- element'</a> element is <span class="attr-value">linearRGB</span>, convert the
- original image color values (potentially in the sRGB color space) to the linear
- RGB color space (see <a
- href="painting.html#RenderingHints">Rendering properties</a>).
- </li>
- <li>Then, using non-premultiplied RGB color values, apply the
- luminance-to-alpha coefficients (as defined in the <a>'feColorMatrix'</a>
- filter primitive) to convert the RGB color values to luminance
- values.
- </li>
- </ul>
-</li>
-<li>Multiply the computed luminance value by the corresponding alpha
-value to produce the mask value.</li>
-</ol>
-
-<p>Regardless of the method used, the procedure for calculating
-mask values assumes the content of the mask is a four-channel RGBA graphics
-object.
-For other types of graphics objects, special handling is required as
-follows.</p>
-
-<p>For a three-channel RGB graphics object that is used in a mask (e.g.,
-when referencing a three-channel image file), the effect is as if the object
-were converted into a four-channel RGBA image with the alpha channel
-uniformly set to 1.</p>
-
-<p>For a single-channel image that is used in a mask (e.g., when
-referencing a single-channel grayscale image file), the effect is as if the
-object were converted into a four-channel RGBA image, where the single
-channel from the referenced object is used to compute the three color
-channels and the alpha channel is uniformly set to 1. Note that when
-referencing a grayscale image file, the transfer curve relating the
-encoded grayscale values to linear light values must be taken into
-account when computing the color channels.</p>
-
-<p>Note that SVG <a>'path'</a>s, shapes (e.g., <a>'circle'</a>) and
-<a>'text'</a> are all treated as four-channel RGBA images for the purposes
-of masking operations.</p>
-
-<p>The effect of a mask is identical to what would have happened if
-there were no mask but instead the alpha channel of the given object
-were multiplied with the mask's resulting mask values.</p>
-
-<h4 id="MaskElement">Defining a mask source: the <span class="element-name">'mask'</span> element</h4>
-
-<edit:with element='mask'>
-
-<edit:elementsummary name='mask'/>
+<p>SVG supports the following clipping/masking features:</p>
- <div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="MaskElementMaskUnitsAttribute"><span
- class="adef">maskUnits</span> = "<em>userSpaceOnUse</em> |
- <em>objectBoundingBox</em>"</dt>
- <dd>Defines the coordinate system for attributes
- <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>.<br />
- If <span
- class="attr-value">maskUnits="userSpaceOnUse"</span>,
- <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>
- represent values in the current user coordinate system in place at
- the time when the <a>'mask element'</a>
- element is referenced (i.e., the user coordinate system for
- the element referencing the <a>'mask element'</a> element via the
- <a>'mask property'</a> property).<br />
- If <span
- class="attr-value">maskUnits="objectBoundingBox"</span>,
- <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>
- represent fractions or percentages of the bounding box of
- the element to which the mask is applied. (See <a
- href="coords.html#ObjectBoundingBox">Object bounding box
- units</a>.)<br />
- If attribute <a>'maskUnits'</a> is
- not specified, then the effect is as if a value of <span
- class="attr-value">'objectBoundingBox'</span> were
- specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MaskElementMaskContentUnitsAttribute"><span
- class="adef">maskContentUnits</span> =
- "<em>userSpaceOnUse</em> | <em>objectBoundingBox</em>"</dt>
- <dd>Defines the coordinate system for the contents of the
- <a>'mask element'</a>.<br />
- If <span
- class="attr-value">maskContentUnits="userSpaceOnUse"</span>,
- the user coordinate system for the contents of the
- <a>'mask element'</a> element is the current
- user coordinate system in place at the time when the
- <a>'mask element'</a> element is referenced
- (i.e., the user coordinate system for the element
- referencing the <a>'mask element'</a>
- element via the <a>'mask property'</a>
- property).<br />
- If <span
- class="attr-value">maskContentUnits="objectBoundingBox"</span>,
- the user coordinate system for the contents of the <a>'mask element'</a> is established using the
- bounding box of the element to which the mask is applied.
- (See <a href="coords.html#ObjectBoundingBox">Object
- bounding box units</a>.)<br />
- If attribute <a>'maskContentUnits'</a> is not specified,
- then the effect is as if a value of <span
- class="attr-value">'userSpaceOnUse'</span> were
- specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MaskElementMaskTypeAttribute"><span
- class="adef">maskType</span> =
- "<em>luminance</em> | <em>alpha</em>"</dt>
- <dd>
- Defines the procedure used for calculating mask values from the
- contents of the mask as described in <a href="#MaskValues">Calculating
- mask values</a>.
- <br />
- If attribute <a>'maskType'</a> is not specified,
- then the effect is as if a value of <span
- class="attr-value">'luminance'</span> were
- specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span>
- <div class="annotation">
- Although authors may find <span class="attr-value">'alpha'</span> more
- intuitive, the default value is <span
- class="attr-value">'luminance'</span> to provide backwards
- compatibility with SVG 1.1.
- </div>
- </dd>
- <dt id="MaskElementXAttribute"><span
- class="adef">x</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The x-axis coordinate of one corner of the rectangle
- for the largest possible offscreen buffer. Note that the
- clipping path used to render any graphics within the mask
- will consist of the intersection of the current clipping
- path associated with the given object and the rectangle
- defined by
- <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'-10%'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MaskElementYAttribute"><span
- class="adef">y</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The y-axis coordinate of one corner of the rectangle
- for the largest possible offscreen buffer.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'-10%'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MaskElementWidthAttribute"><span
- class="adef">width</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>The width of the largest possible offscreen buffer.
- Note that the clipping path used to render any graphics
- within the mask will consist of the intersection of the
- current clipping path associated with the given object and
- the rectangle defined by
- <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'120%'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MaskElementHeightAttribute"><span
- class="adef">height</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>The height of the largest possible offscreen
- buffer.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'120%'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- </dl>
- </div>
+<ul>
+ <li>clipping paths, which either uses
+ any combination of <a>'path'</a>, <a>'text'</a> and
+ <a>basic shapes</a> or basic shapes to serve as
+ the outline of a (in the absence of anti-aliasing) 1-bit
+ mask, where everything on the "inside" of the outline is
+ allowed to show through but everything on the outside is
+ masked out</li>
-<p><a href="styling.html#SVGStylingProperties">Properties</a> inherit into the
-<a>'mask element'</a> element from its ancestors; properties do <em>not</em>
-inherit from the element referencing the <a>'mask element'</a> element.</p>
-
-<p><a>'mask element'</a> elements are never rendered directly; their only
-usage is as something that can be referenced using the <a>'mask property'</a>
-property. The <a>'opacity'</a>, <a>'filter property'</a> and <a>'display'</a> properties do not apply to the
-<a>'mask element'</a> element; thus, <a>'mask element'</a> elements are not
-directly rendered even if the <a>'display'</a> property is set to a value
-other than <span class="prop-value">none</span>, and <a>'mask element'</a>
-elements are available for referencing even when the <a>'display'</a> property
-on the <a>'mask element'</a> element or any of its ancestors is set to
-<span class="prop-value">none</span>.</p>
-
-<h4 id="SVGPaintServer">Using an SVG paint server as a mask source</h4>
-
-<p class="note">
-The ability to reference paint servers with the <a>'mask property'</a> property
-is new in SVG 2.
-</p>
+ <li>masks, which are
+ <a>container elements</a>
+ which can contain <a>graphics elements</a>
+ or other container elements which define a set of graphics
+ that is to be used as a semi-transparent mask for compositing
+ foreground objects into the current background.</li>
+</ul>
-<p>
-Besides an SVG <a>'mask element'</a> element, the 'mask' property may
-also refer to an SVG <a href="pservers.html">paint server</a> element such as
-a <a>'linearGradient'</a> element or <a>'pattern'</a> element.
-When the mask source is an SVG paint server, the effect is as if the following
-steps were performed:
-</p>
+<p>Both, clipping and masking, are specified in the module CSS Masking
+[<a href="refs.html#ref-CSS-MASKING">CSS-MASKING</a>].</p>
-<ol>
- <li>Create a new <a>'mask element'</a> element as a sibling of the
- paint server element.</li>
- <li>Let the <a>'mask/maskUnits'</a> attribute be <span
- class="attr-value">'userSpaceOnUse'</span>.</li>
- <li>Let the dimensions of the mask
- (<a>'mask/x'</a>, <a>'mask/y'</a>, <a>'mask/width'</a>,
- and <a>'mask/height'</a>) match the dimensions of the <a>decorated
- bounding box</a> of the mask target.</li>
- <li>Let the <a>'mask/maskContentUnits'</a> attribute be <span
- class="attr-value">'objectBoundingBox'</span>.</li>
- <li>Create a new <a>'rect'</a> element as a child of the newly
- created <a>'mask element'</a> element.</li>
- <li>Let both the width and the height of the <a>'rect'</a> element be
- <span class="attr-value">'100%'</span>.</li>
- <li>Let the <a>'fill'</a> property of the <a>'rect'</a> element
- refer to the paint server element.</li>
- <li>Use the newly created <a>'mask element'</a> as the mask source.</li>
-</ol>
-
-</edit:with>
-
-</div>
-
-<div class="ready-for-wider-review">
<h2 id="ObjectAndGroupOpacityProperties">Object and group opacity: the
effect of the <span class="property">'opacity'</span> property</h2>
@@ -1112,168 +333,5 @@
</div>
</div>
-<h2 id="DOMInterfaces">DOM interfaces</h2>
-
-<h3 id="InterfaceSVGClipPathElement">Interface SVGClipPathElement</h3>
-
-<edit:with element='clipPath'>
-
-<p>The <a>SVGClipPathElement</a> interface corresponds to the <a>'clipPath'</a> element.</p>
-
-<pre class="idl">interface <b>SVGClipPathElement</b> : <a>SVGDefinitionElement</a> {
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="masking.html#__svg__SVGClipPathElement__clipPathUnits">clipPathUnits</a>;
-};
-
-<a>SVGClipPathElement</a> implements <a>SVGUnitTypes</a>;</pre>
-
-<dl class="interface">
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGClipPathElement__clipPathUnits" class="attribute first-child"><b>clipPathUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'clipPathUnits'</a> on the given
-<a>'clipPath'</a> element. Takes one of the constants defined in
-<a>SVGUnitTypes</a>.
-
-</div>
-</dd>
-</dl>
-</dd>
-</dl>
-
-</edit:with>
-
-
-<h3 id="InterfaceSVGMaskElement">Interface SVGMaskElement</h3>
-
-<edit:with element='mask'>
-
-<p>The <a>SVGMaskElement</a> interface corresponds to the <a>'mask element'</a> element.</p>
-
-<pre class="idl">interface <b>SVGMaskElement</b> : <a>SVGDefinitionElement</a> {
-
- // Mask Types
- const unsigned short <a href="masking.html#__svg__SVGMaskElement__SVG_MASKTYPE_LUMINANCE">SVG_MASKTYPE_LUMINANCE</a> = 0;
- const unsigned short <a href="masking.html#__svg__SVGMaskElement__SVG_MASKTYPE_ALPHA">SVG_MASKTYPE_ALPHA</a> = 1;
-
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="masking.html#__svg__SVGMaskElement__maskUnits">maskUnits</a>;
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="masking.html#__svg__SVGMaskElement__maskContentUnits">maskContentUnits</a>;
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="masking.html#__svg__SVGMaskElement__maskType">maskType</a>;
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="masking.html#__svg__SVGMaskElement__x">x</a>;
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="masking.html#__svg__SVGMaskElement__y">y</a>;
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="masking.html#__svg__SVGMaskElement__width">width</a>;
- readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="masking.html#__svg__SVGMaskElement__height">height</a>;
-};
-
-<a>SVGMaskElement</a> implements <a>SVGUnitTypes</a>;</pre>
-
-<dl class="interface">
-<dt class="constants-header">Constants in group “Mask Types”:</dt>
-<dd>
-<dl class="constants">
-
-<dt id="__svg__SVGMaskElement__SVG_MASKTYPE_LUMINANCE" class="constant first-child"><b>SVG_MASKTYPE_LUMINANCE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-Corresponds to value <span class="attr-value">'luminance'</span>.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__SVG_MASKTYPE_ALPHA" class="constant"><b>SVG_MASKTYPE_ALPHA</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-Corresponds to value <span class="attr-value">'alpha'</span>.
-
-
-</div>
-</dd>
-</dl>
-</dd>
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGMaskElement__maskUnits" class="attribute first-child"><b>maskUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'maskUnits'</a> on the given
-<a>'mask element'</a> element. Takes one of the constants defined in
-<a>SVGUnitTypes</a>.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__maskContentUnits" class="attribute"><b>maskContentUnits</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'maskContentUnits'</a> on the given
-<a>'mask element'</a> element. Takes one of the constants defined in
-<a>SVGUnitTypes</a>.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__maskType" class="attribute"><b>maskType</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'maskType'</a> on the given
-<a>'mask element'</a> element. Takes one of the Mask Types constants
-defined in this interface.
-
-
-<div class="note">This will highly likely become a WebIDL Enum in future
-(as soon as our toolchain supports it) so implementors are discouraged
-from implementing this attribute for the time being.
-</div>
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__x" class="attribute"><b>x</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'x'</a> on the given <a>'mask element'</a>
-element.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__y" class="attribute"><b>y</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'y'</a> on the given <a>'mask element'</a>
-element.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__width" class="attribute"><b>width</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'width'</a> on the given
-<a>'mask element'</a> element.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGMaskElement__height" class="attribute"><b>height</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt>
-<dd class="attribute">
-<div>
-Corresponds to attribute <a>'height'</a> on the given
-<a>'mask element'</a> element.
-
-</div>
-</dd>
-</dl>
-</dd>
-</dl>
-
-</edit:with>
-
</body>
</html>
--- a/master/painting.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/painting.html Wed Nov 28 16:47:02 2012 +1100
@@ -12,22 +12,6 @@
<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. -->
-<style type="text/css">
-table.propdef.attrdef { border-left-color: #888; border-left-width: 0; background-color: #eee; font-size: 90% }
-table.propdef.attrdef th, table.propdef.attrdef td { border-bottom-color: #ccc }
-
-table.propdef.attrdef th:first-child,
-table.propdef.attrdef td:first-child { width: 16em; padding-left: 0 !important }
-
-table.propdef.attrdef th:first-child + th,
-table.propdef.attrdef td:first-child + td { width: auto }
-
-table.propdef.attrdef th:first-child + th + th,
-table.propdef.attrdef td:first-child + td + td { width: 6em }
-
-table.propdef.attrdef th:first-child + th + th + th,
-table.propdef.attrdef td:first-child + td + td + td { width: 6em; padding-right: 0 !important }
-</style>
</head>
<body>
@@ -84,6 +68,9 @@
</table>
</div>
+<p class="issue">Gecko supports values with slightly different names – -moz-objectFill, -moz-objectFillOpacity,
+-moz-objectValue (for stroke width), etc. – so we might want to use those names instead.</p>
+
<p>Properties <a>'fill'</a> and <a>'stroke'</a> take on a value of type
<span class="prop-value"><paint></span>, which is specified as follows:</p>
@@ -1070,6 +1057,10 @@
</table>
</div>
+<p class="issue">Something in this section needs to reference
+<a>'path/pathLength'</a> so that dash lengths are in the author's
+path length space.</p>
+
<p>The following algorithm describes what the shape of a
<a>'path'</a> or <a>basic shape</a>'s stroke is, taking into account the
stroking properties above:</p>
@@ -1791,7 +1782,7 @@
<marker href="#Square" position="100%"/>
<marker href="#Circle" position="50px"/>
<marker href="#Circle" position="calc(100% - 50px)"/>
- <marker position="50%"> <!-- need refX and refY -->
+ <marker refX="5" refY="5" position="50%">
<!-- the cross -->
<path d="M 3,3 L 7,7 M 3,7 L 7,3"
fill="none" stroke="black" stroke-width="2"/>
@@ -3383,6 +3374,165 @@
<p class="issue">There are some missing definitions of
SVGPaint members here. The interface might be going away, however.</p>
+
+<div class="ready-for-wg-review">
+<h3 id="InterfaceSVGMarkerInstance">Interface SVGMarkerInstance</h3>
+
+<p>The <a>SVGMarkerInstance</a> interface is used to represent an instance
+of a marker that is on a <a>markable element</a>. An <a>SVGMarkerInstance</a>
+can represent any kind of marker, including <a>positioned markers</a>.</p>
+
+<p class="issue">What should we do about liveness? If it is live, we
+could have it know what index it is for, and always return information
+about the marker at that index (and return null for the element if
+that index is no longer valid).</p>
+
+<pre class='idl'>interface <b>SVGMarkerInstance</b> {
+ readonly attribute <a>SVGMarkerElement</a> element;
+ readonly attribute float position;
+ readonly attribute <a>SVGPoint</a> point;
+ readonly attribute float angle;
+};</pre>
+
+<dl class="interface">
+ <dt class="attributes-header">Attributes:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGMarkerInstance__element" class="attribute first-child"><b>element</b><span class="idl-type-parenthetical"> (readonly <a>SVGMarkerElement</a>)</span></dt>
+ <dd class="attribute">The <a>'marker element'</a> element that defines
+ the marker. If the marker is a <a>vertex marker</a>, <a>segment marker</a>
+ or <a>repeating marker</a>, then this will be the <a>'marker element'</a>
+ element that the relevant marker property referenced. If the marker is
+ a <a>positioned marker</a>, then this will be the child <a>'marker element'</a>
+ element of the <a>markable element</a>.</dd>
+
+ <dt id="__svg__SVGMarkerInstance__position" class="attribute"><b>position</b><span class="idl-type-parenthetical"> (readonly float)</span></dt>
+ <dd class="attribute">The distance along the <a>equivalent path</a> of the
+ <a>markable element</a> that the marker is positioned at.</dd>
+
+ <dt id="__svg__SVGMarkerInstance__point" class="attribute"><b>point</b><span class="idl-type-parenthetical"> (readonly <a>SVGPoint</a>)</span></dt>
+ <dd class="attribute">The point, in the user space of the
+ <a>markable element</a>, that the marker is positioned at.
+ The <a>SVGPoint</a> object is read only.</dd>
+
+ <dt id="__svg__SVGMarkerInstance__angle" class="attribute"><b>angle</b><span class="idl-type-parenthetical"> (readonly float)</span></dt>
+ <dd class="attribute">The orientation of the marker relative to a
+ vector pointing in the direction of the positive y-axis of the
+ <a>markable element</a>'s user space.</dd>
+ </dl>
+ </dd>
+</dl>
+
+
+<h3 id="InterfaceSVGMarkerList">Interface SVGMarkerList</h3>
+
+<p>The <a>SVGMarkerList</a> interface is used to expose the list of markers that
+are painted on a given <a>markable element</a>. This list includes all
+<a>vertex markers</a>, <a>segment markers</a>, <a>repeating markers</a> and
+<a>positioned markers</a>. The list of <a>SVGMarkerInstance</a> objects
+is maintained in the order that the markers are painted (see
+<a href='painting.html#Markers'>Markers</a>).</p>
+
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGPathSegList</a> object is all non-negative integers less than
+the length of the list.</p>
+
+<pre class='idl'>interface <b>SVGMarkerList</b> {
+ readonly attribute unsigned long <a href='#__svg__SVGMarkerList__length'>length</a>;
+ getter <a>SVGMarkerInstance</a>? <a href='#__svg__SVGMarkerList__item'>item</a>(unsigned long index);
+};</pre>
+
+<dl class="interface">
+ <dt class="attributes-header">Attributes:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGMarkerList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+ <dd class="attribute">The number of markers on this element.</dd>
+ </dl>
+ </dd>
+ <dt class="operations-header">Operations:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGMarkerList__item" class="operation first-child"><a>SVGMarkerInstance</a>? <b>item</b>(unsigned long <var>index</var>)</dt>
+ <dd class="operation">
+ Gets the <a>SVGMarkerInstance</a> at the given position in the
+ list of markers on this element.
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div>unsigned long <var>index</var></div>
+ <div>The index of the <a>SVGMarkerInstance</a> to return.</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="returns-header">Returns</dt>
+ <dd>Returns the <a>SVGMarkerInstance</a> at position <var>index</var>
+ in the list of markers on this element, or null if <var>index</var>
+ is out of range.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+</dl>
+
+
+<h3 id="InterfaceSVGMarkableElement">Interface SVGMarkableElement</h3>
+
+<p>The <a>SVGMarkableElement</a> interface is implemented on all
+<a>markable elements</a>, and provides access to the markers that are placed on
+the element's path.</p>
+
+<pre class='idl'>[NoInterfaceObject]
+interface <b>SVGMarkableElement</b> {
+ readonly attribute <a>SVGMarkerList</a> <a href='#__svg__SVGMarkableElement__markers'>markers</a>;
+
+ long <a href='#__svg__SVGMarkableElement__getMarkerIndexFromPoint'>getMarkerIndexFromPoint</a>(<a>SVGPoint</a> point);
+};</pre>
+
+<dl class="interface">
+ <dt class="attributes-header">Attributes:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGMarkableElement__markers" class="attribute first-child"><b>markers</b><span class="idl-type-parenthetical"> (readonly <a>SVGMarkerList</a>)</span></dt>
+ <dd class="attribute">The list of markers on this element.</dd>
+ </dl>
+ </dd>
+ <dt class="operations-header">Operations:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGMarkableElement__getMarkerIndexFromPoint" class="operation first-child">long <b>getMarkerIndexFromPoint</b>(<a>SVGPoint</a> point)</dt>
+ <dd class="operation">
+ Returns the index into the <a>SVGMarkerList</a> of the marker that is at
+ the specified point. Normal hit testing rules apply; the value of the
+ <a>'pointer-events'</a> property on the elements that comprise the markers,
+ as well as its value on this element, is honored, and the top-most marker
+ is selected when there are multiple markers whose content is at the given
+ point.
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div><a>SVGPoint</a> <var>point</var></div>
+ <div>The point to check for intersection with the markers
+ on this element. The <a>SVGPoint</a> is interpreted as a
+ point in the user space of this element.</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="returns-header">Returns</dt>
+ <dd>The index into this element's <a>SVGMarkerList</a> of the marker
+ at the given point, or -1 if there is no such marker.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+</dl>
+</div>
+
+
<h3 id="InterfaceSVGMarkerElement">Interface SVGMarkerElement</h3>
--- a/master/paths.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/paths.html Wed Nov 28 16:47:02 2012 +1100
@@ -26,6 +26,9 @@
Servers</a> and <a href="masking.html">Clipping, Masking and
Compositing</a>.)</p>
+<p class="issue">Also they can be used by <a>'mpath'</a> and
+<a>'textPath'</a>.</p>
+
<p>A path is described using the concept of a current point. In
an analogy with drawing on paper, the current point can be
thought of as the location of the pen. The position of the pen
@@ -172,6 +175,26 @@
characters. Also note that newline characters are only allowed
at certain places within path data.</p>
+<div class="issue">
+<p>The path data is defined to allow newline
+characters, but it should be noted that newlines inside
+attributes in markup will be normalized to space characters
+while parsing. If you wanted to, you could write</p>
+
+<pre><path d="M 100,100&#10;L 200,150"/></pre>
+
+<p>but it's not likely that you'd want to.</p>
+</div>
+
+<p class="issue">Are there tools that have line limits nowadays?
+Do we still need to recommend generators to split up path data
+at 255 characters?</p>
+
+<p class="issue">The sentence about newline characters being
+allowed only at certain places makes it sound like these places
+are different from where white space more generally is allowed,
+but that's not the case.</p>
+
<p>The syntax of path data is concise in order to allow for
minimal file size and efficient downloads, since many SVG files
will be dominated by their path data. Some of the ways that SVG
@@ -734,7 +757,7 @@
elliptical-arc-argument
| elliptical-arc-argument comma-wsp? elliptical-arc-argument-sequence
elliptical-arc-argument:
- nonnegative-number comma-wsp? nonnegative-number comma-wsp?
+ number comma-wsp? number comma-wsp?
number comma-wsp flag comma-wsp? flag comma-wsp? coordinate-pair
coordinate-pair:
coordinate comma-wsp? coordinate
@@ -1929,26 +1952,29 @@
<h3 id="InterfaceSVGPathSegList">Interface SVGPathSegList</h3>
-
-
<p>This interface defines a list of SVGPathSeg objects.</p>
-
<p><a>SVGPathSegList</a> has the same attributes and methods as other
SVGxxxList interfaces. Implementers may consider using a single base class
-to implement the various SVGxxxList interfaces.
-</p>
+to implement the various SVGxxxList interfaces.</p>
+
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGPathSegList</a> object is all non-negative integers less than
+the length of the list.</p>
+
<pre class="idl">interface <b>SVGPathSegList</b> {
+ readonly attribute unsigned long <a href="paths.html#__svg__SVGPathSegList__length">length</a>;
readonly attribute unsigned long <a href="paths.html#__svg__SVGPathSegList__numberOfItems">numberOfItems</a>;
void <a href="paths.html#__svg__SVGPathSegList__clear">clear</a>();
<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__initialize">initialize</a>(<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> newItem);
- <a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__getItem">getItem</a>(unsigned long index);
+ getter <a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__getItem">getItem</a>(unsigned long index);
<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__insertItemBefore">insertItemBefore</a>(<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> newItem, unsigned long index);
<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__replaceItem">replaceItem</a>(<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> newItem, unsigned long index);
<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__removeItem">removeItem</a>(unsigned long index);
<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> <a href="paths.html#__svg__SVGPathSegList__appendItem">appendItem</a>(<a class="idlinterface" href="paths.html#InterfaceSVGPathSeg">SVGPathSeg</a> newItem);
+ <a href="#__svg__SVGPathSegList__setter">setter</a> void (unsigned long index, <a>SVGPathSeg</a> newItem);
};</pre>
<dl class="interface">
@@ -1956,13 +1982,16 @@
<dd>
<dl class="attributes">
+<dt id="__svg__SVGPathSegList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+<dd class="attribute">
+ <div>The number of items in the list.</div>
+</dd>
+
<dt id="__svg__SVGPathSegList__numberOfItems" class="attribute first-child"><b>numberOfItems</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
<dd class="attribute">
-<div>
-The number of items in the list.
-
-</div>
+ <div>The number of items in the list.</div>
</dd>
+
</dl>
</dd>
<dt class="operations-header">Operations:</dt>
@@ -2292,6 +2321,8 @@
</dd>
</dl>
</dd>
+<dt id="__svg__SVGPathSegList__setter" class="operation"><b>setter</b> void (unsigned long <var>index</var>, <a>SVGPathSeg</a> <var>newItem</var>)</dt>
+<dd class="operation"><div>Replaces the item at index <var>index</var> with <var>newItem</var>.</div></dd>
</dl>
</dd>
</dl>
@@ -2462,7 +2493,7 @@
The <a>SVGPathElement</a> interface corresponds to the <a>'path'</a>
element.
-<pre class="idl">interface <b>SVGPathElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGPathElement</b> : <a>SVGGeometryElement</a> {
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="paths.html#__svg__SVGPathElement__pathLength">pathLength</a>;
@@ -2490,7 +2521,8 @@
<a class="idlinterface" href="paths.html#InterfaceSVGPathSegCurvetoQuadraticSmoothRel">SVGPathSegCurvetoQuadraticSmoothRel</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegCurvetoQuadraticSmoothRel">createSVGPathSegCurvetoQuadraticSmoothRel</a>(float x, float y);
};
-<a>SVGPathElement</a> implements <a>SVGAnimatedPathData</a>;</pre><dl class="interface">
+<a>SVGPathElement</a> implements <a>SVGAnimatedPathData</a>;
+<a>SVGPathElement</a> implements <a>SVGMarkableElement</a>;</pre><dl class="interface">
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
--- a/master/pservers.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/pservers.html Wed Nov 28 16:47:02 2012 +1100
@@ -603,6 +603,7 @@
</edit:with>
+<div class="ready-for-wider-review">
<h3 id="RadialGradients">Radial gradients</h3>
<edit:with element='radialGradient'>
@@ -616,7 +617,10 @@
<dl class="attrdef-list-svg2">
- <dt id="RadialGradientElementGradientUnitsAttribute"></dt>
+ <dt id="RadialGradientElementGradientUnitsAttribute">
+ <span class="adef">gradientUnits</span> =
+ "<span class="attr-value">userSpaceOnUse | objectBoundingBox</span>"
+ </dt>
<dd>
<p>
@@ -626,7 +630,9 @@
<dl class="attrdef-svg2">
+ <!--
<dt>Value</dt> <dd>userSpaceOnUse | objectBoundingBox</dd>
+ -->
<dt><a>Lacuna value</a></dt> <dd>objectBoundingBox</dd>
<dt><a>Animatable</a></dt> <dd>yes</dd>
@@ -729,11 +735,10 @@
<dd>
<p>
- <a>'cx'</a>, <a>'cy'</a> and <a>'r'</a> define the largest
- (i.e., outermost) circle for the radial gradient. The
+ <a>'cx'</a>, <a>'cy'</a> and <a>'r'</a> define the end circle for the radial gradient. The
gradient will be drawn such that the
100% <a href="#GradientStops">gradient stop</a> is mapped
- to the perimeter of this largest circle.
+ to the perimeter of this end circle.
</p>
<dl class="attrdef-svg2">
@@ -775,9 +780,7 @@
<p>
A negative value is an error
(see <a href="implnote.html#ErrorProcessing">Error
- processing</a>). A value of zero will cause the area to be
- painted as a single color using the color and opacity of the
- last <a href="pservers.html#GradientStops">gradient stop</a>.
+ processing</a>).
</p>
<dl class="attrdef-svg2">
@@ -795,11 +798,11 @@
<dd>
<p>
- <a>'fx'</a>, <a>'fy'</a>, and <a>'fr'</a> define the smallest
- (i.e., innermost) circle for the radial gradient. The gradient
- will be drawn such that the 0%
- <a href="#GradientStops">gradient stop</a> is mapped to the
- perimeter of this smallest circle.
+ <a>'fx'</a>, <a>'fy'</a>, and <a>'fr'</a> define the start
+ circle for the radial gradient. The
+ gradient will be drawn such that the
+ 0% <a href="#GradientStops">gradient stop</a> is mapped
+ to the perimeter of this start circle.
</p>
<dl class="attrdef-svg2">
@@ -828,6 +831,9 @@
of the innermost circle (<a>'fx'</a>,<a>'fy'</a>). The
dashed lines show two gradient vectors. Vectors connect
corresponding points on the inner and outer most circles.
+ The region outside the outer circle is painted with the the
+ last <a>'stop-color'</a> while the region inside the inner
+ circle is painted with the first <a>'stop-color'</a>.
</p>
</div>
@@ -871,6 +877,12 @@
<a>'fr'</a> is the radius of the focal circle. See <a>'fx'</a>.
</p>
+ <p>
+ A negative value is an error
+ (see <a href="implnote.html#ErrorProcessing">Error
+ processing</a>).
+ </p>
+
<dl class="attrdef-svg2">
<!-- <dt>Value</dt> <dd><a><length></a></dd> -->
<dt><a>Lacuna value</a></dt> <dd>0%, see below</dd>
@@ -990,17 +1002,35 @@
<h4 id="RadialGradientNotes">Notes on radial gradients</h4>
-<p>If the point defined by <a>'fx'</a> and <a>'fy'</a> lies outside the
-circle defined by <a>'cx'</a>, <a>'cy'</a>, and <a>'r'</a>, then the user
-agent shall set the focal point to the intersection of the line from
-(<a>'cx'</a>, <a>'cy'</a>) to (<a>'fx'</a>, <a>'fy'</a>) with the circle
-defined by <a>'cx'</a>, <a>'cy'</a>, and <a>'r'</a>.</p>
-
-<p class="issue">What happens if the circle defined by 'fx', 'fy', and 'fr'
-crosses outside of the circle defined by 'cx', 'cy', and 'cr'?</p>
-
-<p class="issue">What color space is the weighted average performed
-(linearRGB/sRGB)?</p>
+<p class="note">Changed in SVG 2. SVG 1.1 required that the focal
+point, if outside the end circle, be moved to be on the end
+circle. The change was made to align with Canvas.</p>
+
+<p class="annotation">Allowing the focal point to lie outside the end
+circle was resolved at the
+<a href="http://www.w3.org/2012/09/19-svg-minutes.html#item01">Rigi
+Kaltbad working group meeting</a>.</p>
+
+<p>If the start circle defined by <a>'fx'</a>, <a>'fy'</a> and <a>'fr'</a> lies
+outside the end circle defined by <a>'cx'</a>, <a>'cy'</a>, and <a>'r'</a>, effectively
+a cone is created, touched by the two circles. Areas outside the cone stay untouched by
+the gradient (transparent black).</p>
+
+<p>If the start circle fully overlaps with the end circle, no
+gradient is drawn. The area stays untouched (transparent black).</p>
+
+<div class="figure">
+ <img
+ alt="Image of a radial gradient with the focal (start circle) outside
+ the start circle."
+ src="images/pservers/radial_gradient_focus_reflect.png"/>
+
+ <p class="caption">A radial gradient with the focal (start) circle
+ outside the start circle. The focal circle is the
+ larger circle on the left. The gradient has
+ <span class="attr-value">spreadMethod="reflect"</span>.
+ </p>
+</div>
<div class="figure">
<img
@@ -1010,13 +1040,23 @@
<p class="caption">Two radial gradients with
<span class="attr-value">spreadMethod="repeat"</span>. On the
- left, the focus is just inside the right side of the circle
+ left, the focal point is just inside the right side of the circle
defined by by <a>'cx'</a>, <a>'cy'</a>, and <a>'r'</a>. On the
- right, the focus is on the circle. In this case, the area
+ right, the focal point is on the circle. In this case, the area
painted to the right of the circumference has a fill equal to
the weighted average of the colors in the gradient vector.</p>
</div>
+<p class="note">The treatment of the area to the right of the gradient
+in the right-hand side of the above figure is different from that of
+Canvas where the area would be transparent black. The difference is to
+maintain compatibility with SVG 1.1.</p>
+
+<p class="annotation">The color space for the weighted average is the
+same as in which the gradient is interpolated. See
+<a href="http://www.w3.org/2012/09/19-svg-minutes.html#item01">Rigi
+Kaltbad working group meeting</a>.</p>
+
<p><a href="styling.html#SVGStylingProperties">Properties</a>
inherit into the <a>'radialGradient'</a> element from its ancestors;
properties do <em>not</em> inherit from the element referencing the
@@ -1042,6 +1082,7 @@
image='yes' link='yes'/>
</edit:with>
+</div>
<h3 id="MeshGradients">Mesh gradients</h3>
@@ -1779,6 +1820,8 @@
<pre class="idl"></pre>
+<p class="issue">IDL needs to be added for SVGSolidColorElement.</p>
+
</edit:with>
<h3 id="InterfaceSVGGradientElement">Interface SVGGradientElement</h3>
--- a/master/publish.xml Fri Sep 07 16:16:40 2012 +1000
+++ b/master/publish.xml Wed Nov 28 16:47:02 2012 +1100
@@ -74,6 +74,7 @@
<appendix name='eltindex'/>
<appendix name='attindex'/>
<appendix name='propidx'/>
+ <appendix name='idlindex'/>
<appendix name='feature'/>
<appendix name='mimereg'/>
<appendix name='changes'/>
--- a/master/refs.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/refs.html Wed Nov 28 16:47:02 2012 +1100
@@ -88,6 +88,15 @@
http://dev.w3.org/csswg/css3-linebox/.
</dd>
+ <dt id="ref-CSS-MASKING" class="normref">[CSS-MASKING]</dt>
+ <dd>
+ <cite class="w3ced"><a href="http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html">CSS Masking</a></cite>,
+ D. Schulze, T. Atkins, B. Birtles, eds.
+ World Wide Web Consortium, 21 October 2012.
+ <br/>This edition of CSS Masking is the <b>Editor's Draft</b> at http://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html
+ <br/>The latest published edition of CSS Masking is not yet available.
+ </dd>
+
<dt id="ref-CSS3UI" class="normref">[CSS3UI]</dt>
<dd>
<cite class="w3cwd"><a href="http://www.w3.org/TR/2012/WD-css3-ui-20120117/">CSS Basic User Interface Module Level 3 (CSS3 UI)</a></cite>,
--- a/master/shapes.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/shapes.html Wed Nov 28 16:47:02 2012 +1100
@@ -92,7 +92,7 @@
<tr>
<th>DOM Interface:</th>
<td>
-<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGeometryElement</a> {
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__x">x</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__y">y</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__width">width</a>;
@@ -348,6 +348,12 @@
point and direction of the arc are affected by the user space transform
in the same manner as the geometry of the element.</p>
+<p class="issue">Saying that it progresses towards the "9 o'clock point"
+is slightly unclear, since it doesn't say whether it goes clockwise
+or anti-clockwise. Maybe "progresses" implies clockwise, but it should
+say either way. (There is similar wording in the <a>'ellipse'</a> section
+too.)</p>
+
<p id="ExampleCircle01"><span class="example-ref">Example
circle01</span> consists of a <a>'circle'</a> element that is filled
with red and stroked with blue.</p>
@@ -677,7 +683,7 @@
The <a>SVGRectElement</a> interface corresponds to the <a>'rect'</a>
element.
-<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGeometryElement</a> {
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__x">x</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__y">y</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__width">width</a>;
@@ -750,7 +756,7 @@
The <a>SVGCircleElement</a> interface corresponds to the <a>'circle'</a>
element.
-<pre class="idl">interface <b>SVGCircleElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGCircleElement</b> : <a>SVGGeometryElement</a> {
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGCircleElement__cx">cx</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGCircleElement__cy">cy</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGCircleElement__r">r</a>;
@@ -796,7 +802,7 @@
The <a>SVGEllipseElement</a> interface corresponds to the <a>'ellipse'</a>
element.
-<pre class="idl">interface <b>SVGEllipseElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGEllipseElement</b> : <a>SVGGeometryElement</a> {
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__cx">cx</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__cy">cy</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__rx">rx</a>;
@@ -851,12 +857,14 @@
The <a>SVGLineElement</a> interface corresponds to the <a>'line'</a>
element.
-<pre class="idl">interface <b>SVGLineElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGLineElement</b> : <a>SVGGeometryElement</a> {
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__x1">x1</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__y1">y1</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__x2">x2</a>;
readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__y2">y2</a>;
-};</pre><dl class="interface">
+};
+
+<a>SVGLineElement</a> implements <a>SVGMarkableElement</a>;</pre><dl class="interface">
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
@@ -956,10 +964,11 @@
<p>The <a>SVGPolylineElement</a> interface corresponds to the <a>'polyline'</a> element.</p>
-<pre class="idl">interface <b>SVGPolylineElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGPolylineElement</b> : <a>SVGGeometryElement</a> {
};
-<a>SVGPolylineElement</a> implements <a>SVGAnimatedPoints</a>;</pre>
+<a>SVGPolylineElement</a> implements <a>SVGAnimatedPoints</a>;
+<a>SVGPolylineElement</a> implements <a>SVGMarkableElement</a>;</pre>
</edit:with>
@@ -970,10 +979,11 @@
<p>The <a>SVGPolygonElement</a> interface corresponds to the <a>'polygon'</a> element.</p>
-<pre class="idl">interface <b>SVGPolygonElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGPolygonElement</b> : <a>SVGGeometryElement</a> {
};
-<a>SVGPolygonElement</a> implements <a>SVGAnimatedPoints</a>;</pre>
+<a>SVGPolygonElement</a> implements <a>SVGAnimatedPoints</a>;
+<a>SVGPolygonElement</a> implements <a>SVGMarkableElement</a>;</pre>
</edit:with>
--- a/master/struct.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/struct.html Wed Nov 28 16:47:02 2012 +1100
@@ -100,8 +100,75 @@
information, refer to the <a href="http://www.w3.org/TR/2006/REC-xml-names-20060816/"><cite>Namespaces in XML</cite></a> Recommendation
[<a href="refs.html#ref-XML-NS">XML-NS</a>].</p>
+<p class="issue">This section should talk about how a document's behavior
+is defined in terms of the DOM, and also explain how the HTML parser can
+create SVG fragments.</p>
+
<h3 id="SVGElement">The <span class='element-name'>'svg'</span> element</h3>
+<div class="annotation svg2-requirement">
+ <table>
+ <tr>
+ <th>SVG 2 Requirement:</th>
+ <td>Should support the playbackOrder attribute to inform UA to not display controls to seek backwards.</td>
+ </tr>
+ <tr>
+ <th>Resolution:</th>
+ <td><a href="http://www.w3.org/2012/03/29-svg-irc#T20-39-02">Support the playbackOrder attribute.</a></td>
+ </tr>
+ <tr>
+ <th>Purpose:</th>
+ <td>To inform UA to not display controls to seek backwards.</td>
+ </tr>
+ <tr>
+ <th>Owner:</th>
+ <td>Cyril</td>
+ </tr>
+</table>
+</div>
+
+<div class="annotation svg2-requirement">
+ <table>
+ <tr>
+ <th>SVG 2 Requirement:</th>
+ <td>Support transforming <a>'svg'</a> elements.</td>
+ </tr>
+ <tr>
+ <th>Resolution:</th>
+ <td><a href="http://www.w3.org/2011/10/28-svg-irc#T00-23-44">We will allow <span class='attr-name'>'transform'</span> on <span class='element-name'>'svg'</span> in SVG 2.</a></td>
+ </tr>
+ <tr>
+ <th>Purpose:</th>
+ <td>To allow transforms on nested <a>'svg'</a> elements, in line with author expectations.</td>
+ </tr>
+ <tr>
+ <th>Owner:</th>
+ <td>Dirk (no action)</td>
+ </tr>
+ </table>
+</div>
+
+ <div class="annotation svg2-requirement">
+ <table>
+ <tr>
+ <th>SVG 2 Requirement:</th>
+ <td>Support a means for having SMIL animations start before their time container has fully loaded.</td>
+ </tr>
+ <tr>
+ <th>Resolution:</th>
+ <td><a href="http://www.w3.org/2012/03/29-svg-irc#T20-23-57">Timeline control.</a></td>
+ </tr>
+ <tr>
+ <th>Purpose:</th>
+ <td>To start animations before the SVG document is fully loaded (useful for large SVG documents).</td>
+ </tr>
+ <tr>
+ <th>Owner:</th>
+ <td>Cyril</td>
+ </tr>
+ </table>
+</div>
+
<!--
<table class="propdef eltdef">
<tr>
@@ -210,46 +277,53 @@
<edit:elementsummary name='svg'/>
-<div class="annotation svg2-requirement">
- <table>
- <tr>
- <th>SVG 2 Requirement:</th>
- <td>Support transforming <a>'svg'</a> elements.</td>
- </tr>
- <tr>
- <th>Resolution:</th>
- <td><a href="http://www.w3.org/2011/10/28-svg-irc#T00-23-44">We will allow <span class='attr-name'>'transform'</span> on <span class='attr-name'>'svg'</span> in SVG 2.</a></td>
- </tr>
- <tr>
- <th>Purpose:</th>
- <td>To allow transforms on nested <a>'svg'</a> elements, in line with author expectations.</td>
- </tr>
- <tr>
- <th>Owner:</th>
- <td>Dirk (no action)</td>
- </tr>
- </table>
-</div>
-
-
-<div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="SVGElementVersionAttribute"><span
- class="adef">version</span> = "<span class="attr-value"><a
- href="types.html#DataTypeNumber"><number></a></span>"</dt>
- <dd>Indicates the SVG language version to which this
- document fragment conforms.<br />
- In <a href='http://www.w3.org/TR/2001/REC-SVG-20010904/'>SVG 1.0</a> [<a href='refs.html#ref-SVG10'>SVG10</a>],
+<p><em>Attribute definitions:</em></p>
+
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementVersionAttribute">version</dfn></td>
+ <td><a><number></a></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Indicates the SVG language version to which this
+ document fragment conforms.</p>
+ <p>In <a href='http://www.w3.org/TR/2001/REC-SVG-20010904/'>SVG 1.0</a> [<a href='refs.html#ref-SVG10'>SVG10</a>],
this attribute was fixed to the value <span class='attr-value'>'1.0'</span>.
For SVG 1.1, the attribute should have the value
- <span class='attr-value'>'1.1'</span>.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- <dt id="SVGElementBaseProfileAttribute"><span
- class="adef">baseProfile</span> = profile-name</dt>
- <dd>Describes the minimum SVG language profile that the
+ <span class='attr-value'>'1.1'</span>.</p>
+ <p class="issue">What are we doing with the <a>'version'</a>
+ attribute? It's not clear whether it is useful to keep.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementBaseProfileAttribute">baseProfile</dfn></td>
+ <td><a><anything></a></td>
+ <td>none</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Describes the minimum SVG language profile that the
author believes is necessary to correctly render the
content. The attribute does not specify any processing
restrictions; It can be considered metadata. For example,
@@ -257,216 +331,208 @@
tool to warn the user when they are modifying the document
beyond the scope of the specified base profile. Each SVG
profile should define the text that is appropriate for this
- attribute.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'none'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- <dt id="SVGElementXAttribute"><span
- class="adef">x</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>(Has no meaning or effect on <a>outermost svg
- elements</a>.)<br />
- The x-axis coordinate of one corner of the rectangular
- region into which an embedded <a>'svg'</a> element is placed.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'0'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="SVGElementYAttribute"><span
- class="adef">y</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>(Has no meaning or effect on <a>outermost svg
- elements</a>.)<br />
- The y-axis coordinate of one corner of the rectangular
- region into which an embedded <a>'svg'</a> element is placed.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'0'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="SVGElementWidthAttribute"><span
- class="adef">width</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>For <a>outermost svg elements</a>,
- the intrinsic width of the SVG document fragment.
- For embedded <a>'svg'</a>
- elements, the width of the rectangular region into which
- the <a>'svg'</a> element is
- placed.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'100%'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="SVGElementHeightAttribute"><span
- class="adef">height</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>For <a>outermost svg elements</a>,
- the intrinsic height of the SVG document
- fragment. For embedded <a>'svg'</a> elements, the height of
- the rectangular region into which the <a>'svg'</a> element is placed.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class='attr-value'>'100%'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="SVGElementPreserveAspectRatioAttribute">
- <span class="adef">preserveAspectRatio</span> = "<span class='attr-value'><a href="coords.html#PreserveAspectRatioAttribute">[defer] <align> [<meetOrSlice>]</a></span>"
- </dt>
- <dd>
- <p>
- See <a>'preserveAspectRatio'</a>.
- </p>
- <p>
- If the attribute is not specified, then the effect is as if a value of <span class="attr-value">'xMidYMid meet'</span> were specified.
- </p>
- <p><span class="anim-target"><a href="animate.html#Animatable">Animatable</a>: yes.</span></p>
- </dd>
- <dt id="SVGElementZoomAndPanAttribute">
- <span class="adef">zoomAndPan</span> = "<span class='attr-value'><a href="interact.html#ZoomAndPanAttribute">disable | magnify</a></span>"
- </dt>
- <dd>
- <p>
- See <span class="attr"><a href="interact.html#ZoomAndPanAttribute">'zoomAndPan'</a></span>.
- </p>
- </dd>
- <dt id="SVGElementPlaybackOrderAttribute">
- <span class="adef">playbackOrder</span> =
- <span class="attr-value">"forwardOnly" | "all"</span>
- </dt>
- <dd>
-
- <div class="annotation svg2-requirement">
- <table>
+ attribute.</p>
+ <p class="issue">It's unlikely SVG 2 will have profiles as
+ 1.0 and 1.1 did. Do we keep the attribute in case others
+ wish to profile SVG? (Or should we be discouraging that?)</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
<tr>
- <th>SVG 2 Requirement:</th>
- <td>Should support the playbackOrder attribute to inform UA to not display controls to seek backwards.</td>
- </tr>
- <tr>
- <th>Resolution:</th>
- <td><a href="http://www.w3.org/2012/03/29-svg-irc#T20-39-02">Support the playbackOrder attribute.</a></td>
- </tr>
- <tr>
- <th>Purpose:</th>
- <td>To inform UA to not display controls to seek backwards.</td>
- </tr>
- <tr>
- <th>Owner:</th>
- <td>Cyril</td>
- </tr>
- </table>
- </div>
-
- <div class="annotation">This attribute may be harmonized and/or replaced with the work done as part of the <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html">Web Animation specification</a>.</div>
-
- <p>
- Indicates whether it is possible to seek backwards in the document. In
- earlier versions of SVG there was no need to put restrictions on the
- direction of seeking but with the newly introduced facilities for
- long-running documents (e.g. the <a href="#DiscardElement">
- <span class="element-name">'discard'</span></a> element) there is
- sometimes a need to restrict this.
- </p>
- <p>
- If <span class="attr-name">'playbackOrder'</span> is set to
- <span class="attr-value">'forwardOnly'</span>, the content will probably
- contain <a href="#DiscardElement"><span class="element-name">'discard'</span></a>
- elements or scripts that destroy resources, thus seeking back in the
- document's timeline may result in missing content.
- If <span class="attr-name">'playbackOrder'</span> is
- <span class="attr-value">'forwardOnly'</span>, the content should not
- provide a way, through hyperlinking or script, of seeking backwards in
- the timeline. Similarly the UA should disable any controls it may
- provide in the user interface for seeking backwards. Content with
- <span class="attr-name">'playbackOrder'</span> =
- <span class="attr-value">'forwardOnly'</span> that provides a mechanism
- for seeking backwards in time may result in undefined behavior or a
- document that is in error.
- </p>
- <dl>
- <dt><span class="attr-value">'forwardOnly'</span></dt>
- <dd>This file is intended to be played only in the forward direction, sequentially, therefore
- seeking backwards should not be allowed.</dd>
- <dt><span class="attr-value">'all'</span></dt>
- <dd>Indicates that the document is authored appropriately for seeking in both directions.</dd>
- </dl>
- <p>
- The <a>lacuna value</a> is <span class="attr-value">'all'</span>.
- </p>
- <p class="anim-target"><a href="animate.html#Animatable">Animatable</a>: no.</p>
- </dd>
- <dt id="SVGElementTimelineBeginAttribute">
- <span class="adef">timelineBegin</span> =
- <span class="attr-value">"onLoad" | "onStart"</span>
- </dt>
- <dd>
- <div class="annotation svg2-requirement">
- <table>
- <tr>
- <th>SVG 2 Requirement:</th>
- <td>Support a means for having SMIL animations start before their time container has fully loaded.</td>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
</tr>
<tr>
- <th>Resolution:</th>
- <td><a href="http://www.w3.org/2012/03/29-svg-irc#T20-23-57">Timeline control.</a></td>
+ <td><dfn id="SVGElementXAttribute">x</dfn>, <dfn id="SVGElementYAttribute">y</dfn></td>
+ <td><a><coordinate></a></td>
+ <td>0</td>
+ <td>yes</td>
</tr>
+ </table>
+ </dt>
+ <dd>
+ <p>The <a>'x'</a> and <a>'y'</a> attributes specify the
+ top-left corner of the rectangular region into which an
+ embedded <a>'svg'</a> element is placed. On an <a>outermost svg element</a>,
+ these attributes have no effect.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
<tr>
- <th>Purpose:</th>
- <td>To start animations before the SVG document is fully loaded (useful for large SVG documents).</td>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
</tr>
<tr>
- <th>Owner:</th>
- <td>Cyril</td>
+ <td><dfn id="SVGElementWidthAttribute">width</dfn>, <dfn id="SVGElementHeightAttribute">height</dfn></td>
+ <td><a><length></a> | <a><percentage></a></td>
+ <td>100%</td>
+ <td>yes</td>
</tr>
- </table>
- </div>
-
- <div class="annotation">This attribute may be harmonized and/or replaced with the work done as part of the <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html">Web Animation specification</a>.</div>
-
- <p>
- Controls the initialization of the timeline for the document.
- </p>
- <p>
- The <a href="#SVGElement"><span class="element-name">'svg'</span></a>
- element controls the <em>document timeline</em>, which is the timeline of
- the <a href="#SVGElement"><span class="element-name">'svg'</span></a>
- element's time container. For progressively loaded animations, the author
- would typically set this attribute to <span class="attr-value">'onStart'</span>,
- thus allowing the timeline to begin as the document loads, rather than
- waiting until the complete document is loaded.
- </p>
- <dl>
- <dt><span class="attr-value">'onLoad'</span></dt>
- <dd>
- The document's timeline starts the moment the
- <a href="interact.html#LoadEvent"><code>load</code></a> event for the
- <a>rootmost 'svg' element</a> is triggered.
- </dd>
- <dt><span class="attr-value">'onStart'</span></dt>
- <dd>
- The document's timeline starts at the moment the
- <a>rootmost 'svg' element</a>'s
- <em>start-tag</em>
- <a href="http://www.w3.org/TR/2006/REC-xml-20060816/#sec-starttags">as defined in XML 1.0</a>
- ([<a href="refs.html#ref-XML10">XML10</a>], section 3.1) is fully parsed and processed.
- </dd>
- </dl>
- <p>
- The <a>lacuna value</a> is <span class="attr-value">'onLoad'</span>.
- </p>
- <p class="anim-target"><a href="animate.html#Animatable">Animatable</a>: no.</p>
- </dd>
- </dl>
-</div>
+ </table>
+ </dt>
+ <dd>
+ <p>For <a>outermost svg elements</a>,
+ the <a>'width'</a> and <a>'height'</a> attributes specify
+ the intrinsice size of the SVG document fragment.
+ For embedded <a>'svg'</a> elements, they specify the size
+ of the rectangular region into which the <a>'svg'</a> element
+ is placed.</p>
+ <p>A negative value is an error (see <a
+ href="implnote.html#ErrorProcessing">Error processing</a>).
+ A value of zero disables rendering of the element.</p>
+ <p class="issue">When zero is used on an outer <a>'svg'</a> element,
+ does this disable rendering too? Or does it just affect
+ the intrinsic size?</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementPreserveAspectRatioAttribute">preserveAspectRatio</dfn></td>
+ <td>defer? <a><align></a> [ meet | slice ]?</td>
+ <td>xMidYMid meet</td>
+ <td>yes</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Specifies the fitting behavior when the aspect ratio of the <a>'svg'</a>
+ element does not match the aspect ratio of the rectangle it is placed in.
+ See the definition of <a>'preserveAspectRatio'</a> for details.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementZoomAndPanAttribute">zoomAndPan</dfn></td>
+ <td>disable | magnify</td>
+ <td>magnify</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Specifies whether the user agent should supply a means to zoom
+ and pan the SVG content. See the definition of <a>'zoomAndPan'</a>
+ for details.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementPlaybackOrderAttribute">playbackOrder</dfn></td>
+ <td>forwardOnly | all</td>
+ <td>all</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p class="issue">This attribute may be harmonized and/or replaced with the
+ work done as part of the <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html">Web Animation specification</a>.</p>
+ <p>
+ Indicates whether it is possible to seek backwards in the document. In
+ earlier versions of SVG there was no need to put restrictions on the
+ direction of seeking but with the newly introduced facilities for
+ long-running documents (e.g. the <a href="#DiscardElement">
+ <span class="element-name">'discard'</span></a> element) there is
+ sometimes a need to restrict this.
+ </p>
+ <p>
+ If <span class="attr-name">'playbackOrder'</span> is set to
+ <span class="attr-value">'forwardOnly'</span>, the content will probably
+ contain <a>'discard'</a>
+ elements or scripts that destroy resources, thus seeking back in the
+ document's timeline may result in missing content.
+ If <span class="attr-name">'playbackOrder'</span> is
+ <span class="attr-value">'forwardOnly'</span>, the content should not
+ provide a way, through hyperlinking or script, of seeking backwards in
+ the timeline. Similarly the UA should disable any controls it may
+ provide in the user interface for seeking backwards. Content with
+ <span class="attr-value">playbackOrder="forwardOnly"</span>
+ that provides a mechanism for seeking backwards in time may result in
+ undefined behavior or a document that is in error.
+ </p>
+ <p class="issue">Can't we define this so that there is no undefined behavior?</p>
+ <p>Attribute values have the following meanings:</p>
+ <dl>
+ <dt><span class="attr-value">'forwardOnly'</span></dt>
+ <dd>This file is intended to be played only in the forward direction, sequentially, therefore
+ seeking backwards should not be allowed.</dd>
+ <dt><span class="attr-value">'all'</span></dt>
+ <dd>Indicates that the document is authored appropriately for seeking in both directions.</dd>
+ </dl>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementTimelineBeginAttribute">timelineBegin</dfn></td>
+ <td>onLoad | onStart</td>
+ <td>onLoad</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p class="issue">This attribute may be harmonized and/or replaced with
+ the work done as part of the <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/web-anim/index.html">Web Animation specification</a>.</p>
+ <p>
+ Controls the initialization of the timeline for the document.
+ </p>
+ <p>
+ The <a>'svg'</a> element controls the <em>document timeline</em>, which is the timeline of
+ the <a>'svg'</a> element's time container. For progressively loaded animations, the author
+ would typically set this attribute to <span class="attr-value">'onStart'</span>,
+ thus allowing the timeline to begin as the document loads, rather than
+ waiting until the complete document is loaded.
+ </p>
+ <p>Attribute values have the following meanings:</p>
+ <dl>
+ <dt><span class="attr-value">'onLoad'</span></dt>
+ <dd>
+ The document's timeline starts the moment the
+ <a href="interact.html#LoadEvent"><code>load</code></a> event for the
+ <a>rootmost 'svg' element</a> is triggered.
+ </dd>
+ <dt><span class="attr-value">'onStart'</span></dt>
+ <dd>
+ The document's timeline starts at the moment the
+ <a>rootmost 'svg' element</a>'s <em>start-tag</em>
+ <a href="http://www.w3.org/TR/2006/REC-xml-20060816/#sec-starttags">as defined in XML 1.0</a>
+ ([<a href="refs.html#ref-XML10">XML10</a>], section 3.1) is fully parsed and processed.
+ <p class="issue">What about when the SVG document fragment is within
+ an XHTML document? Is there a single timeline for the whole document, and if so,
+ does it start at the parse time for the first <code><svg></code> start tag?
+ What about when using the HTML parser?</p>
+ </dd>
+ </dl>
+ </dd>
+</dl>
<p>If an SVG document is likely to be referenced as a component
of another document, the author will often want to include a
@@ -474,6 +540,9 @@
referenced document. This attribute provides a convenient way to design
SVG documents to scale-to-fit into an arbitrary viewport.</p>
+<p class="issue">This paragraph feels out of place just after the list
+of attributes specific to <a>'svg'</a>.</p>
+
</edit:with>
<h2 id="Groups">Grouping: the <span class='element-name'>'g'</span> element</h2>
@@ -489,6 +558,15 @@
rendered graphically, as speech, or as braille, and thus promote
<a href="access.html">accessibility</a>.</p>
+<p class="issue">That generously structured content with <a>'title'</a> and
+<a>'desc'</a> is more accessible isn't necessarily true. It also seems
+like a stretch to claim that documents "rich in structure" can be
+rendered as speech or braille, without specific references to how
+that can be achieved. More fundamental uses of grouping that should
+be mentioned are (a) for specifying common styling of inherited
+properties, and (b) for selecting elements to apply a group effect
+like filters and group opacity.</p>
+
<p>A group of elements, as well as individual objects, can be given
a name using the <a>'id'</a> attribute. Named groups are needed for
several purposes such as animation and re-usable objects.</p>
@@ -514,6 +592,8 @@
</svg>
]]></pre>
+<p class="issue">This is not a particularly useful example.</p>
+
<div class="annotation svg2-requirement">
<table>
<tr>
@@ -539,6 +619,11 @@
<p>Any element that is not contained within a <a>'g'</a> is treated (at
least conceptually) as if it were in its own group.</p>
+<p class="issue">It is unclear what this sentence actually means.
+Does it mean that all operations that apply to groups (such as group
+opacity, filter effects, etc.) can apply to single elements too?
+If so, then it should say that.</p>
+
<h3 id="GElement">The <span class='element-name'>'g'</span> element</h3>
<edit:elementsummary name='g'/>
@@ -575,6 +660,11 @@
promotes understandability of the SVG content and thus promotes
accessibility.</p>
+<p class="issue">Again this claim about accessibility is dubious.</p>
+
+<p class="issue">We should have a term for definition elements (since we
+now have a corresponding IDL interface) and reference it here.</p>
+
<h3 id="DefsElement">The <span class='element-name'>'defs'</span> element</h3>
<edit:elementsummary name='defs'/>
@@ -606,6 +696,11 @@
element which is a direct child of one of the ancestors of the
referencing element. For example:</p>
+<p class="issue">Is this really about efficiency of implementations?
+If anything, it looks like it is ensuring progressively rendered
+documents don't make forward references that would otherwise
+cause an incorrect rendering before the referenced element is loaded.</p>
+
<edit:example href='images/struct/defs01.svg' link='yes'/>
<p>In the document above, the linear gradient is defined within
@@ -616,6 +711,10 @@
<h2 id="DiscardElement">The <span class='element-name'>'discard'</span> element</h2>
+<p class="issue">Would this element be better as part of the Animation chapter?
+It also needs to be a member of the element categories that other animation elements
+are, and an IDL interface needs to be written for it.</p>
+
<edit:with element='discard'>
<div class="annotation svg2-requirement">
@@ -657,57 +756,69 @@
element may.
</p>
-<div class="adef-list">
- <p><em>Attribute definitions:</em></p>
-
- <dl class="definitions">
- <dt id="DiscardElementHrefAttribute">
- <span class="adef">href</span> =
- "<span class="attr-value"><a href="types.html#DataTypeIRI"><iri></a></span>"
- </dt>
- <dd>
- <p>
- An <a>IRI reference</a>
- that identifies the <a href="animate.html#TargetElement">target element</a>
- to discard. See the definition of
- <a href="animate.html#HrefAttribute"><span class="attr-name">'href'</span></a>
- on <a>animation elements</a> for details on identifying a target
- element.
- </p>
- <p>
- Note that if the target element is not part of the
- <a>current SVG document fragment</a>
- then whether the target element will be removed or not is defined by the
- host language.
- </p>
- <p>
- If the <a href="#DiscardElementHrefAttribute"><span class="attr-name">'href'</span></a>
- attribute is not provided, then the target element will be the immediate
- parent element of the discard element.
- </p>
- <p class="anim-target"><a href="animate.html#Animatable">Animatable</a>: no.</p>
- </dd>
-
- <dt id="DiscardElementBeginAttribute">
- <span class="adef">begin</span> = "<span class="attr-value"><a href="animate.html#BeginValueListSyntax">begin-value-list</a></span>"
- </dt>
-
- <dd>
- <p>
- Indicates when the target element will be discarded. See the definition
- of <a href="animate.html#BeginAttribute"><span class="attr-name">'begin'</span></a>
- on <a>animation elements</a> for details.
- </p>
- <p>
- The <a>lacuna value</a>
- is <span class="attr-value">'0s'</span>. This indicates that
- the <a href="animate.html#TargetElement">target element</a> should be
- discarded immediately once the document begins.
- </p>
- <p class="anim-target"><a href="animate.html#Animatable">Animatable</a>: no.</p>
- </dd>
- </dl>
-</div>
+<p><em>Attribute definitions:</em></p>
+
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="DiscardElementHrefAttribute">href</dfn></td>
+ <td><a><iri></a></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>
+ An <a>IRI reference</a>
+ that identifies the <a href="animate.html#TargetElement">target element</a>
+ to discard. See the definition of
+ <a href="animate.html#HrefAttribute"><span class="attr-name">'href'</span></a>
+ on <a>animation elements</a> for details on identifying a target
+ element.
+ </p>
+ <p>
+ Note that if the target element is not part of the
+ <a>current SVG document fragment</a>
+ then whether the target element will be removed or not is defined by the
+ host language.
+ </p>
+ <p>
+ If the <a>'href'</a> attribute is not provided, then the target element
+ will be the immediate parent element of the discard element.
+ </p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="SVGElementVersionAttribute">begin</dfn></td>
+ <td><a href="animate.html#BeginValueListSyntax"><begin-value-list></a></td>
+ <td>0s</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>
+ Indicates when the target element will be discarded. See the definition
+ of <a href="animate.html#BeginAttribute"><span class="attr-name">'begin'</span></a>
+ on <a>animation elements</a> for details.
+ </p>
+ </dd>
+</dl>
<p>
The <a href="#DiscardElement"><span class="element-name">'discard'</span></a>
@@ -730,7 +841,7 @@
the <a href="#DiscardElement"><span class="element-name">'discard'</span></a>
element is no longer useful. It must also be discarded following the
target element removal. If the
- <a href="struct.html#DiscardElementHrefAttribute"><span class="attr-name">'xlink:href'</span></a>
+ <a href="struct.html#DiscardElementHrefAttribute"><span class="attr-name">'href'</span></a>
attribute has an <a>invalid</a> IRI reference
(the target element did not exist, for example),
the <a href="#DiscardElement"><span class="element-name">'discard'</span></a>
@@ -812,8 +923,18 @@
<edit:elementsummary name='title'/>
</div>
+<p class="note">The attribute <a>'lang'</a> added to allow internationalization
+of the <a>'desc'</a> and <a>'title element'</a> elements.</p>
+
+<p class="annotation">Adding 'lang' resolved at Rigi Kaltbad face-to-face.
+Removed text that limited number of 'desc' and 'title' elements.</p>
+
+<p class="issue">Is there any updated wording from SVG Tiny 1.2 that we
+should be using wrt tooltips?</p>
+
<p>Each <a>container element</a> or <a>graphics element</a> in an SVG drawing
-can supply a <a>'desc'</a> and/or a <a>'title'</a> description string where
+can supply one or more <a>'desc'</a> and/or one or more <a>'title'</a> description
+strings where
the description is text-only. When the current SVG document fragment is
rendered as SVG on visual media, <a>'desc'</a> and <a>'title'</a> elements are
not rendered as part of the graphics. User agents may, however, for example,
@@ -826,10 +947,19 @@
sometimes desirable to allow the user to control how deep they drill down into
descriptive text.</p>
-<p>In conforming SVG document fragments, any <a>'title'</a> element should be
-the first child element of its parent. Note that those implementations that do
-use <a>'title'</a> to display a tooltip often will only do so if the
-<a>'title'</a> is indeed the first child element of its parent.</p>
+<p class="issue">I don't think it is easy to use a style sheet to cause
+an element's <a>'title'</a> to be rendered in place of its graphics.</p>
+
+<p>More than one <a>'desc'</a> or <a>'title element'</a> may be
+present with different <a>'lang'</a> attributes. The text displayed
+will be the text from the element where the <a>'lang'</a> attribute
+best matches the language set by the user agent. If no match exists,
+the text from the first element is used (to allow default text to be
+given for legacy renderers). If multiple equally valid matches exist,
+the first match is used.</p>
+
+<p class="issue">'lang' should be defined here (rather than pointing to
+the glyph definition).</p>
<p>The following is an example. In typical operation, the SVG user agent would
not render the <a>'desc'</a> and <a>'title'</a> elements but would render the
@@ -841,10 +971,9 @@
version="1.1" width="4in" height="3in">
<g>
<title>Company sales by region</title>
- <desc>
- This is a bar chart which shows
- company sales by region.
- </desc>
+ <title lang="fr">Chiffre d'affaires par région</title>
+ <desc>Bar chart which shows company sales by region.</desc>
+ <desc lang="fr">Graphique illustrant les ventes par région.</desc>
<!-- Bar chart defined as vector data -->
</g>
</svg>
@@ -868,6 +997,11 @@
</svg>
]]></pre>
+<p class="issue">We should say what purpose including other-namespaced
+markup in <a>'title'</a> and <a>'desc'</a> has. If it is just that
+these are basically metadata extension points for other profiles or
+uses of SVG, then we should say that.</p>
+
<p>Authors should always provide a <a>'title'</a> child element to the
<a>outermost svg element</a> within a stand-alone SVG document. The
<a>'title'</a> child element to an <a>'svg'</a> element serves the
@@ -882,24 +1016,18 @@
available to users. The mechanism for doing so depends on the user agent
(e.g., as a caption, spoken).</p>
-<p>The definitions of many of SVG's elements (particularly,
-container and text elements) place no restriction on the
-placement or number of the <a>'desc'</a> and <a>'title'</a> sub-elements.
-This flexibility is only present so that there will be a consistent
-content model for container elements, because some container
-elements in SVG allow for mixed content, and because
-<a href="http://www.w3.org/TR/2008/REC-xml-20081126/#sec-mixed-content">the mixed content rules for XML</a>
-([<a href="refs.html#ref-XML10">XML10</a>], section 3.2.2)
-do not permit the desired restrictions. Future
-versions of the SVG language might have more restrictive
-mixed content rules. It is strongly recommended that at most
-one <a>'desc'</a> and at most one <a>'title'</a> element appear as a
-child of any particular element, and that these elements appear
-before any other child elements (except possibly
-<a>'metadata'</a> elements) or character data content. If user agents need to
-choose among multiple <a>'desc'</a> or <a>'title'</a> elements for processing
-(e.g., to decide which string to use for a tooltip), the user
-agent shall choose the first one.</p>
+<p class="issue">We have this sentence here about tooltips
+which is stronger than the earlier note that some
+implementations do this. We should look at how HTML describes
+the <span class="attr-name">'title'</span> attribute and whether
+a tooltip is required, suggested, etc., and follow that.</p>
+
+<p class="issue">Once we have said how ARIA attributes can be used
+in SVG, we might want to define <a>'title'</a> and <a>'desc'</a>
+in a manner consistent with them, so that it is clear what it means
+for example for an element to have both a <a>'desc'</a> element
+child and an <span class="attr-name">'aria-describedby'</span>
+attribute.</p>
<h2 id="SymbolElement">The <span class='element-name'>'symbol'</span> element</h2>
@@ -913,6 +1041,12 @@
in structure may be rendered graphically, as speech, or as
braille, and thus promote <a href="access.html">accessibility</a>.</p>
+<p class="issue">Again this mention of accessibility through the use of
+structure (this time with <a>'symbol'</a> elements). We should include
+an example here or in the Accessibility appendix that shows how this
+is the case and what the actual effects of structuring content with
+<a>'symbol'</a> are.</p>
+
<p>The key distinctions between a <a>'symbol'</a> and a <a>'g'</a> are:</p>
<ul>
@@ -954,6 +1088,10 @@
contents of that element is included/drawn at that given point
in the document.</p>
+<p class="issue"><a>'use'</a> is described as referencing template
+objects, but the parameters of the template are limited – just
+different inherited property values.</p>
+
<p>Unlike <a>'image'</a>, the <a>'use'</a> element cannot reference
entire files.</p>
@@ -973,6 +1111,9 @@
element and its attributes. The SVG DOM does not show the
referenced element's contents as children of <a>'use'</a> element.</p>
+<p class="issue">We should define the behavior of <a>'use'</a>
+in terms of Web Components.</p>
+
<p>For user agents that support <a
href="styling.html#StylingWithCSS">Styling with CSS</a>, the
conceptual deep cloning of the referenced element into a
@@ -985,6 +1126,11 @@
cannot be applied to the (conceptually) cloned DOM tree because
its contents are not part of the formal document structure.</p>
+<p class="issue">We should be requiring CSS styling in SVG 2.
+Also, hopefully, how styles can apply or not to elements in the
+shadow tree (and how event handling works, below) should be specified by how
+we define <a>'use'</a> to work in terms of Web Components.</p>
+
<p>Property inheritance, however, works as if the referenced
element had been textually included as a deeply cloned child of
the <a>'use'</a> element. The
@@ -998,6 +1144,9 @@
within the "instance tree" corresponding to the given
referenced element.</p>
+<p class="issue">Once we define <a>'use'</a> in terms of
+Web Components, will we drop instance trees?</p>
+
<p>The event handling for the non-exposed tree works as if the
referenced element had been textually included as a deeply
cloned child of the <a>'use'</a>
@@ -1034,6 +1183,9 @@
element will be visible even if the <a>'use'</a> element specifies <span
class="prop-value">'visibility:hidden'</span>.</p>
+<p class="issue">Why is <a>'visibility'</a> called out speciically? It might
+be better just to include an example that shows this.</p>
+
<p>Animations on a referenced element will cause the instances
to also be animated.</p>
@@ -1041,6 +1193,9 @@
same visual effect as if the <a>'use'</a> element were replaced by the
following generated content:</p>
+<p class="issue">Except that the replaced content shouldn't affect
+how styles are matched.</p>
+
<ul>
<li>
<p><strong>If the <a>'use'</a> element references a <a>'symbol'</a> element</strong>:</p>
@@ -1172,63 +1327,70 @@
to create a circular dependency is an error, as described in <a
href="#Head">References and the <span class='element-name'>'defs'</span> element</a>.</p>
-<div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="UseElementXAttribute"><span
- class="adef">x</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The x-axis coordinate of one corner of the rectangular
- region into which the referenced element is placed.<br />
- If the attribute is not specified, the effect is as if a
- value of "0" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="UseElementYAttribute"><span
- class="adef">y</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The y-axis coordinate of one corner of the rectangular
- region into which the referenced element is placed.<br />
- If the attribute is not specified, the effect is as if a
- value of "0" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="UseElementWidthAttribute"><span
- class="adef">width</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>The width of the rectangular region into which the
- referenced element is placed. A negative value is an error
- (see <a href="implnote.html#ErrorProcessing">Error
- processing</a>). A value of zero disables rendering of this
- element.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="UseElementHeightAttribute"><span
- class="adef">height</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>The height of the rectangular region into which the
- referenced element is placed. A negative value is an error
- (see <a href="implnote.html#ErrorProcessing">Error
- processing</a>). A value of zero disables rendering of this
- element.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="UseElementHrefAttribute"><span
- class="adef">xlink:href</span> = "<span
- class="attr-value"><a
- href="types.html#DataTypeIRI"><iri></a></span>"</dt>
- <dd>A <a href="linking.html#IRIReference">IRI
- reference</a> to an element/fragment within an SVG
- document.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- </dl>
-</div>
+<p><em>Attribute definitions:</em></p>
+
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="UseElementXAttribute">x</dfn>, <dfn id="UseElementYAttribute">y</dfn></td>
+ <td><a><coordinate></a></td>
+ <td>0</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td><dfn id="UseElementWidthAttribute">width</dfn>, <dfn id="UseElementHeightAttribute">height</dfn></td>
+ <td><a><length></a></td>
+ <td>(see prose)</td>
+ <td>yes</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>The <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>
+ attributes specify the positioning of the referenced element.
+ The <a>'width'</a> and <a>'height'</a> attributes have different
+ <a>lacuna values</a> depending on the type of the referenced element:</p>
+ <dl class='switch'>
+ <dt><a>'svg'</a></dt>
+ <dd>The <a>lacuna values</a> are the <a>'svg/width'</a> and <a>'svg/height'</a>
+ values from the referenced <a>'svg'</a> element.</dd>
+ <dt>anything else</dt>
+ <dd>The <a>lacuna values</a> are <span class='attr-value'>'100%'</span>.</dd>
+ </dl>
+ <p>A negative value for <a>'width'</a> or <a>'height'</a> is an error (see
+ <a href="implnote.html#ErrorProcessing">Error processing</a>). If
+ <a>'width'</a> or <a>'height'</a> is zero then rendering of the
+ <a>'use'</a> element is disabled.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="UseElementHrefAttribute">href</dfn></td>
+ <td><a><iri></a></td>
+ <td>(none)</td>
+ <td>yes</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>An <a href="linking.html#IRIReference">IRI reference</a> to the
+ element/fragment within an SVG document to be cloned for
+ rendering.</p>
+ </dd>
+</dl>
</edit:with>
@@ -1280,6 +1442,9 @@
viewport and the <a>'clip'</a> and <a>'overflow'</a> properties on the <a>'image'</a> element define how the SVG
image content is clipped (or not) relative to the viewport.</p>
+<p class="issue">Why does it make sense to override <a>'clip'</a>
+but not <a>'clip-path'</a>?</p>
+
<p>The value of the <a>'viewBox'</a> attribute to use when
evaluating the <a>'preserveAspectRatio'</a> attribute is
defined by the referenced content. For content that clearly
@@ -1294,6 +1459,9 @@
ignored, and only the translation due to the <a>'x'</a> & <a>'y'</a> attributes of the viewport is
used to display the content.</p>
+<p class="issue">We should say how the use of an <code>#xywh</code>
+media fragment interacts with the the above.</p>
+
<p>For example, if the image element referenced a PNG or JPEG
and <span class="attr-value">preserveAspectRatio="xMinYMin
meet"</span>, then the aspect ratio of the raster would be
@@ -1379,74 +1547,81 @@
</table>
</div>
- <div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="ImageElementXAttribute"><span
- class="adef">x</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The x-axis coordinate of one corner of the rectangular
- region into which the referenced document is placed.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class="attr-value">'0'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="ImageElementYAttribute"><span
- class="adef">y</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The y-axis coordinate of one corner of the rectangular
- region into which the referenced document is placed.<br />
- If the attribute is not specified, the effect is as if a
- value of <span class="attr-value">'0'</span> were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="ImageElementWidthAttribute"><span
- class="adef">width</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>The width of the rectangular region into which the
- referenced document is placed.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="ImageElementHeightAttribute"><span
- class="adef">height</span> = "<span class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>The height of the rectangular region into which the
- referenced document is placed.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="ImageElementHrefAttribute"><span
- class="adef">xlink:href</span> = "<span
- class="attr-value"><a
- href="types.html#DataTypeIRI"><iri></a></span>"</dt>
- <dd>A <a href="linking.html#IRIReference">IRI
- reference</a>.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="ImageElementPreserveAspectRatioAttribute">
- <span class="adef">preserveAspectRatio</span> = "<span class='attr-value'><a href="coords.html#PreserveAspectRatioAttribute">[defer] <align> [<meetOrSlice>]</a></span>"
- </dt>
- <dd>
- <p>
- See <a>'preserveAspectRatio'</a>.
- </p>
- <p>
- If attribute <a>'preserveAspectRatio'</a> is not specified, then the effect is as if a value of <span class="attr-value">xMidYMid meet</span> were specified.
- </p>
- <p><span class="anim-target"><a href="animate.html#Animatable">Animatable</a>: yes.</span></p>
- </dd>
- </dl>
- </div>
+<p><em>Attribute definitions:</em></p>
+
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="ImageElementXAttribute">x</dfn>, <dfn id="ImageElementYAttribute">y</dfn></td>
+ <td><a><coordinate></a></td>
+ <td>0</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td><dfn id="ImageElementWidthAttribute">width</dfn>, <dfn id="ImageElementHeightAttribute">height</dfn></td>
+ <td><a><length></a></td>
+ <td>0</td>
+ <td>yes</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>The <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>
+ attributes specify the rectangular region into which the referenced
+ image is placed.</p>
+ <p>A negative value for <a>'width'</a> or <a>'height'</a> is invalid
+ (see <a href="implnote.html#ErrorProcessing">Error processing</a>).
+ A value of zero for either attribute disables rendering of the element.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="ImageElementHrefAttribute">xlink:href</dfn></td>
+ <td><a><iri></a></td>
+ <td>(none)</td>
+ <td>yes</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>An <a href="linking.html#IRIReference">IRI reference</a>
+ identifying the image to render.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="ImageElementPreserveAspectRatioAttribute">preserveAspectRatio</dfn></td>
+ <td>defer? <a><align></a> [ meet | slice ]?</td>
+ <td>xMidYMid meet</td>
+ <td>yes</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Specifies the fitting behavior when the aspect ratio of the referenced image
+ does not match the aspect ratio of the rectangle it is placed in.
+ See the definition of <a>'preserveAspectRatio'</a> for details.</p>
+ </dd>
+</dl>
<p>An example:</p>
@@ -1480,6 +1655,8 @@
the given attribute is not specified, then a true value is
assumed.</p>
+<p class="issue">It sounds strange to talk about attributes "returning" a value.</p>
+
<p>Similar to the <a>'display'</a> property, conditional processing
attributes only affect the direct rendering of elements and do
not prevent elements from being successfully referenced by
@@ -1532,26 +1709,36 @@
<h3 id="ConditionalProcessingRequiredFeaturesAttribute">The <span class='attr-name'>'requiredFeatures'</span> attribute</h3>
- <div class="adef-list">
- <p>Definition of <span
- class="adef">requiredFeatures</span>:</p>
- <dl>
- <dt id="RequiredFeaturesAttribute"><span class="adef">requiredFeatures</span> =
- <em>list-of-features</em></dt>
- <dd>The value is a list of feature strings, with the
- individual values separated by white space. Determines
- whether all of the named <em>features</em> are supported by
- the user agent. Only feature strings defined in the <a
- href="feature.html">Feature String</a> appendix are
- allowed. If all of the given features are supported, then
- the attribute evaluates to true; otherwise, the current
- element and its children are skipped and thus will not be
- rendered.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- </dl>
- </div>
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="RequiredFeaturesAttribute">requiredFeatures</dfn></td>
+ <td><em>list-of-features</em></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p class="issue">Need a grammar for <em>list-of-features</em>.</p>
+ <p>The value is a list of feature strings, with the
+ individual values separated by white space. Determines
+ whether all of the named <em>features</em> are supported by
+ the user agent. Only feature strings defined in the <a
+ href="feature.html">Feature String</a> appendix are
+ allowed. If all of the given features are supported, then
+ the attribute evaluates to true; otherwise, the current
+ element and its children are skipped and thus will not be
+ rendered.</p>
+ </dd>
+</dl>
<p>If the attribute is not present, then its implicit return
value is "true". If a null string or empty string value is
@@ -1572,26 +1759,35 @@
extension is identified by an <a
href="linking.html#IRIReference">IRI reference</a>.</p>
- <div class="adef-list">
- <p>Definition of <span
- class="adef">requiredExtensions</span>:</p>
- <dl>
- <dt id="RequiredExtensionsAttribute"><span class="adef">requiredExtensions</span> =
- <em>list-of-extensions</em></dt>
- <dd>The value is a list of <a
- href="linking.html#IRIReference">IRI reference</a>s which
- identify the required extensions, with the individual
- values separated by white space. Determines whether all of
- the named <em>extensions</em> are supported by the user
- agent. If all of the given extensions are supported, then
- the attribute evaluates to true; otherwise, the current
- element and its children are skipped and thus will not be
- rendered.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- </dl>
- </div>
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="ReuquiredExtensionsAttribute">requiredExtensions</dfn></td>
+ <td><em>list-of-extensions</em></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>The value is a list of <a
+ href="linking.html#IRIReference">IRI reference</a>s which
+ identify the required extensions, with the individual
+ values separated by white space. Determines whether all of
+ the named <em>extensions</em> are supported by the user
+ agent. If all of the given extensions are supported, then
+ the attribute evaluates to true; otherwise, the current
+ element and its children are skipped and thus will not be
+ rendered.</p>
+ </dd>
+</dl>
<p>If a given <a href="linking.html#IRIReference">IRI
reference</a> contains white space within itself, that white
@@ -1683,12 +1879,17 @@
situations, then it represents a simple switch on the given
element whether to render the element or not.</p>
+<p class="issue">Should have an attribute definition table in this section.</p>
+
<h3 id="ApplicabilityOfTestAttributes">Applicability of test attributes</h3>
<p>The following list describes the applicability of the test
attributes to the elements that do not directly produce
rendering.</p>
+<p class="issue">This was already mentioned in the "Conditional processing overview"
+section. We should just describe this once.</p>
+
<ul>
<li>the test attributes do not effect the
<a>'mask element'</a>, <a>'clipPath'</a>, <a>'linearGradient'</a>,
@@ -1709,29 +1910,56 @@
<p>The <a>'id'</a> and <a>'xml:base'</a> attributes are available on all SVG elements:</p>
- <div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="IDAttribute"><span
- class="adef">id</span> = "<span
- class="attr-value">name</span>"</dt>
- <dd>Standard XML attribute for assigning a unique
- <em>name</em> to an element. Refer to the <a href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible
- Markup Language (XML) 1.0</cite></a> Recommendation [<a href="refs.html#ref-XML10">XML10</a>].<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- <dt id="XMLBaseAttribute"><span
- class="adef">xml:base</span> = "<span class="attr-value"><a
- href="types.html#DataTypeIRI"><iri></a></span>"</dt>
- <dd>Specifies a base IRI other than the base IRI of the
- document or external entity. Refer to the <a href="http://www.w3.org/TR/2009/REC-xmlbase-20090128/"><cite>XML Base</cite></a>
- specification [<a href="refs.html#ref-XML-BASE">XML-BASE</a>].<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- </dl>
- </div>
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="IDAttribute">id</dfn></td>
+ <td><em>name</em></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p class="issue">Need a grammar for <em>name</em>.</p>
+ <p>Standard XML attribute for assigning a unique
+ <em>name</em> to an element. Refer to the <a href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible
+ Markup Language (XML) 1.0</cite></a> Recommendation [<a href="refs.html#ref-XML10">XML10</a>].</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="XMLBaseAttribute">xml:base</dfn></td>
+ <td><a><iri></a></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Specifies a base IRI other than the base IRI of the
+ document or external entity. Refer to the <a href="http://www.w3.org/TR/2009/REC-xmlbase-20090128/"><cite>XML Base</cite></a>
+ specification [<a href="refs.html#ref-XML-BASE">XML-BASE</a>].</p>
+ </dd>
+</dl>
+
+<p class="issue">Are we happy to keep promoting the use of <span class="attr-name">'xml:base'</span>?
+Is it a use case worth trying to include a more HTML-like syntax for – the <span class="element-name">'base'</span>
+element? We anyway need to define somewhere what effect the HTML <span class="element-name">'base'</span>
+element has on any SVG document fragments.</p>
<h3 id="LangSpaceAttrs">The <span class='attr-name'>'xml:lang'</span> and
<span class='attr-name'>'xml:space'</span> attributes</h3>
@@ -1761,88 +1989,86 @@
</table>
</div>
- <div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="XMLLangAttribute"><span
- class="adef">xml:lang</span> = "<span
- class="attr-value">languageID</span>"</dt>
- <dd>Standard XML attribute to specify the language (e.g.,
- English) used in the contents and attribute values of
- particular elements. Refer to the <a href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible Markup
- Language (XML) 1.0</cite></a> Recommendation [<a href="refs.html#ref-XML10">XML10</a>].<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- <dt id="XMLSpaceAttribute"> <span
- class="adef">xml:space</span> = "<span
- class="attr-value">{default | preserve}</span>"</dt>
- <dd>Deprecated XML attribute to specify whether white space
- is preserved in character data. The only possible values
- are <span class='attr-value'>'default'</span> and <span class='attr-value'>'preserve'</span>. Refer to the
- <a href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible Markup Language (XML) 1.0</cite></a>
- Recommendation [<a href="refs.html#ref-XML10">XML10</a>] and to the
- discussion <a href="text.html#WhiteSpace">white space
- handling</a> in SVG.<br />
- New content should use the <a>'white-space'</a> property instead.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- </dl>
- </div>
+<p class="issue">Should we be moving <span class="attr-name">'lang'</span> instead
+of <span class="attr-name">'xlink:lang'</span>?</p>
+
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="XMLLangAttribute">xml:lang</dfn></td>
+ <td><em>languageID</em></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p class="issue">Need a grammar for <em>languageID</em>.</p>
+ <p>Standard XML attribute to specify the language (e.g.,
+ English) used in the contents and attribute values of
+ particular elements. Refer to the <a href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible Markup
+ Language (XML) 1.0</cite></a> Recommendation [<a href="refs.html#ref-XML10">XML10</a>].</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="XMLSpaceAttribute">xml:space</dfn></td>
+ <td>default | preserve</td>
+ <td>default</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>Deprecated XML attribute to specify whether white space
+ is preserved in character data. The only possible values
+ are <span class='attr-value'>'default'</span> and <span class='attr-value'>'preserve'</span>. Refer to the
+ <a href="http://www.w3.org/TR/2008/REC-xml-20081126/"><cite>Extensible Markup Language (XML) 1.0</cite></a>
+ Recommendation [<a href="refs.html#ref-XML10">XML10</a>] and to the
+ discussion <a href="text.html#WhiteSpace">white space
+ handling</a> in SVG.</p>
+ <p>New content should use the <a>'white-space'</a> property instead.</p>
+ </dd>
+</dl>
<h2 id="DOMInterfaces">DOM interfaces</h2>
-<h3 id="InterfaceSVGDocument">Interface SVGDocument</h3>
-
-
-
-<p>When an <a>'svg'</a> element is embedded inline as
-a component of a document from another namespace, such as when an
-<a>'svg'</a> element is embedded inline within an
-XHTML document [<a href="refs.html#ref-XHTML">XHTML</a>], then an
-<a>SVGDocument</a> object will not exist; instead, the root object in
-the document object hierarchy will be a Document object of a different
-type, such as an HTMLDocument object.
-</p>
-
-
-<p>However, an <a>SVGDocument</a> object will indeed exist when the
-root element of the XML document hierarchy is an
-<a>'svg'</a> element, such as when viewing a stand-alone SVG file (i.e., a
-file with MIME type "image/svg+xml"). In this case, the <a>SVGDocument</a>
-object will be the root object of the document object model hierarchy.
-</p>
-
-
-<p>In the case where an SVG document is embedded by reference,
-such as when an XHTML document has an <span class="element-name">'object'</span>
+<h3 id="InterfaceSVGDocument">Interface Document</h3>
+
+<p>The DOM Core specification defines a <a>Document</a> interface, which this specification extends.</p>
+
+<p class="note">In the case where an SVG document is embedded by reference,
+such as when an HTML document has an <span class="element-name">'object'</span>
element whose <span class="attr-name">'href'</span> attribute references an SVG
document (i.e., a document whose MIME type is "image/svg+xml"
and whose root element is thus an <a>'svg'</a> element), there will exist
two distinct DOM hierarchies. The first DOM hierarchy will be for the
referencing document (e.g., an XHTML document). The second DOM hierarchy
-will be for the referenced SVG document. In this second DOM hierarchy, the
-root object of the document object model hierarchy is an
-<a>SVGDocument</a> object.
+will be for the referenced SVG document.
</p>
-
-<p>The <a>SVGDocument</a> interface contains a similar list of attributes
-and methods to the HTMLDocument interface described in the
-<a href="http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html">Document
-Object Model (HTML) Level 1</a> chapter of the
-[<a href="refs.html#ref-DOM1">DOM1</a>] specification.
-</p>
-
-<p class="issue">We shouldn't be shadowing URL from Document, we should just inherit it.
-HTML defines title, referrer and domain.</p>
-
-<pre class="idl">interface <b>SVGDocument</b> : <a>Document</a> {
+<p class="issue">HTML defines title, referrer and domain.</p>
+
+<p>For historical reasons, <a>Window</a> objects must also have a writable, configurable,
+non-enumerable property named SVGDocument whose value is the <a>Document</a> interface object.</p>
+
+<pre class="idl">partial interface <a>Document</a> {
readonly attribute DOMString <a href="struct.html#__svg__SVGDocument__title">title</a>;
readonly attribute DOMString <a href="struct.html#__svg__SVGDocument__referrer">referrer</a>;
readonly attribute DOMString <a href="struct.html#__svg__SVGDocument__domain">domain</a>;
- readonly attribute DOMString <a href="struct.html#__svg__SVGDocument__URL">URL</a>;
readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGSVGElement">SVGSVGElement</a> <a href="struct.html#__svg__SVGDocument__rootElement">rootElement</a>;
};</pre><dl class="interface">
<dt class="attributes-header">Attributes:</dt>
@@ -1878,14 +2104,6 @@
</div>
</dd>
-<dt id="__svg__SVGDocument__URL" class="attribute"><b>URL</b><span class="idl-type-parenthetical"> (readonly DOMString)</span></dt>
-<dd class="attribute">
-<div>
-The complete URI of the document.
-
-</div>
-</dd>
-
<dt id="__svg__SVGDocument__rootElement" class="attribute"><b>rootElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGSVGElement">SVGSVGElement</a>)</span></dt>
<dd class="attribute">
<div>
@@ -1897,7 +2115,6 @@
</dd>
</dl>
-
<h3 id="InterfaceSVGSVGElement">Interface SVGSVGElement</h3>
@@ -2043,6 +2260,9 @@
systems where it is impossible to know the size of a pixel, a
suitable default pixel size is provided.
+<p class="issue">Should this and the next three IDL attributes be removed?
+Are they implemented?</p>
+
</div>
</dd>
@@ -2320,6 +2540,10 @@
In rendering environments supporting interactivity, forces the user agent
to immediately redraw all regions of the viewport that require updating.
+<p class="issue">Should this method be neutered as suspendRedraw and friends
+have been? Do implementations actually support painting in the middle of
+a running script by calling this method?</p>
+
</div>
</dd>
@@ -2610,6 +2834,8 @@
Unselects any selected objects, including any selections of text strings
and type-in bars.
+<p class="issue">What is a type-in bar? Do we need <code>deselectAll</code> given
+we have DOM Selection?</p>
</div>
</dd>
@@ -2795,6 +3021,9 @@
no such element exists, returns null. Behavior is not defined if more
than one element has this id.
+<p class="issue">Do we need this? If so, can we define it in terms of
+calling Document.getElementById and checking whether the returned
+element is within the subtree?</p>
</div>
<dl class="operation">
--- a/master/style/default_svg.css Fri Sep 07 16:16:40 2012 +1000
+++ b/master/style/default_svg.css Wed Nov 28 16:47:02 2012 +1100
@@ -279,10 +279,10 @@
padding-right: 16px;
}
-body.chapter-index,
-body.chapter-index h1,
-body.chapter-index h2,
-body.chapter-index h3,
+.chapter-index,
+.chapter-index h1,
+.chapter-index h2,
+.chapter-index h3,
body.ready-for-wider-review,
h1.ready-for-wider-review,
h2.ready-for-wider-review,
@@ -292,10 +292,10 @@
.ready-for-wider-review > h3,
.ready-for-wider-review {
background-color: white ! important;
- margin-left: 0;
- margin-right: 0;
- padding-left: 0;
- padding-right: 0;
+ margin-left: -16px;
+ margin-right: -16px;
+ padding-left: 16px;
+ padding-right: 16px;
}
.svg2-requirement table { border-collapse: collapse; width: 100% }
@@ -336,3 +336,45 @@
.eltdef td > p:first-child { margin-top: 0 }
.eltdef th { white-space: nowrap }
.eltdef pre.idl { margin: 0; padding: 0; background: none }
+
+/* Attribute definition tables */
+table.propdef.attrdef { border-left-color: #888; border-left-width: 0; background-color: #eee; font-size: 90% }
+table.propdef.attrdef th, table.propdef.attrdef td { border-bottom-color: #ccc }
+
+table.propdef.attrdef th:first-child,
+table.propdef.attrdef td:first-child { width: 16em; padding-left: 0 !important }
+
+table.propdef.attrdef th:first-child + th,
+table.propdef.attrdef td:first-child + td { width: auto }
+
+table.propdef.attrdef th:first-child + th + th,
+table.propdef.attrdef td:first-child + td + td { width: 6em }
+
+table.propdef.attrdef th:first-child + th + th + th,
+table.propdef.attrdef td:first-child + td + td + td { width: 6em; padding-right: 0 !important }
+
+/* HTML5-like switch statements. */
+dl.switch > dd > ol.only {
+ margin-left: 0;
+}
+dl.switch > dd > ol.algorithm {
+ margin-left: -2em;
+}
+dl.switch {
+ padding-left: 2em;
+}
+dl.switch > dt {
+ text-indent: -1.5em;
+ margin-top: 1em;
+}
+dl.switch > dt + dt {
+ margin-top: 0;
+}
+dl.switch > dt:before {
+ content: '\21AA';
+ padding: 0 0.5em 0 0;
+ display: inline-block;
+ width: 1em;
+ text-align: right;
+ line-height: 0.5em;
+}
--- a/master/styling.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/styling.html Wed Nov 28 16:47:02 2012 +1100
@@ -49,6 +49,9 @@
<p id='PropertiesFromCSS2'>The following properties are shared between CSS 2.1 and SVG.
Most of these properties are also defined in XSL:</p>
+<p class="issues">This list needs to be updated. We should list all the properties
+we normative require support for, and which specification they are defined in.</p>
+
<ul>
<li>
<a href="text.html#FontPropertiesUsedBySVG">Font
@@ -183,6 +186,8 @@
<h2 id='StylingScenarios'>Usage scenarios for styling</h2>
+<p class="issues">Does this section add anything?</p>
+
<p>SVG has many usage scenarios, each with different needs.
Here are three common usage scenarios:</p>
@@ -295,6 +300,9 @@
this specification, plus for each in a list here for properties in other
specifications, there exists a presentation attribute.</p>
+<p class="issue">Do we plan to grow a presentation attribute for each
+new CSS property that we support?</p>
+
<p>The following example shows how the <a>'fill'</a> and
<a>'stroke'</a> properties can be specified on a <a>'rect'</a> using the
<span class="attr-name">'fill'</span> and
@@ -413,6 +421,11 @@
<h2 id='StylingWithXSL'>Styling with XSL</h2>
+<p class="issue">How much do we really need to mention XSLT?
+Probably the only thing worth mentioning is that <code><?xml-stylesheet?></code>
+can be used in an XML serialized SVG document (not that we
+require support for this, though).</p>
+
<p>XSL style sheets [<a href="refs.html#ref-XSLT">XSLT</a>] [<a href="refs.html#ref-XSLT2">XSLT2</a>] define how to
transform XML content into something else, usually other XML.
When XSLT is used in conjunction with SVG, sometimes SVG
@@ -726,6 +739,15 @@
documented in <a href="http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/"><cite>Associating Style Sheets with XML documents Version 1.0</cite></a>
[<a href="refs.html#ref-XML-SS">XML-SS</a>].</p>
+<p class="issue">We should suggest <code>@import</code> as a means for
+referencing external CSS style sheets that will also work in an HTML5
+document.</p>
+
+<p class="issue">Where is it defined that an HTML <span class="element-name">'link'</span>
+element can cause a style sheet to be loaded and applied to SVG content? Should
+we allow (an SVG or HTML namespace) <span class="element-name">'link'</span> element
+in an SVG document fragment?</p>
+
<h2 id='StyleElement'>The <span class="element-name">'style'</span> element</h2>
<div class="annotation svg2-requirement">
@@ -757,42 +779,79 @@
<edit:elementsummary name='style'/>
- <div class="adef-list">
- <p>Attribute definitions:</p>
- <dl>
- <dt id='StyleElementTypeAttribute'><span
- class="adef">type</span> = <em>content-type</em></dt>
- <dd>This attribute specifies the style sheet language of
- the element's contents. The style sheet language is
- specified as a content type (e.g., "text/css"), as per <a href="http://www.ietf.org/rfc/rfc2046.txt">MIME Part Two: Media Types</a>
- [<a href="refs.html#ref-RFC2046">RFC2046</a>].
- If the attribute is not specified, then the
- style sheet language is assumed to be CSS.
- <br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- <dt id="StyleElementMediaAttribute"><span
- class="adef">media</span> = <em>media-descriptors</em></dt>
- <dd>This attribute specifies the intended destination
- medium for style information. It may be a single media
- descriptor or a comma-separated list. The default value for
- this attribute is "all". The set of recognized
- <em>media-descriptors</em> are the list of <a href='http://www.w3.org/TR/2011/REC-CSS2-20110607/media.html#media-types'>media types recognized by CSS 2.1</a>
- ([<a href="refs.html#ref-CSS21">CSS21</a>], section 7.3).<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- <dt id="StyleElementTitleAttribute"><span
- class="adef">title</span> = <em>advisory-title</em></dt>
- <dd>(For compatibility with HTML 4 [<a
- href="refs.html#ref-HTML4">HTML4</a>].) This
- attribute specifies an advisory title for the <a>'style element'</a> element.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- no.</span></dd>
- </dl>
- </div>
+<p><em>Attribute definitions:</em></p>
+
+<dl class="attrdef-list">
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="StyleElementTypeAttribute">type</dfn></td>
+ <td><em>content-type</em></td>
+ <td>text/css</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>This attribute specifies the style sheet language of
+ the element's contents. The style sheet language is
+ specified as a content type (e.g., "text/css"), as per <a href="http://www.ietf.org/rfc/rfc2046.txt">MIME Part Two: Media Types</a>
+ [<a href="refs.html#ref-RFC2046">RFC2046</a>].
+ If the attribute is not specified, then the
+ style sheet language is assumed to be CSS.</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="StyleElementMediaAttribute">media</dfn></td>
+ <td><em>media</em></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>This attribute specifies the intended destination
+ medium for style information. It may be a single media
+ descriptor or a comma-separated list. The default value for
+ this attribute is "all". The set of recognized
+ <em>media-descriptors</em> are the list of <a href='http://www.w3.org/TR/2011/REC-CSS2-20110607/media.html#media-types'>media types recognized by CSS 2.1</a>
+ ([<a href="refs.html#ref-CSS21">CSS21</a>], section 7.3).</p>
+ </dd>
+ <dt>
+ <table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn id="StyleElementTitleAttribute">title</dfn></td>
+ <td><em>advisory-title</em></td>
+ <td>(none)</td>
+ <td>no</td>
+ </tr>
+ </table>
+ </dt>
+ <dd>
+ <p>(For compatibility with HTML 4 [<a
+ href="refs.html#ref-HTML4">HTML4</a>].) This
+ attribute specifies an advisory title for the <a>'style element'</a> element.</p>
+ </dd>
+</dl>
<p>The syntax of style data depends on the style sheet language.</p>
@@ -996,6 +1055,10 @@
contextual CSS selectors, or use XSL selectors.</dd>
</dl>
+<p class="issue">As part of unifying HTML's and SVG's
+<span class="element-name">'style'</span> element, we should
+allow and mention scoped style sheets here.</p>
+
<h2 id='UAStyleSheet'>User agent style sheet</h2>
<p>The user agent shall maintain a
@@ -1014,6 +1077,14 @@
svg { width:attr(width); height:attr(height) }
</pre>
+<p class="issue">This needs to be reviewed. It should at least
+use <code>@namespace</code> to cause the rules to match only
+SVG elements. <code>attr(width)</code> won't do the right
+thing if the <span class="attr-name">'width'</span> attribute does
+not use a unit. And what about when the attributes are being
+animated? Presumably <code>attr()</code> doesn't look at animated
+values.</p>
+
<p>The first line of the above user agent style sheet will
cause the <a href="masking.html#InitialClippingPath">initial
clipping path</a> to be established at the bounds of the <a
@@ -1054,6 +1125,11 @@
On user agents that support aural style sheets, the following CSS 2.1
properties can be applied:</p>
+<p class="issue">The above list misses <a>'a'</a>, which can be
+within a <a>'text'</a> element. Is there a conformance class in CSS
+we can link to for "user agents that support aural style sheets"?
+Are aural properties still relevant?</p>
+
<table class='vert'>
<tr>
<th>Aural property</th>
--- a/master/text.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/text.html Wed Nov 28 16:47:02 2012 +1100
@@ -4759,7 +4759,7 @@
will return 2 since there are two UTF-16 code units (the surrogate pair)
used to represent that one character.
</p>
-<pre class="idl">interface <b>SVGTextContentElement</b> : <a>SVGGraphicsElement</a> {
+<pre class="idl">interface <b>SVGTextContentElement</b> : <a>SVGGeometryElement</a> {
// lengthAdjust Types
const unsigned short <a href="text.html#__svg__SVGTextContentElement__LENGTHADJUST_UNKNOWN">LENGTHADJUST_UNKNOWN</a> = 0;
--- a/master/types.html Fri Sep 07 16:16:40 2012 +1000
+++ b/master/types.html Wed Nov 28 16:47:02 2012 +1100
@@ -491,6 +491,8 @@
<p>In the SVG DOM, <length> values are represented using
<a>SVGLength</a> or <a>SVGAnimatedLength</a> objects.</p>
+
+ <p class='issue'>We should disentangle lengths and percentages.</p>
</dd>
<dt id="DataTypeListOfFamilyNames"><list-of-family-names></dt>
@@ -1500,6 +1502,9 @@
SVG language (such as the <a>SVGPathElement</a> interface for the
<a>'path'</a> element) derive from the <a>SVGElement</a> interface.</p>
+<p class="issue">SVGElement needs to gain IDL attributes for all of the
+event listener attributes that are supported.</p>
+
<pre class="idl">interface <b>SVGElement</b> : <a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-745549614">Element</a> {
attribute DOMString <a href="types.html#__svg__SVGElement__id">id</a>;
attribute DOMString <a href="types.html#__svg__SVGElement__xmlbase">xmlbase</a>;
@@ -1696,38 +1701,42 @@
<h3 id="InterfaceSVGStringList">Interface SVGStringList</h3>
-
-
<p>This interface defines a list of DOMString values.</p>
-
<p><a>SVGStringList</a> has the same attributes and methods as other
SVGxxxList interfaces. Implementers may consider using a single base class
-to implement the various SVGxxxList interfaces.
-</p>
+to implement the various SVGxxxList interfaces.</p>
+
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGStringList</a> object is all non-negative integers less than
+the length of the list.</p>
+
<pre class="idl">interface <b>SVGStringList</b> {
+ readonly attribute unsigned long <a href="types.html#__svg__SVGStringList__length">length</a>;
readonly attribute unsigned long <a href="types.html#__svg__SVGStringList__numberOfItems">numberOfItems</a>;
void <a href="types.html#__svg__SVGStringList__clear">clear</a>();
DOMString <a href="types.html#__svg__SVGStringList__initialize">initialize</a>(DOMString newItem);
- DOMString <a href="types.html#__svg__SVGStringList__getItem">getItem</a>(unsigned long index);
+ getter DOMString <a href="types.html#__svg__SVGStringList__getItem">getItem</a>(unsigned long index);
DOMString <a href="types.html#__svg__SVGStringList__insertItemBefore">insertItemBefore</a>(DOMString newItem, unsigned long index);
DOMString <a href="types.html#__svg__SVGStringList__replaceItem">replaceItem</a>(DOMString newItem, unsigned long index);
DOMString <a href="types.html#__svg__SVGStringList__removeItem">removeItem</a>(unsigned long index);
DOMString <a href="types.html#__svg__SVGStringList__appendItem">appendItem</a>(DOMString newItem);
-};</pre><dl class="interface">
+ <a href="#__svg__SVGStringList__setter">setter</a> void (unsigned long index, DOMString newItem);
+};</pre>
+
+<dl class="interface">
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
+<dt id="__svg__SVGStringList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+<dd class="attribute"><div>The number of items in the list.</div></dd>
+
<dt id="__svg__SVGStringList__numberOfItems" class="attribute first-child"><b>numberOfItems</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
-<dd class="attribute">
-<div>
-The number of items in the list.
-
-</div>
-</dd>
+<dd class="attribute"><div>The number of items in the list.</div></dd>
+
</dl>
</dd>
<dt class="operations-header">Operations:</dt>
@@ -2040,6 +2049,8 @@
</dd>
</dl>
</dd>
+<dt id="__svg__SVGStringList__setter" class="operation"><b>setter</b> void (unsigned long <var>index</var>, DOMString <var>newItem</var>)</dt>
+<dd class="operation"><div>Replaces the item at index <var>index</var> with <var>newItem</var>.</div></dd>
</dl>
</dd>
</dl>
@@ -2126,28 +2137,34 @@
<h3 id="InterfaceSVGNumber">Interface SVGNumber</h3>
-
-Used for attributes of basic type
-<a href="types.html#DataTypeNumber"><number></a>.
-<pre class="idl">interface <b>SVGNumber</b> {
+<p>Used for attributes of basic type
+<a href="types.html#DataTypeNumber"><number></a>.</p>
+
+<pre class="idl">[<a href="#__svg__SVGNumber__constructor">Constructor</a>,
+ <a href="#__svg__SVGNumber__constructor1">Constructor</a>(float value)]
+interface <b>SVGNumber</b> {
attribute float <a href="types.html#__svg__SVGNumber__value">value</a>;
};</pre>
<dl class="interface">
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGNumber__value" class="attribute first-child"><b>value</b><span class="idl-type-parenthetical"> (float)</span></dt>
-<dd class="attribute">
-<div>
-The value of the given attribute.
-
-
-</div>
-</dd>
-</dl>
-</dd>
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGNumber__constructor" class="operation first-child"><b>SVGNumber</b>()</dt>
+ <dd>Creates a new <a>SVGNumber</a> object with its value attribute set to 0.</dd>
+ <dt id="__svg__SVGNumber__constructor1" class="operation first-child"><b>SVGNumber</b>(float <var>value</var>)</dt>
+ <dd>Creates a new <a>SVGNumber</a> object with its value attribute set to <var>value</var>.</dd>
+ </dl>
+ </dd>
+ <dt class="attributes-header">Attributes:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGNumber__value" class="attribute first-child"><b>value</b><span class="idl-type-parenthetical"> (float)</span></dt>
+ <dd class="attribute">
+ <div>The value of the given attribute.</div>
+ </dd>
+ </dl>
+ </dd>
</dl>
@@ -2193,44 +2210,50 @@
<h3 id="InterfaceSVGNumberList">Interface SVGNumberList</h3>
-
-
<p>This interface defines a list of SVGNumber objects.</p>
-
<p><a>SVGNumberList</a> has the same attributes and methods as other
SVGxxxList interfaces. Implementers may consider using a single base class
-to implement the various SVGxxxList interfaces.
-</p>
-
+to implement the various SVGxxxList interfaces.</p>
+
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGNumberList</a> object is all non-negative integers less than
+the length of the list.</p>
<p id="ReadOnlyNumberList">An <a>SVGNumberList</a> object can be designated as <em>read only</em>,
which means that attempts to modify the object will result in an exception
-being thrown, as described below.
-</p>
+being thrown, as described below.</p>
+
<pre class="idl">interface <b>SVGNumberList</b> {
+ readonly attribute unsigned long <a href="types.html#__svg__SVGNumberList__length">length</a>;
readonly attribute unsigned long <a href="types.html#__svg__SVGNumberList__numberOfItems">numberOfItems</a>;
void <a href="types.html#__svg__SVGNumberList__clear">clear</a>();
<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__initialize">initialize</a>(<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> newItem);
- <a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__getItem">getItem</a>(unsigned long index);
+ getter <a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__getItem">getItem</a>(unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__insertItemBefore">insertItemBefore</a>(<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> newItem, unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__replaceItem">replaceItem</a>(<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> newItem, unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__removeItem">removeItem</a>(unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> <a href="types.html#__svg__SVGNumberList__appendItem">appendItem</a>(<a class="idlinterface" href="types.html#InterfaceSVGNumber">SVGNumber</a> newItem);
-};</pre><dl class="interface">
+ <a href="#__svg__SVGNumberList__setter">setter</a> void (unsigned long index, <a>SVGNumber</a> newItem);
+};</pre>
+
+<dl class="interface">
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
+<dt id="__svg__SVGNumberList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+<dd class="attribute">
+<div>The number of items in the list.</div>
+</dd>
+
<dt id="__svg__SVGNumberList__numberOfItems" class="attribute first-child"><b>numberOfItems</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
<dd class="attribute">
-<div>
-The number of items in the list.
-
-</div>
-</dd>
+<div>The number of items in the list.</div>
+</dd>
+
</dl>
</dd>
<dt class="operations-header">Operations:</dt>
@@ -2560,6 +2583,11 @@
</dd>
</dl>
</dd>
+<dt id="__svg__SVGNumberList__setter" class="operation"><b>setter</b> void (unsigned long <var>index</var>, <a>SVGNumber</a> <var>newItem</var>)</dt>
+<dd class="operation"><div>Replaces the item at index <var>index</var> with <var>newItem</var>.
+If the list is <a href="#ReadOnlyNumberList">read only</a>, then a
+<a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#nomodificationallowederror">NoModificationAllowedError</a>
+is thrown.</div></dd>
</dl>
</dd>
</dl>
@@ -2604,18 +2632,32 @@
<h3 id="InterfaceSVGLength">Interface SVGLength</h3>
-
-
<p>The <a>SVGLength</a> interface corresponds to the
-<a href="types.html#DataTypeLength"><length></a> basic data type.
-</p>
-
+<a href="types.html#DataTypeLength"><length></a> and
+<a href="types.html#DataTypePercentage"><percentage></a> basic data types,
+and represents a length or percentage that consists of a numerical factor and a unit,
+where the unit is one of the set of units described in
+<a href="coords.html#Units">Units</a> (em, ex, px, pt, pc, cm, mm and in),
+a percentage, a unitless number (user units), or "unknown".</p>
<p id="ReadOnlyLength">An <a>SVGLength</a> object can be designated as <em>read only</em>,
which means that attempts to modify the object will result in an exception
-being thrown, as described below.
-</p>
-<pre class="idl">interface <b>SVGLength</b> {
+being thrown, as described below.</p>
+
+<p id="AssociatedElement">An <a>SVGLength</a> object can be <em>associated</em>
+with a particular element, as well as being designated with a <em>directionality</em>:
+horizontal, vertical or unspecified. The associated element and the directionality of the
+length are used to resolve percentage values to user units. Unless otherwise
+described, an <a>SVGLength</a> object is not associated with any element and
+has unspecified directionality.</p>
+
+<p class='issue'>We need to define the behavior of converting values from/to percentages
+when the viewport width/height/size is zero.</p>
+
+<pre class="idl">[<a href="#__svg__SVGLength__constructor">Constructor</a>,
+ <a href="#__svg__SVGLength__constructor1">Constructor</a>(float value, optional unsigned short unitType),
+ <a href="#__svg__SVGLength__constructor2">Constructor</a>(DOMString value)]
+interface <b>SVGLength</b> {
// Length Unit Types
const unsigned short <a href="types.html#__svg__SVGLength__SVG_LENGTHTYPE_UNKNOWN">SVG_LENGTHTYPE_UNKNOWN</a> = 0;
@@ -2637,318 +2679,224 @@
void <a href="types.html#__svg__SVGLength__newValueSpecifiedUnits">newValueSpecifiedUnits</a>(unsigned short unitType, float valueInSpecifiedUnits);
void <a href="types.html#__svg__SVGLength__convertToSpecifiedUnits">convertToSpecifiedUnits</a>(unsigned short unitType);
-};</pre><dl class="interface">
-<dt class="constants-header">Constants in group “Length Unit Types”:</dt>
-<dd>
-<dl class="constants">
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_UNKNOWN" class="constant first-child"><b>SVG_LENGTHTYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-The unit type is not one of predefined unit types. It is invalid to
-attempt to define a new value of this type or to attempt to switch an
-existing value to this type.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_NUMBER" class="constant"><b>SVG_LENGTHTYPE_NUMBER</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-No unit type was provided (i.e., a unitless value was specified), which
-indicates a value in user units.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_PERCENTAGE" class="constant"><b>SVG_LENGTHTYPE_PERCENTAGE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A percentage value was specified.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_EMS" class="constant"><b>SVG_LENGTHTYPE_EMS</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the em units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_EXS" class="constant"><b>SVG_LENGTHTYPE_EXS</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the ex units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_PX" class="constant"><b>SVG_LENGTHTYPE_PX</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the px units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_CM" class="constant"><b>SVG_LENGTHTYPE_CM</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the cm units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_MM" class="constant"><b>SVG_LENGTHTYPE_MM</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the mm units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_IN" class="constant"><b>SVG_LENGTHTYPE_IN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the in units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_PT" class="constant"><b>SVG_LENGTHTYPE_PT</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the pt units defined in CSS 2.1.
-
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__SVG_LENGTHTYPE_PC" class="constant"><b>SVG_LENGTHTYPE_PC</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
-<dd class="constant">
-<div>
-A value was specified using the pc units defined in CSS 2.1.
-
-
-</div>
-</dd>
-</dl>
-</dd>
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGLength__unitType" class="attribute first-child"><b>unitType</b><span class="idl-type-parenthetical"> (readonly unsigned short)</span></dt>
-<dd class="attribute">
-<div>
-The type of the value as specified by one of the SVG_LENGTHTYPE_*
-constants defined on this interface.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGLength__value" class="attribute"><b>value</b><span class="idl-type-parenthetical"> (float)</span></dt>
-<dd class="attribute">
-<div>
-The value as a floating point value, in user units. Setting this
-attribute will cause <a>valueInSpecifiedUnits</a> and
-<a>valueAsString</a> to be updated automatically to reflect this setting.
-
-
-</div>
-<dl class="attribute">
-<dt class="exceptions-header">Exceptions on setting</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the length is
-<a href="#ReadOnlyLength">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLength__valueInSpecifiedUnits" class="attribute"><b>valueInSpecifiedUnits</b><span class="idl-type-parenthetical"> (float)</span></dt>
-<dd class="attribute">
-<div>
-The value as a floating point value, in the units expressed by
-<a>unitType</a>. Setting this attribute will cause <a>value</a> and
-<a>valueAsString</a> to be updated automatically to reflect this setting.
-
-
-</div>
-<dl class="attribute">
-<dt class="exceptions-header">Exceptions on setting</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the length is
-<a href="#ReadOnlyLength">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLength__valueAsString" class="attribute"><b>valueAsString</b><span class="idl-type-parenthetical"> (DOMString)</span></dt>
-<dd class="attribute">
-<div>
-The value as a string value, in the units expressed by <a>unitType</a>.
-Setting this attribute will cause <a>value</a>,
-<a>valueInSpecifiedUnits</a> and <a>unitType</a>
-to be updated automatically to reflect this
-setting.
-
-
-</div>
-<dl class="attribute">
-<dt class="exceptions-header">Exceptions on setting</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code SYNTAX_ERR
-</dt>
-<dd class="exception"> Raised if the assigned string cannot
-be parsed as a valid <a><length></a>.
-
-</dd>
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the length is
-<a href="#ReadOnlyLength">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-<dt class="operations-header">Operations:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGLength__newValueSpecifiedUnits" class="operation first-child">void <b>newValueSpecifiedUnits</b>(unsigned short <var>unitType</var>, float <var>valueInSpecifiedUnits</var>)
-</dt>
-<dd class="operation">
-<div>
-Reset the value as a number with an associated <a>unitType</a>, thereby
-replacing the values for all of the attributes on the object.
-
-
-</div>
-<dl class="operation">
-<dt class="parameters-header">Parameters</dt>
-<dd>
-<ol class="parameters">
-<li class="parameter first-child">
-<div>unsigned short <var>unitType</var></div>
-<div> The unit type for the value (e.g., <a>SVG_LENGTHTYPE_MM</a>).
-
-</div>
-</li>
-<li class="parameter">
-<div>float <var>valueInSpecifiedUnits</var></div>
-<div> The new value.
-
-</div>
-</li>
-</ol>
-</dd>
-<dt class="exceptions-header">Exceptions</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception first-child"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR
-</dt>
-<dd class="exception"> Raised if unitType is SVG_LENGTHTYPE_UNKNOWN
-or not a valid unit type constant (one of the other SVG_LENGTHTYPE_* constants
-defined on this interface).
-
-</dd>
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the length is
-<a href="#ReadOnlyLength">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGLength__convertToSpecifiedUnits" class="operation">void <b>convertToSpecifiedUnits</b>(unsigned short <var>unitType</var>)
-</dt>
-<dd class="operation">
-<div>
-Preserve the same underlying stored value, but reset the stored unit
-identifier to the given <var>unitType</var>. Object attributes
-<a>unitType</a>, <a>valueInSpecifiedUnits</a> and <a>valueAsString</a>
-might be modified as a result of this method. For example, if the
-original value were "0.5cm" and the method was invoked to convert to
-millimeters, then the <a>unitType</a> would be changed to
-<a>SVG_LENGTHTYPE_MM</a>, <a>valueInSpecifiedUnits</a> would be changed
-to the numeric value 5 and <a>valueAsString</a> would be changed to
-"5mm".
-
-
-</div>
-<dl class="operation">
-<dt class="parameters-header">Parameters</dt>
-<dd>
-<ol class="parameters">
-<li class="parameter first-child">
-<div>unsigned short <var>unitType</var></div>
-<div> The unit type to switch to (e.g., <a>SVG_LENGTHTYPE_MM</a>).
-
-</div>
-</li>
-</ol>
-</dd>
-<dt class="exceptions-header">Exceptions</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception first-child"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR
-</dt>
-<dd class="exception"> Raised if unitType is SVG_LENGTHTYPE_UNKNOWN
-or not a valid unit type constant (one of the other SVG_LENGTHTYPE_* constants
-defined on this interface).
-
-</dd>
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the length is
-<a href="#ReadOnlyLength">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
+};</pre>
+
+<dl class="interface">
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGLength__constructor" class="operation first-child"><b>SVGLength</b>()</dt>
+ <dd>Creates a new <a>SVGLength</a> object whose value is zero user units.</dd>
+ <dt id="__svg__SVGLength__constructor1" class="operation first-child"><b>SVGLength</b>(float <var>value</var>, optional unsigned short <var>unitType</var>)</dt>
+ <dd>Creates a new <a>SVGLength</a> object whose value is <var>value</var> in the
+ units specified by <var>unitType</var>.</dd>
+ <dt id="__svg__SVGLength__constructor2" class="operation first-child"><b>SVGLength</b>(DOMString <var>value</var>)</dt>
+ <dd>Creates a new <a>SVGLength</a> object whose value is determined by
+ parsing <var>value</var> as a <a><length></a> or <a><percentage></a>.
+ If <var>value</var> cannot be parsed as a <a><length></a> or
+ <a><percentage></a>, then a
+ <a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#syntaxerror">SyntaxError</a>
+ is thrown.</dd>
+ </dl>
+ </dd>
+ <dt class="constants-header">Constants in group “Length Unit Types”:</dt>
+ <dd>
+ <dl class="constants">
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_UNKNOWN" class="constant first-child"><b>SVG_LENGTHTYPE_UNKNOWN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>The unit type is not one of predefined unit types. It is invalid to
+ attempt to define a new value of this type or to attempt to switch an
+ existing value to this type.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_NUMBER" class="constant"><b>SVG_LENGTHTYPE_NUMBER</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>No unit type was provided (i.e., a unitless value was specified), which
+ indicates a value in user units.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_PERCENTAGE" class="constant"><b>SVG_LENGTHTYPE_PERCENTAGE</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A percentage value was specified.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_EMS" class="constant"><b>SVG_LENGTHTYPE_EMS</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the em units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_EXS" class="constant"><b>SVG_LENGTHTYPE_EXS</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the ex units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_PX" class="constant"><b>SVG_LENGTHTYPE_PX</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the px units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_CM" class="constant"><b>SVG_LENGTHTYPE_CM</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the cm units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_MM" class="constant"><b>SVG_LENGTHTYPE_MM</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the mm units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_IN" class="constant"><b>SVG_LENGTHTYPE_IN</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the in units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_PT" class="constant"><b>SVG_LENGTHTYPE_PT</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the pt units defined in CSS 2.1.</div>
+ </dd>
+ <dt id="__svg__SVGLength__SVG_LENGTHTYPE_PC" class="constant"><b>SVG_LENGTHTYPE_PC</b><span class="idl-type-parenthetical"> (unsigned short)</span></dt>
+ <dd class="constant">
+ <div>A value was specified using the pc units defined in CSS 2.1.</div>
+ </dd>
+ </dl>
+ </dd>
+ <dt class="attributes-header">Attributes:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGLength__unitType" class="attribute first-child"><b>unitType</b><span class="idl-type-parenthetical"> (readonly unsigned short)</span></dt>
+ <dd class="attribute">
+ <div>The type of the value as specified by one of the SVG_LENGTHTYPE_*
+ constants defined on this interface.</div>
+ </dd>
+ <dt id="__svg__SVGLength__value" class="attribute"><b>value</b><span class="idl-type-parenthetical"> (float)</span></dt>
+ <dd class="attribute">
+ <div>The value of the length in user units.
+ On getting, returns the value converted to user units. If
+ the type of the <a>SVGLength</a> is unknown, or it is a percentage
+ but the object has no associated element, the numerical factor
+ of the length is returned. On setting, sets the numerical
+ factor to the assigned value and the unit type to user units.</div>
+ <dl class="attribute">
+ <dt class="exceptions-header">Exceptions on setting</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the length is <a href="#ReadOnlyLength">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ <dt id="__svg__SVGLength__valueInSpecifiedUnits" class="attribute"><b>valueInSpecifiedUnits</b><span class="idl-type-parenthetical"> (float)</span></dt>
+ <dd class="attribute">
+ <div>The numerical factor of the length value.</div>
+ <dl class="attribute">
+ <dt class="exceptions-header">Exceptions on setting</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the length is <a href="#ReadOnlyLength">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ <dt id="__svg__SVGLength__valueAsString" class="attribute"><b>valueAsString</b><span class="idl-type-parenthetical"> (DOMString)</span></dt>
+ <dd class="attribute">
+ <div>
+ <p>The length value as a string. On getting, returns a
+ string as follows:</p>
+ <ul>
+ <li>If the unit type of the length is unknown or user units,
+ the string is simply the numeric factor converted to a string.</li>
+ <li>If the unit type of the length is a percentage, the string
+ is the result of concatenating the numeric factor converted to a string
+ with the string "%".</li>
+ <li>Otherwise, the string is the result of concatenating the numeric
+ factor converted to a string with the CSS length unit in lowercase.</li>
+ </ul>
+ <p>On setting, updates the numeric factor and units type of the
+ <a>SVGLength</a> object according to the result of parsing the
+ assigned string as a <a><length></a> or <a><percentage></a>.</p>
+ </div>
+ <dl class="attribute">
+ <dt class="exceptions-header">Exceptions on setting</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code SYNTAX_ERR</dt>
+ <dd class="exception">Raised if the assigned string cannot be parsed as a valid <a><length></a> or <a><percentage></a>.</dd>
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the length is <a href="#ReadOnlyLength">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ <dt class="operations-header">Operations:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGLength__newValueSpecifiedUnits" class="operation first-child">void <b>newValueSpecifiedUnits</b>(unsigned short <var>unitType</var>, float <var>valueInSpecifiedUnits</var>)</dt>
+ <dd class="operation">
+ <div>Sets the numeric factor of the length value to <var>valueInSpecifiedUnits</var>
+ and the unit type to <var>unitType</var>.</div>
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div>unsigned short <var>unitType</var></div>
+ <div>The unit type for the value (e.g., <a>SVG_LENGTHTYPE_MM</a>).</div>
+ </li>
+ <li class="parameter">
+ <div>float <var>valueInSpecifiedUnits</var></div>
+ <div>The new value.</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="exceptions-header">Exceptions</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception first-child"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR</dt>
+ <dd class="exception">Raised if unitType is SVG_LENGTHTYPE_UNKNOWN
+ or not a valid unit type constant (one of the other SVG_LENGTHTYPE_* constants
+ defined on this interface).</dd>
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the length is <a href="#ReadOnlyLength">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ <dt id="__svg__SVGLength__convertToSpecifiedUnits" class="operation">void <b>convertToSpecifiedUnits</b>(unsigned short <var>unitType</var>)</dt>
+ <dd class="operation">
+ <div>
+ <p>Sets the unit type of the length value to the type specified by
+ <var>unitType</var> and sets the numeric factor value such that it
+ represents the same absolute length.
+ For example, if the original value were "0.5cm" and the method was
+ invoked to convert to millimeters, then <a>unitType</a> would return
+ <a>SVG_LENGTHTYPE_MM</a> and <a>valueInSpecifiedUnits</a> would return the
+ numeric value 5.</p>
+ <p>If the old or new unit type
+ is percentage and the <a>SVGLength</a> object has no associated
+ element, then the percentages are considered to resolve against
+ a length of 100 user units. For example, converting an <a>SVGLength</a>
+ whose value is 20px to a percentage will result in the value being 20%.</p>
+ </div>
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div>unsigned short <var>unitType</var></div>
+ <div>The unit type to switch to (e.g., <a>SVG_LENGTHTYPE_MM</a>).</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="exceptions-header">Exceptions</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception first-child"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR</dt>
+ <dd class="exception">Raised if unitType is SVG_LENGTHTYPE_UNKNOWN
+ or not a valid unit type constant (one of the other SVG_LENGTHTYPE_* constants
+ defined on this interface).</dd>
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the length is <a href="#ReadOnlyLength">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
</dl>
@@ -2993,44 +2941,50 @@
<h3 id="InterfaceSVGLengthList">Interface SVGLengthList</h3>
-
-
<p>This interface defines a list of SVGLength objects.</p>
-
<p><a>SVGLengthList</a> has the same attributes and methods as other
SVGxxxList interfaces. Implementers may consider using a single base class
-to implement the various SVGxxxList interfaces.
-</p>
-
+to implement the various SVGxxxList interfaces.</p>
+
+<p>The <a href='http://dev.w3.org/2006/webapi/WebIDL/#dfn-supported-property-indices'>supported property indices</a>
+of an <a>SVGLengthList</a> object is all non-negative integers less than
+the length of the list.</p>
<p id="ReadOnlyLengthList">An <a>SVGLengthList</a> object can be designated as <em>read only</em>,
which means that attempts to modify the object will result in an exception
-being thrown, as described below.
-</p>
+being thrown, as described below.</p>
+
<pre class="idl">interface <b>SVGLengthList</b> {
+ readonly attribute unsigned long <a href="types.html#__svg__SVGLengthList__length">length</a>;
readonly attribute unsigned long <a href="types.html#__svg__SVGLengthList__numberOfItems">numberOfItems</a>;
void <a href="types.html#__svg__SVGLengthList__clear">clear</a>();
<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__initialize">initialize</a>(<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> newItem);
- <a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__getItem">getItem</a>(unsigned long index);
+ getter <a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__getItem">getItem</a>(unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__insertItemBefore">insertItemBefore</a>(<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> newItem, unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__replaceItem">replaceItem</a>(<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> newItem, unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__removeItem">removeItem</a>(unsigned long index);
<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> <a href="types.html#__svg__SVGLengthList__appendItem">appendItem</a>(<a class="idlinterface" href="types.html#InterfaceSVGLength">SVGLength</a> newItem);
-};</pre><dl class="interface">
+ <a href="#__svg__SVGLengthList__setter">setter</a> void (unsigned long index, <a>SVGLength</a> newItem);
+};</pre>
+
+<dl class="interface">
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
+<dt id="__svg__SVGLengthList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
+<dd class="attribute">
+ <div>The number of items in the list.</div>
+</dd>
+
<dt id="__svg__SVGLengthList__numberOfItems" class="attribute first-child"><b>numberOfItems</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
<dd class="attribute">
-<div>
-The number of items in the list.
-
-</div>
-</dd>
+ <div>The number of items in the list.</div>
+</dd>
+
</dl>
</dd>
<dt class="operations-header">Operations:</dt>
@@ -3360,6 +3314,11 @@
</dd>
</dl>
</dd>
+<dt id="__svg__SVGLengthList__setter" class="operation"><b>setter</b> void (unsigned long <var>index</var>, <a>SVGLength</a> <var>newItem</var>)</dt>
+<dd class="operation"><div>Replaces the item at index <var>index</var> with <var>newItem</var>.
+If the list is <a href="#ReadOnlyLengthList">read only</a>, then a
+<a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#nomodificationallowederror">NoModificationAllowedError</a>
+is thrown.</div></dd>
</dl>
</dd>
</dl>
@@ -3404,18 +3363,19 @@
<h3 id="InterfaceSVGAngle">Interface SVGAngle</h3>
-
-
<p>The <a>SVGAngle</a> interface corresponds to the
-<a href="types.html#DataTypeAngle"><angle></a> basic data type.
-</p>
-
+<a href="types.html#DataTypeAngle"><angle></a> basic data type,
+and represents an angle that consists of a numerical factor and a unit,
+where the unit is degrees, radians, grads, unitless numbers or "unknown".</p>
<p id="ReadOnlyAngle">An <a>SVGAngle</a> object can be designated as <em>read only</em>,
which means that attempts to modify the object will result in an exception
-being thrown, as described below.
-</p>
-<pre class="idl">interface <b>SVGAngle</b> {
+being thrown, as described below.</p>
+
+<pre class="idl">[<a href="#__svg__SVGAngle__constructor">Constructor</a>,
+ <a href="#__svg__SVGAngle__constructor1">Constructor</a>(float value, optional unsigned short unitType),
+ <a href="#__svg__SVGAngle__constructor2">Constructor</a>(DOMString value)]
+interface <b>SVGAngle</b> {
// Angle Unit Types
const unsigned short <a href="types.html#__svg__SVGAngle__SVG_ANGLETYPE_UNKNOWN">SVG_ANGLETYPE_UNKNOWN</a> = 0;
@@ -3431,7 +3391,25 @@
void <a href="types.html#__svg__SVGAngle__newValueSpecifiedUnits">newValueSpecifiedUnits</a>(unsigned short unitType, float valueInSpecifiedUnits);
void <a href="types.html#__svg__SVGAngle__convertToSpecifiedUnits">convertToSpecifiedUnits</a>(unsigned short unitType);
-};</pre><dl class="interface">
+};</pre>
+
+<dl class="interface">
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGAngle__constructor" class="operation first-child"><b>SVGAngle</b>()</dt>
+ <dd>Creates a new <a>SVGAngle</a> object whose value is zero user units.</dd>
+ <dt id="__svg__SVGAngle__constructor1" class="operation first-child"><b>SVGAngle</b>(float <var>value</var>, optional unsigned short <var>unitType</var>)</dt>
+ <dd>Creates a new <a>SVGAngle</a> object whose value is <var>value</var> in the
+ units specified by <var>unitType</var>.</dd>
+ <dt id="__svg__SVGAngle__constructor2" class="operation first-child"><b>SVGAngle</b>(DOMString <var>value</var>)</dt>
+ <dd>Creates a new <a>SVGAngle</a> object whose value is determined by
+ parsing <var>value</var> as an <a><angle></a>.
+ If <var>value</var> cannot be parsed, then a
+ <a href="http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#syntaxerror">SyntaxError</a>
+ is thrown.</dd>
+ </dl>
+ </dd>
<dt class="constants-header">Constants in group “Angle Unit Types”:</dt>
<dd>
<dl class="constants">
@@ -3499,193 +3477,144 @@
</div>
</dd>
-<dt id="__svg__SVGAngle__value" class="attribute"><b>value</b><span class="idl-type-parenthetical"> (float)</span></dt>
-<dd class="attribute">
-<div>
-The angle value as a floating point value, in degrees. Setting this
-attribute will cause <a>valueInSpecifiedUnits</a> and
-<a>valueAsString</a> to be updated automatically to reflect this setting.
-
-
-</div>
-<dl class="attribute">
-<dt class="exceptions-header">Exceptions on setting</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the angle is
-<a href="#ReadOnlyAngle">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGAngle__valueInSpecifiedUnits" class="attribute"><b>valueInSpecifiedUnits</b><span class="idl-type-parenthetical"> (float)</span></dt>
-<dd class="attribute">
-<div>
-The angle value as a floating point value, in the units expressed by
-<a>unitType</a>. Setting this attribute will cause <a>value</a> and
-<a>valueAsString</a> to be updated automatically to reflect this setting.
-
-
-</div>
-<dl class="attribute">
-<dt class="exceptions-header">Exceptions on setting</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the angle is
-<a href="#ReadOnlyAngle">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-
-<dt id="__svg__SVGAngle__valueAsString" class="attribute"><b>valueAsString</b><span class="idl-type-parenthetical"> (DOMString)</span></dt>
-<dd class="attribute">
-<div>
-The angle value as a string value, in the units expressed by
-<a>unitType</a>. Setting this attribute will cause <a>value</a>,
-<a>valueInSpecifiedUnits</a> and <a>unitType</a>
-to be updated automatically to reflect
-this setting.
-
-
-</div>
-<dl class="attribute">
-<dt class="exceptions-header">Exceptions on setting</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code SYNTAX_ERR
-</dt>
-<dd class="exception"> Raised if the assigned string cannot
-be parsed as a valid <a><angle></a>.
-
-</dd>
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the angle is
-<a href="#ReadOnlyAngle">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
+ <dt id="__svg__SVGAngle__value" class="attribute"><b>value</b><span class="idl-type-parenthetical"> (float)</span></dt>
+ <dd class="attribute">
+ <div>The value of the angle in degrees.
+ On getting, returns the value converted to degrees. If
+ the type of the <a>SVGAngle</a> is unknown, the numerical factor
+ of the angle is returned. On setting, sets the numerical
+ factor to the assigned value and the unit type to unitless numbers.</div>
+ <dl class="attribute">
+ <dt class="exceptions-header">Exceptions on setting</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the angle is <a href="#ReadOnlyAngle">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+
+ <dt id="__svg__SVGAngle__valueInSpecifiedUnits" class="attribute"><b>valueInSpecifiedUnits</b><span class="idl-type-parenthetical"> (float)</span></dt>
+ <dd class="attribute">
+ <div>The numerical factor of the angle value.</div>
+ <dl class="attribute">
+ <dt class="exceptions-header">Exceptions on setting</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the angle is <a href="#ReadOnlyAngle">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+
+ <dt id="__svg__SVGAngle__valueAsString" class="attribute"><b>valueAsString</b><span class="idl-type-parenthetical"> (DOMString)</span></dt>
+ <dd class="attribute">
+ <div>
+ <p>The angle value as a string. On getting, returns a
+ string as follows:</p>
+ <ul>
+ <li>If the unit type of the angle is unknown or unitless numbers,
+ the string is simply the numeric factor converted to a string.</li>
+ <li>Otherwise, the string is the result of concatenating the numeric
+ factor converted to a string with the CSS angle unit in lowercase.</li>
+ </ul>
+ <p>On setting, updates the numeric factor and units type of the
+ <a>SVGAngle</a> object according to the result of parsing the
+ assigned string as an <a><angle></a>.</p>
+ </div>
+ <dl class="attribute">
+ <dt class="exceptions-header">Exceptions on setting</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code SYNTAX_ERR</dt>
+ <dd class="exception">Raised if the assigned string cannot be parsed as a valid <a><angle></a>.</dd>
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the angle is <a href="#ReadOnlyLength">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+
+
</dl>
</dd>
<dt class="operations-header">Operations:</dt>
<dd>
<dl class="attributes">
-<dt id="__svg__SVGAngle__newValueSpecifiedUnits" class="operation first-child">void <b>newValueSpecifiedUnits</b>(unsigned short <var>unitType</var>, float <var>valueInSpecifiedUnits</var>)
-</dt>
-<dd class="operation">
-<div>
-Reset the value as a number with an associated <a>unitType</a>, thereby
-replacing the values for all of the attributes on the object.
-
-
-</div>
-<dl class="operation">
-<dt class="parameters-header">Parameters</dt>
-<dd>
-<ol class="parameters">
-<li class="parameter first-child">
-<div>unsigned short <var>unitType</var></div>
-<div> The unit type for the value (e.g., <a>SVG_ANGLETYPE_DEG</a>).
-
-</div>
-</li>
-<li class="parameter">
-<div>float <var>valueInSpecifiedUnits</var></div>
-<div> The angle value.
-
-</div>
-</li>
-</ol>
-</dd>
-<dt class="exceptions-header">Exceptions</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception first-child"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR
-</dt>
-<dd class="exception"> Raised if unitType is SVG_ANGLETYPE_UNKNOWN
-or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants
-defined on this interface).
-
-</dd>
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the angle is
-<a href="#ReadOnlyAngle">read only</a>.
-
-</dd>
-</dl>
-</dd>
+ <dt id="__svg__SVGAngle__newValueSpecifiedUnits" class="operation first-child">void <b>newValueSpecifiedUnits</b>(unsigned short <var>unitType</var>, float <var>valueInSpecifiedUnits</var>)</dt>
+ <dd class="operation">
+ <div>Sets the numeric factor of the angle value to <var>valueInSpecifiedUnits</var>
+ and the unit type to <var>unitType</var>.</div>
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div>unsigned short <var>unitType</var></div>
+ <div>The unit type for the value (e.g., <a>SVG_ANGLETYPE_DEG</a>).</div>
+ </li>
+ <li class="parameter">
+ <div>float <var>valueInSpecifiedUnits</var></div>
+ <div>The new value.</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="exceptions-header">Exceptions</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception first-child"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR</dt>
+ <dd class="exception">Raised if unitType is SVG_ANGLETYPE_UNKNOWN
+ or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants
+ defined on this interface).</dd>
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the angle is <a href="#ReadOnlyAngle">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+
+ <dt id="__svg__SVGAngle__convertToSpecifiedUnits" class="operation">void <b>convertToSpecifiedUnits</b>(unsigned short <var>unitType</var>)</dt>
+ <dd class="operation">
+ <div>
+ <p>Sets the unit type of the angle value to the type specified by
+ <var>unitType</var> and sets the numeric factor value such that it
+ represents the same absolute angle.
+ For example, if the original value were "180deg" and the method was
+ invoked to convert to radians, then <a>unitType</a> would return
+ <a>SVG_ANGLETYPE_RAD</a> and <a>valueInSpecifiedUnits</a> would return the
+ numeric value π.</p>
+ </div>
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div>unsigned short <var>unitType</var></div>
+ <div>The unit type to switch to (e.g., <a>SVG_ANGLETYPE_DEG</a>).</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="exceptions-header">Exceptions</dt>
+ <dd>
+ <dl class="exceptions">
+ <dt class="exception first-child"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR</dt>
+ <dd class="exception">Raised if unitType is SVG_ANGLETYPE_UNKNOWN
+ or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants
+ defined on this interface).</dd>
+ <dt class="exception"><a class="idlinterface" href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR</dt>
+ <dd class="exception">Raised when the angle is <a href="#ReadOnlyAngle">read only</a>.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
</dl>
-</dd>
-
-<dt id="__svg__SVGAngle__convertToSpecifiedUnits" class="operation">void <b>convertToSpecifiedUnits</b>(unsigned short <var>unitType</var>)
-</dt>
-<dd class="operation">
-<div>
-Preserve the same underlying stored value, but reset the stored unit
-identifier to the given <var>unitType</var>. Object attributes
-<a>unitType</a>, <a>valueInSpecifiedUnits</a> and <a>valueAsString</a>
-might be modified as a result of this method.
-
-
-</div>
-<dl class="operation">
-<dt class="parameters-header">Parameters</dt>
-<dd>
-<ol class="parameters">
-<li class="parameter first-child">
-<div>unsigned short <var>unitType</var></div>
-<div> The unit type to switch to (e.g., <a>SVG_ANGLETYPE_DEG</a>).
-
-</div>
-</li>
-</ol>
-</dd>
-<dt class="exceptions-header">Exceptions</dt>
-<dd>
-<dl class="exceptions">
-<dt class="exception first-child"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NOT_SUPPORTED_ERR
-</dt>
-<dd class="exception"> Raised if unitType is SVG_ANGLETYPE_UNKNOWN
-or not a valid unit type constant (one of the other SVG_ANGLETYPE_* constants
-defined on this interface).
-
-</dd>
-<dt class="exception"><a class="idlinterface"
- href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-17189187">DOMException</a>, code NO_MODIFICATION_ALLOWED_ERR
-</dt>
-<dd class="exception"> Raised when the angle is
-<a href="#ReadOnlyAngle">read only</a>.
-
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
+
+
<h3 id="InterfaceSVGAnimatedAngle">Interface SVGAnimatedAngle</h3>
@@ -4031,25 +3960,38 @@
<h3 id="InterfaceSVGRect">Interface SVGRect</h3>
-
-
<p>Represents rectangular geometry. Rectangles are defined as consisting
of a (x,y) coordinate pair identifying a minimum X value, a minimum Y
value, and a width and height, which are usually constrained to be
-non-negative.
-</p>
-
+non-negative.</p>
<p id="ReadOnlyRect">An <a>SVGRect</a> object can be designated as <em>read only</em>,
which means that attempts to modify the object will result in an exception
-being thrown, as described below.
-</p>
-<pre class="idl">interface <b>SVGRect</b> {
+being thrown, as described below.</p>
+
+<pre class="idl">[<a href="#__svg__SVGRect__constructor">Constructor</a>,
+ <a href="#__svg__SVGRect__constructor1">Constructor</a>(float x, float y, float width, float height)]
+interface <b>SVGRect</b> {
attribute float <a href="types.html#__svg__SVGRect__x">x</a>;
attribute float <a href="types.html#__svg__SVGRect__y">y</a>;
attribute float <a href="types.html#__svg__SVGRect__width">width</a>;
attribute float <a href="types.html#__svg__SVGRect__height">height</a>;
-};</pre><dl class="interface">
+};</pre>
+
+<dl class="interface">
+ <dt class="operations-header">Constructors:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGRect__constructor" class="operation first-child"><b>SVGRect</b>()</dt>
+ <dd class="operation">
+ <div>Creates a new <a>SVGRect</a> object with its x, y, width and height attributes set to 0.</div>
+ </dd>
+ <dt id="__svg__SVGRect__constructor" class="operation first-child"><b>SVGRect</b>(float x, float y, float width, float height)</dt>
+ <dd class="operation">
+ <div>Creates a new <a>SVGRect</a> object with its x, y, width and height attributes set to <var>x</var>, <var>y</var>, <var>width</var> and <var>height</var>, respectively.</div>
+ </dd>
+ </dl>
+ </dd>
<dt class="attributes-header">Attributes:</dt>
<dd>
<dl class="attributes">
@@ -4312,7 +4254,7 @@
Returns the tight bounding box in current user space (i.e., after
application of the <a>'transform'</a> property) on the
geometry of all contained graphics elements, exclusive of stroking, clipping, masking and
-filter effects). Note that getBBox must return the actual bounding box
+filter effects. Note that getBBox must return the actual bounding box
at the time the method was called, even in case the element has not
yet been rendered.
@@ -4332,18 +4274,16 @@
</dt>
<dd class="operation">
<div>
-Returns the tight stroke bounding box in current user space (i.e., after
-application of the <a>'transform'</a> property) on the
-geometry of all contained graphics elements, exclusive of clipping, masking, markers and
-filter effects but inclusive of stroking). The stroke bounding box takes the
+Returns the union of the tight bounding box (see <a>getBBox</a>), the stroke
+bounding box and the stroke bounding box of applied markers in current user space
+(i.e., after application of the <a>'transform'</a> property) on the
+geometry of all contained graphics elements, exclusive of clipping, masking and
+filter effects. The stroke bounding box takes the stroke style
properties <a>'stroke-width'</a>, <a>'stroke-linecap'</a>, <a>'stroke-linejoin'</a>,
<a>'stroke-miterlimit'</a>, <a>'stroke-dasharray'</a> and <a>'stroke-dashoffset'</a>
-into account. If no stroke is applied to the graphics elements, the bounding box in
-current user space gets returned (see <a>getBBox</a>). Note that getStrokeBBox must
-return the actual stroke bounding box at the time the method was called,
-even in case the element has not yet been rendered.
-
-
+into account. Note that getStrokeBBox must
+return the actual union of the bounding box at the time the method was called,
+even in case the element has not yet been rendered.
</div>
<dl class="operation">
<dt class="returns-header">Returns</dt>
@@ -4487,9 +4427,76 @@
<a>SVGGraphicsElement</a> implements <a>SVGTests</a>;</pre>
+<div class="ready-for-wg-review">
+<h3 id="InterfaceSVGGeometryElement">Interface SVGGeometryElement</h3>
+
+<p>Interface <a>SVGGeometryElement</a> represents SVG elements whose rendering
+is defined by geometry and which can be filled and stroked. This includes
+paths, text and the basic shapes.</p>
+
+<pre class="idl">interface <b>SVGGeometryElement</b> : <a>SVGGraphicsElement</a> {
+ bool isPointInFill(<a>SVGPoint</a> point);
+ bool isPointInStroke(<a>SVGPoint</a> point);
+};</pre>
+
+<dl class="interface">
+ <dt class="operations-header">Operations:</dt>
+ <dd>
+ <dl class="attributes">
+ <dt id="__svg__SVGGeometryElement__isPointInFill" class="operation first-child">bool <b>isPointInFill</b>(<a>SVGPoint</a> point)</dt>
+ <dd class="operation">
+ Returns whether the specified point is within the fill of the element.
+ Normal hit testing rules apply; the value of the <a>'pointer-events'</a>
+ property on the element determines whether a point is considered to be
+ within the fill.
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div><a>SVGPoint</a> <var>point</var></div>
+ <div>The point to check for intersection with the fill
+ of this element. The <a>SVGPoint</a> is interpreted as a
+ as a point in the user space of this element.</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="returns-header">Returns</dt>
+ <dd>true if the point is within the fill of this shape,
+ or false otherwise.</dd>
+ </dl>
+ </dd>
+ <dt id="__svg__SVGGeometryElement__isPointInStroke" class="operation">bool <b>isPointInStroke</b>(<a>SVGPoint</a> point)</dt>
+ <dd class="operation">
+ Returns whether the specified point is within the stroke of the element.
+ Normal hit testing rules apply; the value of the <a>'pointer-events'</a>
+ property on the element determines whether a point is considered to be
+ within the stroke.
+ <dl class="operation">
+ <dt class="parameters-header">Parameters</dt>
+ <dd>
+ <ol class="parameters">
+ <li class="parameter first-child">
+ <div><a>SVGPoint</a> <var>point</var></div>
+ <div>The point to check for intersection with the stroke
+ of this element. The <a>SVGPoint</a> is interpreted as a
+ as a point in the user space of this element.</div>
+ </li>
+ </ol>
+ </dd>
+ <dt class="returns-header">Returns</dt>
+ <dd>true if the point is within the stroke of this shape,
+ or false otherwise.</dd>
+ </dl>
+ </dd>
+ </dl>
+ </dd>
+</dl>
+</div>
+
<h3 id="InterfaceSVGDefinitionElement">Interface SVGDefinitionElement</h3>
-<p>Interface <a>SVGGraphicsElement</a> represents SVG elements whose primary purpose
+<p>Interface <a>SVGDefinitionElement</a> represents SVG elements whose primary purpose
is to define a reusable resource.</p>
<pre class="idl">interface <b>SVGDefinitionElement</b> : <a>SVGElement</a> {