]>
The 'g1' and 'g2'
attributes on the 'hkern' element and the
'glyph-name' attribute on the
'glyph' element are all defined
to take space-separated lists in SVG Tiny 1.2, where in SVG 1.1 they
were defined to be comma-separated.
Also, the description of the 'glyph-name'
attribute implies that it gives a single name for the glyph, when it
should actually be a list of names for the glyph.
An optional name for the glyph. An optional list of names for the glyph.
The definition of the 'd' attribute on
the 'glyph' element does not link
to the type in the data types chapter.
The ECMAScript Language Binding appendix does not state that an
AsyncStatusCallback can be
implemented with a plain ECMAScript Function object, like it does for
EventListener. The test
suite assumes that the interface can be implemented with a Function.
In ECMAScript, an AsyncStatusCallback
can be specified in one of two ways. The first is an ECMAScript
Function object, where the function itself is considered to be the
implementation of the operationComplete
operation. The second is an ECMAScript object with a property
operationComplete, which provides the
implementation of the operationComplete
operation. If an ECMAScript Function object also has an
operationComplete property, then that
operationComplete property and not the
Function itself is considered to be the implementation of the
operationComplete operation.
In the “IRI reference attributes” section, the definitions for
the 'xlink:show' and
'xlink:actuate' attributes use single
quotes where double quotes should be used.
A load operation has begun.
See the description of the
ProgressEvent
interface for details on this event.
Progress has occurred in loading a given resource.
See the description of the
ProgressEvent
interface for details on this event.
A load operation has completed.
See the description of the
ProgressEvent
interface for details on this event.
Event Type
Description
Animation event name
Bubbles
Cancelable
uDOM interface
loadstart
none
No
No
ProgressEvent
progress
none
No
No
ProgressEvent
loadend
none
No
No
ProgressEvent
Event Type | Description | Animation event name | Bubbles | Cancelable | uDOM interface |
---|---|---|---|---|---|
loadstart |
A load operation has begun. See the description of the ProgressEvent interface for details on this event. |
loadstart | No | No | ProgressEvent |
progress |
Progress has occurred in loading a given resource. See the description of the ProgressEvent interface for details on this event. |
progress | No | No | ProgressEvent |
loadend |
A load operation has completed. See the description of the ProgressEvent interface for details on this event. |
loadend | No | No | ProgressEvent |
The user agent may dispatch
ProgressEvents
between the loadstart
event
and the loadend
events.
Such events are of type progress
.
The user agent may dispatch
ProgressEvents
between the loadstart
event
and the loadend
events.
Such events are of type progress
.
The EventTarget of a ProgressEvent event is the element that had the 'xlink:href'.
There are no trait accessors for the animation element 'fill' attribute.
There are no trait accessors for the 'fill' attribute on animation elements and media elements
Command | Name | Parameters | Description |
---|---|---|---|
M (absolute) m (relative) |
moveto | (x y)+ | Start a new sub-path at the given (x,y) coordinate. M (uppercase) indicates that absolute coordinates will follow; m (lowercase) indicates that relative coordinates will follow. If a relative moveto (m) appears as the first element of the path, then it is treated as a pair of absolute coordinates. If a moveto is followed by multiple pairs of coordinates, the subsequent pairs are treated as implicit lineto commands. |
Command | Name | Parameters | Description |
---|---|---|---|
M (absolute) m (relative) |
moveto | (x y)+ | Start a new sub-path at the given (x,y) coordinate. M (uppercase) indicates that absolute coordinates will follow; m (lowercase) indicates that relative coordinates will follow. If a moveto is followed by multiple pairs of coordinates, the subsequent pairs are treated as implicit lineto commands. Hence, implicit lineto commands will be relative if the moveto is relative, and absolute if the moveto is absolute. If a relative moveto (m) appears as the first element of the path, then it is treated as a pair of absolute coordinates. In this case, subsequent pairs of coordinates are treated as relative even though the initial moveto is interpreted as an absolute moveto. |
If the IRI identifies an animation element within the current SVG document fragment , then activating the 'a' element will hyperlink to the animation , as defined in SMIL 2.1 ([SMIL21], section 10.4.3).
Example 17_01 assigns a link to an ellipse.
If the IRI identifies an animation element within the current SVG document fragment , then activating the 'a' element will hyperlink to the animation , as defined in SMIL 2.1 ([SMIL21], section 10.4.3).
The activation behavior of the
'a'
element is for the link to be traversed according to the
attributes on the element. Thus, link traversal can be prevented by
canceling the
DOMActivate
event that is dispatched by invoking the
preventDefault()
method on the event object. Note that DOM Level 3
Events requires a click event to be synthesized if activation of the
'a' element
is not performed in response to a click event (for example if the user
focuses the element and then presses the Enter key). Therefore, a link
activation must be composed of an optional keydown event, then a click
event, followed by a cancelable
DOMActivate
event.
Example 17_01 assigns a link to an ellipse.
If the value of 'preserveAspectRatio' on an element that references data ( 'image' , 'animation' and 'video' ) starts with defer then the value of the 'preserveAspectRatio' attribute on the referenced content if present must be used. If the referenced content lacks a value for 'preserveAspectRatio' then the 'preserveAspectRatio' attribute must be processed as normal (ignoring defer). For 'preserveAspectRatio' on all other elements the defer portion of the attribute is ignored.
If the value of 'preserveAspectRatio' on an element that references data ( 'animation' and 'video' ) starts with defer then the value of the 'preserveAspectRatio' attribute on the referenced content if present must be used. If the referenced content lacks a value for 'preserveAspectRatio' then the 'preserveAspectRatio' attribute must be processed as normal (ignoring defer). For 'preserveAspectRatio' on all other elements the defer portion of the attribute is ignored.
The value of the id attribute on the SVGElement interface when neither 'xml:id' nor 'id' is present is not compatible with the definition in SVG 1.1 Second Edition.
On read, returns the element's
'xml:id' or
'id'
attribute according to the rules defined in the
Structure chapter,
or null
if no ID specified.
On read, returns the element's 'xml:id' or 'id' attribute according to the rules defined in the Structure chapter, or the empty string if neither attribute is specified.
The format of an RGB value in the functional notation is an RGB start-function followed by list of three numerical values (either three integer values or three percentage values), separated by a comma and optionally by white space, followed by ')'. An RGB start-function is the case-insensitive string 'rgb(' - so for example 'RGB(' or 'rGb('. For compatibility, the all-lowercase form 'rgb(' is preferred.
The wording in SVG Tiny 1.2 is very ambiguous regarding the gradient vector and when it is transformed. http://www.w3.org/TR/SVGTiny12/painting.html#LinearGradientElement#LinearGradientUnitsAttribute
[[ If gradientUnits="userSpaceOnUse", 'x1', 'y1', 'x2', 'y2' shall represent values in the coordinate system that results from taking the current user coordinate system in place at the time when the gradient element is referenced ]]
A gradient direction is defined by the vector, but there is a second component which defines the direction of the stripes on a linear gradient - the Gradient Normal. Information on how the normal is used for rendering linear gradients needs to be added to the SVG specifications.
The problem is at what point in time the gradient normal is transformed. From a technical perspective the two different results can be achieved both of which are correct.
Implementation 'A' defines a Gradient Vector and a Gradient Normal prior to being transformed. When the transformation is applied both vector and normal are transformed.
Implementation 'B' defines a Gradient Vector only prior to being transformed. When the transform is applied the vector is transformed. The normal is then defined on the gradientprior to any gradientTransform attributes being applied.
Given that the specification is ambiguous about the 'time' a gradient element is reference and additionally does not define how a gradient normal works with a gradient vector both implementations are technically correct. The question then remains which method would look better for authoring.
Once defined, gradients are then referenced using 'fill' or 'stroke' properties on a given graphics element to indicate that the given element shall be filled or stroked with the referenced gradient.
Once defined, gradients are then referenced using 'fill' or 'stroke' properties on a given graphics element to indicate that the given element shall be filled or stroked with the referenced gradient.
The angle of the color transitions along the gradient vector is defined by the gradient normal. Before any transforms are applied to the gradient or its referencing graphics element, the gradient normal is perpendicular with the gradient vector. If a graphics element references a gradient, conceptually the graphics element should take a copy of the gradient vector and gradient normal and treat it as part of its own geometry. Any transformations applied to the graphics element geometry also apply to the copied gradient vector and gradient normal. Any gradient transforms that are specified on the reference gradient are applied before any graphics element transformations are applied to the gradient.
When gradientUnits="objectBoundingBox" the stripes of the linear gradient shall be perpendicular to the gradient vector in object bounding box space (i.e., the abstract coordinate system where (0,0) is at the top/left of the object bounding box and (1,0) is at the top/right of the object bounding box). When the object's bounding box is not square, the stripes that are conceptually perpendicular to the gradient vector within object bounding box space shall render non-perpendicular relative to the gradient vector in user space due to application of the non-uniform scaling transformation from bounding box space to user space.
When gradientUnits="objectBoundingBox" the stripes of the linear gradient shall be perpendicular to the gradient vector in object bounding box space (i.e., the abstract coordinate system where (0,0) is at the top/left of the object bounding box and (1,0) is at the top/right of the object bounding box). When the object's bounding box is not square, the gradient normal which is initially perpendicular to the gradient vector within object bounding box space may render non-perpendicular relative to the gradient vector in user space. If the gradient vector is parallel to one of the axes of the bounding box, the gradient normal will remain perpendicular. This transformation is due to application of the non-uniform scaling transformation from bounding box space to user space.