Copyright© 2001, 2002 W3C ® ( MIT , INRIA , Keio), All Rights Reserved. W3C liability, trademark, document use, and software licensing rules apply.
This document defines two mobile profiles of SVG 1.1. The first profile, SVG Tiny, is defined to be suitable for cellphones; the second profile, SVG Basic, is suitable for PDAs.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.
This document is the 15 November 2002 Proposed Recommendation of the SVG Mobile specification. The SVG Working Group believes SVG Mobile has been widely reviewed by the community, developers and other W3C groups.
W3C Advisory Committee representatives are invited to send formal review comments to the W3C Team until 20 December 2002 at w3t-svg@w3.org. After the review the Director will announce the document's disposition. This announcement should not be expected sooner than 14 days after the end of the review.
Public comments are also welcome. Please send them to www-svg@w3.org: the
public email list for issues related to vector graphics on the Web. This list
is archived and senders must agree to have their message publicly archived
from their first posting. To subscribe send an email to
www-svg-request@w3.org with the word subscribe in the subject line.
The W3C SVG Working Group have released a test suite for SVG 1.1 and SVG Mobile along with an implementation report.
The latest information regarding patent disclosures related to this document is available on the Web. As of this publication, the SVG Working Group are not aware of any royalty-bearing patents they believe to be essential to SVG.
This document has been produced by the W3C SVG Working Group as part of the Graphics Activity within the W3C Document Formats Domain. The goals of the W3C SVG Working Group are discussed in the W3C SVG Charter (W3C Members only). The W3C SVG Working Group has maintained a public Web page, http://www.w3.org/Graphics/SVG/, which contains further background information. The authors of this document are the SVG Working Group participants.
Publication of this document does not imply endorsement by the W3C membership. A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/. W3C publications may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite a W3C Working Draft as anything other than a "work in progress."
It has been established by industry demand, overwhelming support in the SVG working group and requests from the SVG developer community that some form of SVG suited to displaying vector graphics on small devices is required. Moreover, the mission statement of SVG 1.0 specifically addresses small devices as a target area for vector graphics display. In order to meet these demands the SVG Working Group has committed to a concerted effort to create a profile specification that addresses mobile devices.
A single such profile is not sufficient to deal with the variety of mobile devices, because each mobile device has different characteristics in terms of CPU speed, memory size, and color support. To address the range of different device families, two profiles are defined. The first low-level profile, SVG Tiny (SVGT) is suitable for highly restricted mobile devices; while the second profile, SVG Basic (SVGB) is targeted for higher level mobile devices.
Because of the low memory, low CPU power and limited display of mobile devices, Mobile SVG profiles introduce constraints on content, attribute types, properties, and user agent behavior. This section describes these constraints and design rationale behind them.
SVGT and SVGB consist of the following SVG 1.1 modules. For each module, a given profile might contain the Full version, the subsetted Basic version, or no version of that module. For ease of use, the relevant elements in each module are given; in modules other than Full, not all attributes may be supported and there may be restrictions on attribute values. For details, see the module definitions in the SVG 1.1 specification.
defs, desc, g, metadata, svg, title, use
a
switch
circle, ellipse, line, path, polygon, polyline, rect
image
text
font, font-face, font-face-name, font-face-src,
glyph, hkern, missing-glyph
animate, animateColor, animateMotion, animateTransform, mpath,
set
foreignObject
defs, desc, g, metadata, svg, symbol, title, use
style
a
switch
circle, ellipse, line, path, polygon, polyline, rect
image
altGlyph, altGlyphDef, altGlyphItem, glyphRef, text, textPath,
tref, tspan
color-profile
linearGradient, radialGradient, stop
pattern
clipPath
mask
definition-src, font, font-face, font-face-format,
font-face-name, font-face-src, font-face-uri, glyph, hkern,
missing-glyph, vkern
script
view
feBlend, feColorMatrix, feComponentTransfer, feComposite,
feFlood, feGaussianBlur, feImage, feMerge, feMergeNode, feOffset,
feTile, feFuncR, feFuncG, feFuncB, feFuncA, filter
animate, animateColor, animateMotion, animateTransform, mpath,
set
foreignObject
| Data Type | Description |
| Number | SVGT and SVGB support fixed point numbers, thus all numbers must be limited in range between -32,767.9999 to +32,767.9999 or the scientific notation equivalent. |
| Length | SVGT only supports user units (i.e., CSS units are not supported), with the one exception that the 'width' and 'height' attributes on the outermost 'svg' element can specify values in any of the following CSS units: in, cm, mm, pt, pc, and %. SVGB supports lengths in user coordinate space and in CSS units. |
| Coordinate | SVGT and SVGB support the coordinate data type, represented with a <length> value. |
| List of XXX | (where XXX represents a value of some type): SVGT and SVGB support the list specification. |
| Angle | SVGT only supports angles if specified with no CSS unit identifiers (which means all angles are in degrees). SVGB supports angles with CSS unit identifiers. |
| Color | SVGT and SVGB support <color> in the CSS2-compatible specification for a color in the sRGB color space, and system colors. Additionally, SVGB and SVGT support 16 original color keywords from XHTML, and do not support X11 colors. SVGB also allows optional support of ICC color profiles. |
| Paint | SVGB supports paint specification for fill and stroke operations, as well as linear and radial gradients. SVGT does not support the more general notion of paint specification and thus only supports solid color fills and strokes. |
| Percentage | SVGB supports percentages. SVGT does not support percentage values except for the 'width' and 'height' attributes on the outermost 'svg' element. |
| Transform List | SVGB and SVGT support transform lists. |
| URI | SVGB and SVGT support the URI datatype. |
| Frequency | SVGB and SVGT do not support frequency values. |
| Time | SVGB and SVGT support time values, with unit identifiers (ms, s). |
SVGB and SVGT content can be in the form of stand-alone SVG Documents or document fragments embedded within a parent XML document. The following is an example of an SVG document fragment embedded within an XHTML 1.1 document:
<?xml version="1.0" standalone="yes"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg">
<head>
<title xml:lang="en">Sample XHTML + SVG document</title>
</head>
<body>
<svg:svg width="4cm" height="8cm" version="1.1" baseProfile="tiny" >
<svg:ellipse cx="2" cy="4" rx="2" ry="1" />
</svg:svg>
</body>
</html>
SVGB and SVGT support the 'title', 'desc' and 'metadata' elements as defined in SVG 1.1.
SVG Tiny content cannot have nested child 'svg' elements.
The 'baseProfile' attribute on the outermost 'svg' element must have the value "tiny" for SVG Tiny content, and "basic" for SVG Basic content. The 'baseProfile' attribute on nested child 'svg' elements is ignored. The SVG 1.1 specification states that the 'version' attribute of the outermost 'svg' element in SVG 1.1 content must have the value "1.1".
For SVGT, all referenced objects, except on the 'image' and 'a' elements, must be internal (using the 'data:' URL scheme, and base64 encoding). SVGB does not put extra limitations on external references as defined by SVG 1.1.
SVGT does not support symbols.
Note that, in SVG 1.1, animations on a referenced element will cause the instances to be animated. SVGB and SVGT also support this feature.
SVGB and SVGT require support of the JPEG and PNG formats on the image element. SVGB also requires support of SVG format on the image element.
SVGT and SVGB support the switch element, to determine which SVG 1.1 features are supported by the user agent.
The following feature strings are allowed for SVGT:
http://www.w3.org/TR/SVG11/feature#CoreAttribute
http://www.w3.org/TR/SVG11/feature#BasicStructure
http://www.w3.org/TR/SVG11/feature#BasicPaintAttribute
http://www.w3.org/TR/SVG11/feature#BasicGraphicsAttribute
http://www.w3.org/TR/SVG11/feature#Hyperlinking
http://www.w3.org/TR/SVG11/feature#XlinkAttribute
http://www.w3.org/TR/SVG11/feature#ConditionalProcessing
http://www.w3.org/TR/SVG11/feature#Shape
http://www.w3.org/TR/SVG11/feature#Image
http://www.w3.org/TR/SVG11/feature#BasicText
http://www.w3.org/TR/SVG11/feature#BasicFont
http://www.w3.org/TR/SVG11/feature#Animation
http://www.w3.org/TR/SVG11/feature#Extensibility
http://www.w3.org/TR/SVGMobile/Tiny/feature#base"
indicates the availability of all of the static and declarative animation
language capabilities defined for SVG Tiny in Section 2.http://www.w3.org/TR/SVGMobile/Tiny/feature#interactivity"
indicates the availability of all of the base features, as well as
support for interactivity: Document Events Attribute Module, and
Animation Events Attribute Module.http://www.w3.org/TR/SVGMobile/Tiny/feature#all"
indicates the availability of all of the SVG Tiny features.The following feature strings are allowed for SVGB:
http://www.w3.org/TR/SVG11/feature#CoreAttribute
http://www.w3.org/TR/SVG11/feature#Structure
http://www.w3.org/TR/SVG11/feature#ViewportAttribute
http://www.w3.org/TR/SVG11/feature#Style
http://www.w3.org/TR/SVG11/feature#PaintAttribute
http://www.w3.org/TR/SVG11/feature#OpacityAttribute
http://www.w3.org/TR/SVG11/feature#GraphicsAttribute
http://www.w3.org/TR/SVG11/feature#Hyperlinking
http://www.w3.org/TR/SVG11/feature#XlinkAttribute
http://www.w3.org/TR/SVG11/feature#ExternalResourcesRequired
http://www.w3.org/TR/SVG11/feature#ConditionalProcessing
http://www.w3.org/TR/SVG11/feature#Shape
http://www.w3.org/TR/SVG11/feature#Image
http://www.w3.org/TR/SVG11/feature#Text
http://www.w3.org/TR/SVG11/feature#ColorProfile
http://www.w3.org/TR/SVG11/feature#Gradient
http://www.w3.org/TR/SVG11/feature#Pattern
http://www.w3.org/TR/SVG11/feature#BasicClip
http://www.w3.org/TR/SVG11/feature#Mask
http://www.w3.org/TR/SVG11/feature#Font
http://www.w3.org/TR/SVG11/feature#DocumentEventsAttribute
http://www.w3.org/TR/SVG11/feature#GraphicalEventsAttribute
http://www.w3.org/TR/SVG11/feature#AnimationEventsAttribute
http://www.w3.org/TR/SVG11/feature#Scripting
http://www.w3.org/TR/SVG11/feature#View
http://www.w3.org/TR/SVG11/feature#BasicFilter
http://www.w3.org/TR/SVG11/feature#Animation
http://www.w3.org/TR/SVG11/feature#Extensibility
http://www.w3.org/TR/SVGMobile/Basic/feature#base"
indicates the availability of all of the static and declarative animation
language capabilities defined for SVG Basic in Section 2.http://www.w3.org/TR/SVGMobile/Basic/feature#interactivity"
indicates the availability of all of the base features, as well as
support for interactivity: SVGB Core DOM support, SVG 1.1 Scripting
Module, Document Events Attribute Module , Graphical Element Events
Attribute Module, and Animation Events Attribute Module.http://www.w3.org/TR/SVGMobile/Basic/feature#SVGBasicDomCore"
indicates the availability of SVG Basic DOM Core as defined in this
specification.http://www.w3.org/TR/SVGMobile/Basic/feature#SVGBasicDomExtended"
indicates the availability of SVG Basic Extended DOM as defined in this
specification.http://www.w3.org/TR/SVGMobile/Basic/feature#css"
indicates the availability of all of the base features, as well as
support for styling with CSS.http://www.w3.org/TR/SVGMobile/Basic/feature#all"
indicates the availability of all of the SVG Basic features.SVGB and SVGT support subsets of SVG 1.1's presentation attributes.
SVGB allows optional support of CSS Mobile Profile 1.0. SVGT does not support styling with CSS.
SVGB and SVGT can introduce constraints on style properties. Allowed values for style properties are listed in Appendix C.
SVGB and SVGT support SVG 1.1's notion of viewports.
SVGB and SVGT support nesting of transformations. The types of transformations that are allowed are generic transformation matrices, or simple operations such as rotation, scaling, skewing, and translation.
SVGB and SVGT support the transform attribute. The following transform definition types are supported:
SVGB and SVGT fully support the 'viewBox' attribute. SVGT has restrictions on allowed preserveAspectRatio attribute values.
SVGB and SVGT support the 'preserveAspectRatio' attribute for adapting the content to devices with different display aspect ratios.
In SVGT, the <align> parameter can only be either 'none' or 'XMidYMid', the <meetOrSlice> parameter can only be 'meet'.
In SVGB, the values of this parameter can be the same as in SVG 1.1.
SVGB supports establishing a new viewport via additional embedded 'svg' elements. SVGT does not allow nested 'svg' elements.
SVGT supports user units only, except for the 'width' and 'height' attributes on the outermost 'svg' element where CSS units are also supported. SVGB supports both user units and CSS user identifiers.
SVGT does not support bounding box unit specification.
SVGB and SVGT support all SVG 1.1 path commands, except the elliptical arc curve command ("A"(absolute) and "a"(relative)).
The path element data is animatable, as defined in the SVG 1.1 specification.
SVGT and SVGB support the basic shapes (rectangles, circles, ellipses, lines, polylines, and polygons) as defined in SVG 1.1.
SVGB and SVGT represent text with Unicode characters. Mobile SVG user agents are not required to allow text selection and clipboard operations.
SVGT does not support text on a path, 'tspan' and 'tref' elements. SVGT supports the 'rotate' attribute on the 'text' element, but it should be noted that this may cause a slow down of the user agent's rendering speed, and rotation may not be supported with system fonts.
SVGB and SVGT support filling and stroking 'path' elements and basic shapes with solid colors.
SVGB supports stroking on text when using outline fonts, but SVGT does not.
SVGT and SVGB support <color> in the CSS2-compatible specification for a color in the sRGB color space, and system colors. Additionally, SVGB and SVGT support 16 original color keywords from XHTML, and do not support X11 colors.
Specifying colors using an ICC profile is not supported in SVGT; and as with SVG 1.1, it is optional in SVGB.
SVGB supports solid colors, gradient paints, patterns, and custom paints. SVGT only supports solid color painting.
SVGB supports clipping, masking and compositing. SVGB does not support additive clipping paths. Also, in SVGB, clipping paths are restricted to rectangles ('rect' elements or references to 'rect' elements through 'use').
SVGT does not support element opacity, fill-opacity, stroke-opacity properties.
SVGB supports a subset of filter effects. SVGT does not support filter effects.
SVGB and SVGT support the SVG 1.1 events. SVGT only allows interactivity with declarative animation.
SVGB and SVGT support hyperlink activation from SVG content to other Web resources through the 'a' element.
SVGB supports hyperlink into particular views of SVG content. SVGT does not support this feature.
SVGT does not support scripting. SVGB allows optional support of scripting, and includes all of the language features from SVG 1.1 to support scripting.
Both SVGB and SVGT support the full set of SVG 1.1's declarative animation features:
The language features to support animation through scripting and DOM are available in SVGB. SVGT only supports declarative animation.
SVGB and SVGT allow implicit targeting of parent elements, and targeting elements using the 'xlink:href' attribute.
SVGB and SVGT support linear, spline, paced and discrete animations.
SVGB and SVGT support a subset of SVG fonts where only the 'd' attribute on the 'glyph' and 'missing-glyph' elements is available. Arbitrary SVG within a 'glyph' is not supported.
As with Full SVG 1.1, SVGB supports downloadable fonts using WebFonts facility defined in the "Cascading Style Sheets (CSS) level 2" specification. In SVGT, an SVG font can be only embedded within the same document that uses the font.
Both SVGB and SVGT support embedded metadata, as well as elements and attributes from foreign namespaces included within the SVG content.
The SVG renderer is not expected to be able to render content in foreign namespaces, but the foreignObject element allows a subtree in a foreign namespace to be assigned a width and height and passed off to another renderer.
The authors of this specification are the participants of the W3C SVG Working Group.
The SVG Working Group would like to acknowledge the great many people outside of the SVG Working Group who help with the process of developing the SVG 1.1 and Mobile SVG specification. These people are too numerous to list individually. They include but are not limited to the early implementers of the SVG 1.0 and 1.1 languages and Mobile SVG profiles (including viewers, authoring tools, and server-side transcoders), developers of SVG content, people who have contributed on the www-svg@w3.org and svg-developers@yahoogroups.com email lists, other Working Groups at the W3C, and the W3C team. Mobile SVG is truly a cooperative effort between the SVG Working Group, the rest of the W3C, and the public and benefits greatly from the pioneering work of early implementers and content developers, feedback from the public, and help from the W3C team.
This appendix is normative.
| Color code | |
|---|---|
| Supported fully in a Full Module | yes |
| Supported with subsetted functionality in a Basic Module | yes |
| Disallowed in profile | n/a |
| Element | SVG Tiny | SVG Basic |
|---|---|---|
| a | Hyperlinking | Hyperlinking |
| altGlyph | n/a | Text |
| altGlyphDef | n/a | Text |
| altGlyphItem | n/a | Text |
| animate | Animation | Animation |
| animateColor | Animation | Animation |
| animateMotion | Animation | Animation |
| animateTransform | Animation | Animation |
| circle | Shape | Shape |
| clipPath | n/a | Basic Clip |
| color-profile | n/a | Color Profile |
| cursor | n/a | n/a |
| definition-src | n/a | Font |
| defs | Basic Structure | Structure |
| desc | Basic Structure | Structure |
| ellipse | Shape | Shape |
| feBlend | n/a | Basic Filter |
| feColorMatrix | n/a | Basic Filter |
| feComponentTransfer | n/a | Basic Filter |
| feComposite | n/a | Basic Filter |
| feConvolveMatrix | n/a | n/a |
| feDiffuseLighting | n/a | n/a |
| feDisplacementMap | n/a | n/a |
| feDistantLight | n/a | n/a |
| feFlood | n/a | Basic Filter |
| feFuncA | n/a | Basic Filter |
| feFuncB | n/a | Basic Filter |
| feFuncG | n/a | Basic Filter |
| feFuncR | n/a | Basic Filter |
| feGaussianBlur | n/a | Basic Filter |
| feImage | n/a | Basic Filter |
| feMerge | n/a | Basic Filter |
| feMergeNode | n/a | Basic Filter |
| feMorphology | n/a | n/a |
| feOffset | n/a | Basic Filter |
| fePointLight | n/a | n/a |
| feSpecularLighting | n/a | n/a |
| feSpotLight | n/a | n/a |
| feTile | n/a | Basic Filter |
| feTurbulence | n/a | n/a |
| filter | n/a | Basic Filter |
| font-face | Basic Font | Font |
| font-face-format | n/a | Font |
| font-face-name | Basic Font | Font |
| font-face-src | Basic Font | Font |
| font-face-uri | n/a | Font |
| foreignObject | Extensibility | Extensibility |
| g | Basic Structure | Structure |
| glyph | Basic Font | Font |
| glyphRef | n/a | Text |
| hkern | Basic Font | Font |
| image | Image | Image |
| line | Shape | Shape |
| linearGradient | n/a | Gradient |
| marker | n/a | n/a |
| mask | n/a | Mask |
| metadata | Basic Structure | Structure |
| missing-glyph | Basic Font | Font |
| mpath | Animation | Animation |
| path | Shape | Shape |
| pattern | n/a | Pattern |
| polygon | Shape | Shape |
| polyline | Shape | Shape |
| radialGradient | n/a | Gradient |
| rect | Shape | Shape |
| script | n/a | Scripting |
| set | Animation | Animation |
| stop | n/a | Gradient |
| style | n/a | Style |
| svg | Basic Structure | Structure |
| switch | Conditional Processing | Conditional Processing |
| symbol | n/a | Structure |
| text | Basic Text | Text |
| textPath | n/a | Text |
| title | Basic Structure | Structure |
| tref | n/a | Text |
| tspan | n/a | Text |
| use | Basic Structure | Structure |
| view | n/a | View |
| vkern | n/a | Font |
This appendix is normative.
| Attribute | SVGTiny | SVG 1.1 Module | SVGBasic | SVG 1.1 Module |
|---|---|---|---|---|
| accent-height | %Number | Basic Font | %Number; | Font |
| accumulate | (none | sum) | Animation | (none | sum) | Animation |
| additive | (replace | sum) | Animation | (replace | sum) | Animation |
| alignment-baseline | n/a | n/a | ( baseline | top | before-edge | text-top | text-before-edge | middle | bottom | after-edge | text-bottom | text-after-edge | ideographic | lower | hanging | mathematical | inherit) | Text |
| alphabetic | %Number; | Basic Font | %Number; | Font |
| amplitude | n/a | n/a | %Number; | Basic Filter |
| arabic-form | CDATA | Basic Font | CDATA | Font |
| ascent | %Number; | Basic Font | %Number; | Font |
| attributeName | CDATA | Animation | CDATA | Animation |
| attributeType | CDATA | Animation | CDATA | Animation |
| azimuth | n/a | n/a | n/a | n/a |
| baseFrequency | n/a | n/a | n/a | n/a |
| baseProfile | CDATA | Basic Structure | CDATA | Structure |
| baseline-shift | n/a | n/a | (baseline | sub | super | <percentage> | <length> | inherit) | Text |
| bbox | CDATA | Basic Font | CDATA | Font |
| begin | CDATA | Animation | CDATA | Animation |
| bias | n/a | n/a | n/a | n/a |
| by | CDATA | Animation | CDATA | Animation |
| calcMode | (discrete | linear | paced | spline) | Animation | (discrete | linear | paced | spline) | Animation |
| cap-height | %Number; | Basic Font | %Number; | Font |
| class | n/a | n/a | %ClassList; | Style |
| clip | n/a | n/a | (<shape> | auto | inherit) | Viewport Attribute |
| clip-path | n/a | n/a | (<uri> | none | inherit) | Basic Clip |
| clip-rule | n/a | n/a | (nonzero | evenodd | inherit ) | Basic Clip |
| clipPathUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Basic Clip |
| color | %Color; | Basic Paint Attribute | %Color; | Paint Attribute |
| color-interpolation | n/a | n/a | (auto | sRGB | linearRGB | inherit) | Paint Attribute |
| color-interpolation-filters | n/a | n/a | (auto | sRGB | linearRGB | inherit) | Basic Filter |
| color-profile | n/a | n/a | CDATA | Color Profile |
| color-rendering | (auto | optimizeSpeed | optimizeQuality | inherit) | Basic Paint Attribute | (auto | optimizeSpeed | optimizeQuality | inherit) | Paint Attribute |
| content | CDATA | Extensibility | CDATA | Extensibility |
| contentScriptType | n/a | n/a | %ContentType; | Structure |
| contentStyleType | n/a | n/a | %ContentType; | Structure |
| cursor | n/a | n/a | n/a | n/a |
| cx | n/a | n/a | %Coordinate; | Gradient |
| cx | %Coordinate; | Shape | %Coordinate; | Shape |
| cy | n/a | n/a | %Coordinate; | Gradient |
| cy | %Coordinate; | Shape | %Coordinate; | Shape |
| d | %PathData; | Basic Font | %PathData; | Font |
| d | %PathData; | Shape | %PathData; | Shape |
| descent | %Number; | Basic Font | %Number; | Font |
| diffuseConstant | n/a | n/a | n/a | n/a |
| direction | n/a | n/a | (ltr | rtl | inherit) | Text |
| display | ( inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ) | Basic Graphics Attribute | ( inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ) | Graphics Attribute |
| divisor | n/a | n/a | n/a | n/a |
| dominant-baseline | n/a | n/a | (auto | autosense-script | no-change | reset | ideographic | lower | hanging | mathematical | inherit) | Text |
| dur | CDATA | Animation | CDATA | Animation |
| dx | n/a | n/a | %Lengths; | Text |
| dx | n/a | n/a | n/a | Basic Filter |
| dy | n/a | n/a | %Lengths; | Text |
| dy | n/a | n/a | n/a | Basic Filter |
| edgeMode | n/a | n/a | n/a | n/a |
| elevation | n/a | n/a | n/a | n/a |
| enable-background | n/a | n/a | n/a | n/a |
| end | CDATA | Animation | CDATA | Animation |
| exponent | n/a | n/a | %Number; | Basic Filter |
| externalResourcesRequired | n/a | n/a | %Boolean; | External Resources Attribute |
| fill | (remove | freeze) | Animation | (remove | freeze) | Animation |
| fill | %Paint; | Basic Paint Attribute | %Paint; | Paint Attribute |
| fill-opacity | n/a | n/a | %OpacityValue; | Opacity Attribute |
| fill-rule | %ClipFillRule; | Basic Paint Attribute | %ClipFillRule; | Paint Attribute |
| filter | n/a | n/a | %FilterValue; | Basic Filter |
| filterRes | n/a | n/a | %NumberOptionalNumber; | Basic Filter |
| filterUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Basic Filter |
| flood-color | n/a | n/a | %SVGColor; | Basic Filter |
| flood-opacity | n/a | n/a | %OpacityValue; | Basic Filter |
| font-family | %FontFamilyValue; | Basic Text | %FontFamilyValue; | Text |
| font-family | CDATA | Basic Font | CDATA | Font |
| font-size | %FontSizeValue; | Basic Text | %FontSizeValue; | Text |
| font-size | CDATA | Basic Font | CDATA | Font |
| font-size-adjust | n/a | n/a | %FontSizeAdjustValue; | Text |
| font-stretch | n/a | n/a | (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) | Text |
| font-stretch | (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) | Basic Font | (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) | Font |
| font-style | (normal | italic | oblique | inherit) | Basic Text | (normal | italic | oblique | inherit) | Text |
| font-style | CDATA | Basic Font | CDATA | Font |
| font-variant | n/a | n/a | (normal | small-caps | inherit) | Text |
| font-variant | CDATA | Basic Font | CDATA | Font |
| font-weight | (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) | Basic Text | (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) | Text |
| font-weight | (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) | Basic Font | (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) | Font |
| format | n/a | n/a | CDATA | Text |
| from | CDATA | Animation | CDATA | Animation |
| fx | n/a | n/a | %Coordinate; | Gradient |
| fy | n/a | n/a | %Coordinate; | Gradient |
| g1 | CDATA | Basic Font | CDATA | Font |
| g2 | CDATA | Basic Font | CDATA | Font |
| glyph-name | CDATA | Basic Font | CDATA | Font |
| glyph-orientation-horizontal | n/a | n/a | %GlyphOrientationHorizontalValue; | Text |
| glyph-orientation-vertical | n/a | n/a | %GlyphOrientationVerticalValue; | Text |
| glyphRef | n/a | n/a | CDATA | Text |
| gradientTransform | n/a | n/a | %TransformList; | Gradient |
| gradientUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Gradient |
| hanging | %Number; | Basic Font | %Number; | Font |
| height | %Length; | Basic Structure | %Length; | Structure |
| height | %Length; | Shape | %Length; | Shape |
| height | %Length; | Image | %Length; | Image |
| height | n/a | n/a | %Length; | Pattern |
| height | %Length; | Extensibility | %Length; | Extensibility |
| height | n/a | n/a | %Length; | Mask |
| height | n/a | n/a | %Length; | Basic Filter |
| horiz-adv-x | %Number; | Basic Font | %Number; | Font |
| horiz-origin-x | %Number; | Basic Font | %Number; | Font |
| horiz-origin-y | n/a | n/a | %Number; | Font |
| id | %Number; | Core Attribute | %Number; | Core Attribute |
| ideographic | %Number; | Basic Font | %Number; | Font |
| image-rendering | n/a | n/a | (auto | optimizeSpeed | optimizeQuality | inherit) | Graphics Attribute |
| in | n/a | n/a | CDATA | Basic Filter |
| in2 | n/a | n/a | CDATA | Basic Filter |
| intercept | n/a | n/a | %Number; | Basic Filter |
| k | %Number; | Basic Font | %Number; | Font |
| k1 | n/a | n/a | %Number; | Basic Filter |
| k2 | n/a | n/a | %Number; | Basic Filter |
| k3 | n/a | n/a | %Number; | Basic Filter |
| k4 | n/a | n/a | %Number; | Basic Filter |
| kernelMatrix | n/a | n/a | n/a | n/a |
| kernelUnitLength | n/a | n/a | n/a | n/a |
| kerning | n/a | n/a | %KerningValue; | Text |
| keyPoints | CDATA | Animation | CDATA | Animation |
| keySplines | CDATA | Animation | CDATA | Animation |
| keyTimes | CDATA | Animation | CDATA | Animation |
| lang | %LanguageCodes; | Basic Font | %LanguageCodes; | Font |
| lengthAdjust | n/a | n/a | (spacing|spacingAndGlyphs) | Text |
| letter-spacing | n/a | n/a | %SpacingValue; | Text |
| lighting-color | n/a | n/a | n/a | n/a |
| limitingConeAngle | n/a | n/a | n/a | n/a |
| local | n/a | n/a | CDATA | Color Profile |
| marker | n/a | n/a | n/a | n/a |
| marker-end | n/a | n/a | n/a | n/a |
| marker-mid | n/a | n/a | n/a | n/a |
| marker-start | n/a | n/a | n/a | n/a |
| markerHeight | n/a | n/a | n/a | n/a |
| markerUnits | n/a | n/a | n/a | n/a |
| markerWidth | n/a | n/a | n/a | n/a |
| mask | n/a | n/a | %MaskValue; | Mask |
| maskContentUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Mask |
| maskUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Mask |
| mathematical | %Number; | Basic Font | %Number; | Font |
| max | CDATA | Animation | CDATA | Animation |
| media | n/a | n/a | %MediaDesc; | Style |
| method | n/a | n/a | (align|stretch) | Text |
| min | CDATA | Animation | CDATA | Animation |
| mode | n/a | n/a | (normal | multiply | screen | darken | lighten) | Basic Filter |
| name | n/a | n/a | CDATA | Color Profile |
| name | CDATA | Basic Font | CDATA | Font |
| numOctaves | n/a | n/a | n/a | n/a |
| offset | n/a | n/a | %NumberOrPercentage; | Gradient |
| offset | n/a | n/a | %Number; | Basic Filter |
| onabort | n/a | n/a | %Script; | Document Events Attribute |
| onactivate | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onbegin | n/a | n/a | %Script; | Animation Events Attribute |
| onclick | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onend | n/a | n/a | %Script; | Animation Events Attribute |
| onerror | n/a | n/a | %Script; | Document Events Attribute |
| onfocusin | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onfocusout | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onload | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onmousedown | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onmousemove | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onmouseout | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onmouseover | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onmouseup | n/a | n/a | %Script; | Graphical Element Events Attribute |
| onrepeat | n/a | n/a | %Script; | Animation Events Attribute |
| onresize | n/a | n/a | %Script; | Document Events Attribute |
| onscroll | n/a | n/a | %Script; | Document Events Attribute |
| onunload | n/a | n/a | %Script; | Document Events Attribute |
| onzoom | n/a | n/a | %Script; | Document Events Attribute |
| opacity | n/a | n/a | %OpacityValue; | Opacity Attribute |
| operator | n/a | n/a | (over | in | out | atop | xor | arithmetic) | Basic Filter |
| order | n/a | n/a | n/a | n/a |
| orient | n/a | n/a | n/a | n/a |
| orientation | n/a | n/a | CDATA | Font |
| origin | CDATA | Animation | CDATA | Animation |
| overflow | n/a | n/a | (visible | hidden | scroll | auto | inherit) | Viewport Attribute |
| overline-position | %Number; | Basic Font | %Number; | Font |
| overline-thickness | %Number; | Basic Font | %Number; | Font |
| panose-1 | CDATA | Basic Font | CDATA | Font |
| path | CDATA | Animation | CDATA | Animation |
| pathLength | %Number; | Shape | %Number; | Shape |
| patternContentUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Pattern |
| patternTransform | n/a | n/a | %TransformList; | Pattern |
| patternUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Pattern |
| pointer-events | n/a | n/a | ( visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none | inherit) | Graphics Attribute |
| points | %Points; | Shape | %Points; | Shape |
| pointsAtX | n/a | n/a | n/a | n/a |
| pointsAtY | n/a | n/a | n/a | n/a |
| pointsAtZ | n/a | n/a | n/a | n/a |
| preserveAlpha | n/a | n/a | n/a | n/a |
| preserveAspectRatio | %PreserveAspectRatioSpec; | Basic Structure | %PreserveAspectRatioSpec; | Structure |
| preserveAspectRatio | %PreserveAspectRatioSpec; | Image | %PreserveAspectRatioSpec; | Image |
| preserveAspectRatio | n/a | n/a | %PreserveAspectRatioSpec; | View |
| preserveAspectRatio | n/a | n/a | %PreserveAspectRatioSpec; | Pattern |
| primitiveUnits | n/a | n/a | (userSpaceOnUse | objectBoundingBox) | Basic Filter |
| r | n/a | n/a | %Length; | Gradient |
| r | %Length; | Shape | %Length; | Shape |
| radius | n/a | n/a | n/a | n/a |
| refX | n/a | n/a | n/a | n/a |
| refY | n/a | n/a | n/a | n/a |
| rendering-intent | n/a | n/a | CDATA | Color Profile |
| repeatCount | CDATA | Animation | CDATA | Animation |
| repeatDur | CDATA | Animation | CDATA | Animation |
| requiredExtensions | %ExtensionList; | Conditional Processing | %ExtensionList; | Conditional Processing |
| requiredFeatures | %ExtensionList; | Conditional Processing | %ExtensionList; | Conditional Processing |
| restart | (always | never | whenNotActive) | Animation | (always | never | whenNotActive) | Animation |
| result | n/a | n/a | CDATA | Basic Filter |
| rotate | CDATA | Animation | CDATA | Animation |
| rotate | %Numbers; | Basic Text | %Numbers; | Text |
| rx | %Length; | Shape | %Length; | Shape |
| ry | %Length; | Shape | %Length; | Shape |
| scale | n/a | n/a | n/a | n/a |
| seed | n/a | n/a | n/a | n/a |
| shape-rendering | n/a | n/a | (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) | Graphics Attribute |
| slope | %Number; | Basic Font | %Number; | Font |
| slope | n/a | n/a | %Number; | Basic Filter |
| spacing | n/a | n/a | (auto|exact) | Text |
| specularConstant | n/a | n/a | n/a | n/a |
| specularExponent | n/a | n/a | n/a | n/a |
| spreadMethod | n/a | n/a | (pad | reflect | repeat) | Gradient |
| startOffset | n/a | n/a | %Length; | Text |
| stdDeviation | n/a | n/a | %NumberOptionalNumber; | Basic Filter |
| stemh | %Number; | Basic Font | %Number; | Font |
| stemv | %Number; | Basic Font | %Number; | Font |
| stitchTiles | n/a | n/a | n/a | n/a |
| stop-color | n/a | n/a | %SVGColor; | Gradient |
| stop-opacity | n/a | n/a | %OpacityValue; | Gradient |
| strikethrough-position | %Number; | Basic Font | %Number; | Font |
| strikethrough-thickness | %Number; | Basic Font | %Number; | Font |
| stroke | %Paint; | Basic Paint Attribute | %Paint; | Paint Attribute |
| stroke-dasharray | %StrokeDashArrayValue; | Basic Paint Attribute | %StrokeDashArrayValue; | Paint Attribute |
| stroke-dashoffset | %StrokeDashOffsetValue; | Basic Paint Attribute | %StrokeDashOffsetValue; | Paint Attribute |
| stroke-linecap | (butt | round | square | inherit) | Basic Paint Attribute | (butt | round | square | inherit) | Paint Attribute |
| stroke-linejoin | (miter | round | bevel | inherit) | Basic Paint Attribute | (miter | round | bevel | inherit) | Paint Attribute |
| stroke-miterlimit | %StrokeMiterLimitValue; | Basic Paint Attribute | %StrokeMiterLimitValue; | Paint Attribute |
| stroke-opacity | n/a | n/a | %OpacityValue; | Opacity Attribute |
| stroke-width | %StrokeWidthValue; | Basic Paint Attribute | %StrokeWidthValue; | Paint Attribute |
| style | n/a | n/a | %StyleSheet; | Style |
| surfaceScale | n/a | n/a | n/a | n/a |
| systemLanguage | %LanguageCodes; | Conditional Processing | %LanguageCodes; | Conditional Processing |
| tableValues | n/a | n/a | CDATA | Basic Filter |
| target | %LinkTarget; | Hyperlinking | %LinkTarget; | Hyperlinking |
| targetX | n/a | n/a | n/a | n/a |
| targetY | n/a | n/a | n/a | n/a |
| text-anchor | (start | middle | end | inherit) | Basic Text | (start | middle | end | inherit) |