W3C

Mobile SVG Profile: SVG Tiny, Version 1.2

W3C Working Draft 13 August 2004

This version:
http://www.w3.org/TR/2004/WD-SVGMobile12-20040813/
Previous version:
http://www.w3.org/TR/2004/WD-SVGMobile12-20040806/
Latest SVG Mobile 1.2 version:
http://www.w3.org/TR/SVGMobile12/
SVG 1.1 Mobile Recommendation:
http://www.w3.org/TR/SVGMobile/
Editors:
Ola Andersson (ZOOMON Mobile Solutions) <ola.andersson@zoomon.com>
Tolga Capin (Nokia) <Tolga.Capin@nokia.com>
Vincent Hardy (Sun Microsystems, Inc.) <vincent.hardy@sun.com>
Authors:
See author list

Abstract

This document defines a mobile profile of SVG 1.2. The profile is called SVG Tiny 1.2 and is defined to be suitable for cellphones.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This is a W3C Last Call Working Draft. If the feedback is positive, the SVG Working Group plans to submit this specification for consideration as a W3C Candidate Recommendation. Comments for this specification should have a subject starting with the prefix '[SVGT12 Comment]'. 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 acceptance of this archiving policy is requested automatically upon first post. To subscribe to this list send an email to www-svg-request@w3.org with the word subscribe in the subject line. Comments are accepted until 17 September 2004.

Issues about this document are documented in the last call issues list maintained by the Working Group.

This document has been produced by the SVG Working Group as part of the W3C Graphics Activity, following the procedures set out for the W3C Process. The authors of this document are listed at the end in the Author List section.

The patent policy for this document is expected to become the 5 February 2004 W3C Patent Policy, pending the Advisory Committee review of the renewal of the XML Query Working Group. Patent disclosures relevant to this specification may be found on the SVG Working Group's patent disclosure page. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) with respect to this specification should disclose the information in accordance with section 6 of the W3C Patent Policy.

Publication as a Working Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

Table of contents

Sections highlighted in blue contains new information relevant to SVG Mobile 1.2. 

1. Introduction

Text in light blue boxes describes new SVGT 1.2 features.

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. The SVG Mobile 1.1 specification addressed that requirement and defined two profiles to deal with the variety of mobile devices having different characteristics in terms of CPU speed, memory size, and color support. The SVG Mobile 1.1 specification defiles SVG Tiny (SVGT) 1.1, which is suitable for highly restricted mobile devices; it also defines a second profile, SVG Basic (SVGB) 1.1, which is targeted for higher level mobile devices.

The SVG 1.2 specification adds features requested by SVG authors, implementors and users. The SVG Mobile 1.2 specification addresses requirement made on the mobile profiles. Because there have only be requests to add features to the SVG Tiny profile, this specification defines a new profile for SVG Tiny, SVG Tiny 1.2.

2. Mobile SVG 1.2 Document Type

There is a single SVG 1.2 Mobile document type called SVG Tiny 1.2 (SVGT 1.2). In this specification, the module definitions are written in RelaxNG.

SVGT 1.2 consist of the following SVG 1.2 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.2 specification.

SVG Tiny

Structure
Core Attribute Module
Tiny Structure Module
Painting
Tiny Paint Attribute Module
Tiny Graphics Attribute Module
Hyperlinking
Hyperlinking
XLink Attribute Module
Conditional Processing
Conditional Processing Module
Shapes
Shape Module
Images
Image Module
Text
Tiny Text Module
Flow
Tiny Flow Module
Fonts
Tiny Font Module
Interactivity
Handler Module
Animation
Animation Module
Extensibility
Extensibility Module
Video
Video Module
Audio
Audio Module

3. Data Types

Data Type Description
Number SVGT supports 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 %. 
Coordinate SVGT supports the coordinate data type, represented with a <length> value.
List of XXX (where XXX represents a value of some type): SVGT supports the list specification.
Angle SVGT only supports angles if specified with no CSS unit identifiers (which means all angles are in degrees). 
Color SVGT supports<color> in the CSS2-compatible specification for a color in the sRGB color space, and system colors. Additionally, SVGT supports the 16 original color keywords from XHTML, and do not support X11 colors. 
Paint SVGT supports filling and stroking of 'path' elements and basic shapes with solid colors, linear gradients, and radial gradients.
Percentage SVGT does not support percentage values except for the 'width' and 'height' attributes on the outermost 'svg' element.
Transform List SVGT supports transform lists.
URI SVGT supports the URI datatype.
Frequency SVGT do not support frequency values.
Time SVGT support time values, with unit identifiers (ms, s).

4. Document Structure

Mobile SVG Document Fragment

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.2" baseProfile="tiny" >        <svg:ellipse cx="2" cy="4" rx="2" ry="1" />
     </svg:svg>
   </body>
 </html>

The 'title', 'desc', 'metadata' Elements

SVGT support the 'title', 'desc' and 'metadata' elements as defined in SVG 1.2.

The 'svg' Element

SVG Tiny content cannot have nested child 'svg' elements.

For SVG Tiny content, the 'baseProfile' attribute on the outermost 'svg' element must have the value "tiny". The SVG 1.2 specification states that the 'version' attribute of the outermost 'svg' element in SVG 1.2 content must have the value "1.2".

References and the 'defs' Element

For SVGT, all referenced objects, except on the 'image', 'audio', 'video', 'font-face-uri' and 'a' elements, must be internal (using the 'data:' URL scheme, and base64 encoding).

The 'symbol' Element

SVGT does not support symbols.

The 'use' Element

Note that, in SVG 1.2, animations on a referenced element will cause the instances to be animated. SVGT also support this feature.

The 'image' Element

SVGT requires support of the JPEG and PNG formats on the image element.

SVGT requires support for SVG images with the following restrictions. First, the referencing 'image' element's overflow property and the referenced 'svg' overflow property MUST be set to 'visible'. Second, the referenced document should not contain any references to external SVG images. If these restrictions are not met, the document is in error.

These restrictions have been added to protect implementations from most of the implementation cost while still covering important use cases with external svg images. The same use cases could have been covered by allowing external use elements instead, the WG feels that the implementation cost of these two alternatives are equal but are interested in any feedback that proves the difference.

The 'switch' Element

SVGT supports the switch element, to determine which SVG 1.2 features are supported by the user agent.

The following feature strings are allowed for SVGT:

Note that the above feature strings use the "example.org" domain. In the next version of this specification, the feature strings will use the "www.w3.org" domain. Implementors should use the "www.w3.org" identifier for feature strings.

Multiple Pages

SVGT 1.2 supports the page and pageSet elements as defined in SVG 1.2. The allowed values for preserveAspectRatio for <page> follow the same resrictions as the <svg> element.

Streaming

SVGT 1.2 supports the timelineBegin and streamedContents attributes as defined in SVG 1.2

Progressive Rendering

SVGT 1.2 supports the externalResourcesRequired attribute to enable progressive rendering, as defined in SVG 1.2.

The 'audio' Element

SVGT 1.2 supports the audio element as defined in SVG 1.2. SVGT 1.2 allows different audio formats but does not mandate any particular audio format.

The requiredFormats test attribute, allows content to check for particular audio codecs.

The 'video' Element

SVGT 1.2 supports the video element as defined in SVG 1.2. SVGT 1.2 allows different video formats but will not mandate any particular video format. Proper rendering requires video to be subject to transformation just like any other graphics. If an implementation can only support non-transformed video, then it should show the video only if the result matches what the file specifies, i.e. only show the video if the result would be correct according to the author's intent, which means only show if the only active transformations is a translation.

A feature string allows content to switch to an alternate rendering if the user agent does not support transformed video.

The requiredFormats test attribute, allows content to check for particular  video codecs.

5. Styling

SVGT support subsets of SVG 1.2's presentation attributes.

SVGT does not support styling with CSS.

SVGT can introduce constraints on style properties. Properties and attributes are listed in Appendix C.

6. Coordinate Systems, Transformations and Units

SVGT supports SVG 1.2's notion of viewports.

SVGT supports nesting of transformations. The types of transformations that are allowed are generic transformation matrices, or simple operations such as rotation, scaling, skewing, and translation.

The 'transform' Attribute

SVGT supports the transform attribute. The following transform definition types are supported:

The 'viewBox' Attribute

SVGT fully supports the 'viewBox' attribute. SVGT has restrictions on allowed preserveAspectRatio attribute values (see below).

The 'preserveAspectRatio' Attribute

SVGT supports the 'preserveAspectRatio' attribute for adapting the content to devices with different display aspect ratios.

In SVGT, the <align> parameter is not restricted but the <meetOrSlice> parameter can only be 'meet'.

Establishing a New Viewport

SVGT does not allow nested 'svg' elements.

Units

SVGT only supports user units, with two exceptions:

  1. CSS units are supported on the 'width' and 'height' attributes of the outermost 'svg' element.
  2. object bounding box units are supported on 'linearGradient' and on 'radialGradient' when the 'gradientUnit' attribute is set to 'objectBoundingBox'.

7. Shapes

Paths

SVGT support all SVG 1.2 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.

Basic Shapes

SVGT supports the basic shapes (rectangles, circles, ellipses, lines, polylines, and polygons) as defined in SVG 1.2.

8. Text

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, and does not support the tref' elements.

SVGT supports a simplified version of the 'tspan' element, where the x, y, dx, dy, rotate, textLength and lengthAdjust attributes are not supported.

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.

SVGT 1.2 enables a block of text to be rendered inside of a rectangle, while automatically wrapping the text into lines using the 'flowRoot' element.

SVGT 1.2 shall support the following elements, with the listed restrictions, as specified in SVG 1.2:

Restrictions:

Note that children of a flowRegion element are inserted into the rendering tree before the text is drawn, and have the same rendering behavior as if they were children of a g element.

SVG Tiny 1.2 supports the 'editable' attribute with restrictions. SVG Tiny 1.2 supports the 'editable' attrubute on 'text' elements which have no element children. SVG Tiny 1.2 supports the 'editable' attribute on 'flowPara' elements which are the only child of a 'flowRoot' element and which have no element children. If these restrictions are not met, the document is in error.

SVG Tiny 1.2 supports the 'progression-align' property that indicates line progression direction alignment in flowing text.

progression-align
Value: before | center | after
Initial: before
Applies to: flowRoot , flowPara and flowSpan
Inherited: yes
Percentages: N/A
Media: visual
Animatable: yes

An SVG user agent uses this property to align blocks of flowed text within their containing regions. If the line progression direction is left to right, a setting of 'before' will align the block of text at the top of the region. A setting of 'after' will align the text at the bottom of the region. A setting of 'center' will vertically center the block of flowed text. The combined line heights of the entire flowed text is used for alignment (as opposed to maximum glyph extents on the flowed text lines).

9. Painting: Filling, Stroking and Marker Symbols

SVGT support filling and stroking 'path' elements and basic shapes with solid colors, linear or radial gradients (see Gradients and Patterns for a description of the subset supported by SVGT).

SVGT supports fill-opacity, stroke-opacity, background-fill-opacity and stop-opacity.

SVGT 1.2 supports the non-scaling stroke as defined in SVG 1.2.

SVGT 1.2 adds support for the following rendering properties: shape-rendering, text-rendering, and image-rendering. color-rendering was already supported in SVGT 1.2.

SVGT must support stroking on text when using SVG Fonts, should support stroking on text when using other outline fonts, and must not support stroking on text when using raster fonts.

SVGT 1.2 supports the background-fill and background-fill-opacity properties as defined in SVG 1.2.

SVGT 1.2 supports the a subset of the 'vector-effect' property defined in SVG 1.2. Only the 'default' and 'non-scaling-stroke' values are supported.

10. Color

SVGT supports <color> in the CSS2-compatible specification for a color in the sRGB color space, and system colors. Additionally, SVGT supports the 16 original color keywords from XHTML, and do not support X11 colors.

Specifying colors using an ICC profile is not supported in SVGT.

11. Gradients and Patterns

SVGT supports a subset of the linearGradient and radialGradient elements. The following is not supported:

SVGT 1.2 supports the gradientUnits attribute.

SVGT1.2 supports the solidColor element as defined in SVG 1.2.

12. Clipping, Masking and Compositing

SVGT does not support clipping, masking or compositing.

13. Filter Effects

SVGT does not support filter effects.

14. Interactivity

SVGT supports the SVG 1.2 events. SVGT allows interactivity with declarative animation and with the integration of XMLEvents, as described in SVG 1.2.

SVGT 1.2 supports the focusable property, as defined in SVG 1.2. SVGT 1.2 also supports the nav-index property, as defined in SVG 1.2.

SVGT 1.2 supports the pointer-events property.

15. Linking

SVGT supports hyperlink activation from SVG content to other Web resources through the 'a' element.

SVGT supports linking into specific views of the SVG document by supporting a subset of the svgView fragment identifier as defined in SVG 1.1, where only the transform specification is supported.

16. Scripting

SVG Tiny 1.2 supports scripting through the integration of XML Events, as defined in SVG 1.2. In particular, a 'handler' element can have children in an arbitrary XML namespace as a way to specify parameters.

17. Animation

SVGT supports the full set of SVG 1.2's declarative animation features:

  1. SVGT allows the language features to support animation through scripting and UDOM are available in SVGT.
  2. SVGT allow implicit targeting of parent elements, and targeting elements using the 'xlink:href' attribute.
  3. SVGT support linear, spline, paced and discrete animations.

SVGT 1.2 supports the 'snapShotTime' attribute as defined the SVG 1.2

SVGT 1.2 supports the 'prefetch' element as defined in SVG 1.2.

18. Fonts

SVGT supports 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.

In SVGT, an SVG font can be embedded within the same document that uses the font or referenced through the 'font-face-src' and 'font-face-uri' elements.

19. Metadata

SVGT supports embedded metadata, as well as elements and attributes from foreign namespaces included within the SVG content.

20. Extensibility

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.


Author List

The authors of this specification are the participants of the W3C SVG Working Group.

Acknowledgments

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 specifications. These people are too numerous to list individually. They include but are not limited to the early implementers of SVG 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.


References

[CSS Mobile Profile]
CSS Mobile Profile 1.0 , Ted Wugofski, Doug Dominiak, Peter Stark, editors, W3C, 24 October 2001 (W3C Candidate Recommendation) Available at http://www.w3.org/TR/css-mobile.
[MOBILE SVG Tiny 1.2 Requirements]
SVG Tiny Version 1.2 Requirements , Chris Lilley editor, W3C, 09 December 2003 (Working Draft). Available at http://www.w3.org/TR/SVGTiny12Reqs.
[MOBILE SVG Requirements]
SVG Mobile Requirements , Rick Graham, Tolga K. Capin, editors, W3C, 3 August 2001 (Working Draft). Available at http://www.w3.org/TR/SVGMobileReqs.
[RFC2119]
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels Internet Engineering Task Force, 1997. Available at http://www.ietf.org/rfc/rfc2119.txt.
[SVG 1.0]
Scalable Vector Graphics (SVG) 1.0 Specification , Jon Ferraiolo, editor, W3C, 4 September 2001 (Recommendation). Available at http://www.w3.org/TR/SVG/.
[SVG 1.1/2.0 Requirements]
SVG 1.1/2.0 Requirements , Dean Jackson, editor, W3C, 3 August 2001. Available at http://www.w3.org/TR/SVG2Reqs/.
[SVG 1.1]
Scalable Vector Graphics (SVG) Version 1.1 Specification , Dean Jackson, editor, W3C, 15 February 2002. Available at http://www.w3.org/TR/SVG11/.
[SVG 1.2]
Scalable Vector Graphics (SVG) Version 1.2 Specification , Dean Jackson, editor, W3C. Available at http://www.w3.org/TR/SVG12/.

Appendix A. UDOM

SVGT 1.2 will support the UDOM as defined in the SVG 1.2 draft.


Appendix B. Element Index

Element Name Reference
a http://www.w3.org/TR/SVG11/linking.html#AElement
animate http://www.w3.org/TR/SVG11/animate.html#AnimateElement
animateColor http://www.w3.org/TR/SVG11/animate.html#AnimateColorElement
animateMotion http://www.w3.org/TR/SVG11/animate.html#AnimateMotionElement
animateTransform http://www.w3.org/TR/SVG11/animate.html#AnimateTransformElement
audio http://www.w3.org/TR/SVG12/#audio-element
circle http://www.w3.org/TR/SVG11/shapes.html#CircleElement
defs http://www.w3.org/TR/SVG11/struct.html#DefsElement
desc http://www.w3.org/TR/SVG11/struct.html#DescElement
ellipse http://www.w3.org/TR/SVG11/shapes.html#EllipseElement
flowPara http://www.w3.org/TR/SVG12/#flowPara-elem
flowRegion http://www.w3.org/TR/SVG12/#flowRegion-elem
flowRoot http://www.w3.org/TR/SVG12/#flowRoot-elem
flowSpan http://www.w3.org/TR/SVG12/#flowSpan-elem
font http://www.w3.org/TR/SVG11/fonts.html#FontElement
font-face http://www.w3.org/TR/SVG11/fonts.html#FontFaceElement
font-face-name http://www.w3.org/TR/SVG11/fonts.html#FontFaceNameElement
font-face-src http://www.w3.org/TR/SVG11/fonts.html#FontFaceSrcElement
font-face-uri http://www.w3.org/TR/SVG11/fonts.html#FontFaceNameElement
foreignObject http://www.w3.org/TR/SVG11/extend.html#ForeignObjectElement
g http://www.w3.org/TR/SVG11/struct.html#GElement
glyph http://www.w3.org/TR/SVG11/fonts.html#GlyphElement
handler http://www.w3.org/TR/SVG12/#handler-element
hkern http://www.w3.org/TR/SVG11/fonts.html#HKernElement
image http://www.w3.org/TR/SVG11/struct.html#ImageElement
line http://www.w3.org/TR/SVG11/shapes.html#LineElement
linearGradient http://www.w3.org/TR/SVG11/pservers.html#LinearGradientElement
metadata http://www.w3.org/TR/SVG11/metadata.html#MetadataElement
missing-glyph http://www.w3.org/TR/SVG11/fonts.html#MissingGlyphElement
mpath http://www.w3.org/TR/SVG11/animate.html#mpathElement
page http://www.w3.org/TR/SVG12/#page-element
pageSet http://www.w3.org/TR/SVG12/#pageSet-element
path http://www.w3.org/TR/SVG11/paths.html#PathElement
polygon http://www.w3.org/TR/SVG11/shapes.html#PolygonElement
polyline http://www.w3.org/TR/SVG11/shapes.html#PolylineElement
prefetch http://www.w3.org/TR/SVG12/#prefetch-element
radialGradient http://www.w3.org/TR/SVG11/pservers.html#RadialGradientElement
rect http://www.w3.org/TR/SVG11/shapes.html#RectElement
script http://www.w3.org/TR/SVG11/script.html#ScriptElement
set http://www.w3.org/TR/SVG11/animate.html#SetElement
solidColor http://www.w3.org/TR/SVG12/#solidColor-elem
stop http://www.w3.org/TR/SVG11/pservers.html#StopElement
svg http://www.w3.org/TR/SVG11/struct.html#SVGElement
switch http://www.w3.org/TR/SVG11/struct.html#SwitchElement
text http://www.w3.org/TR/SVG11/text.html#TextElement
title http://www.w3.org/TR/SVG11/struct.html#TitleElement
transition http://www.w3.org/TR/SVG12/#transition-element
tspan http://www.w3.org/TR/SVG11/text.html#TSpanElement
use http://www.w3.org/TR/SVG11/struct.html#UseElement
video http://www.w3.org/TR/SVG12/#video-element

Appendix C. Attributes Index

Attribute Name Supported Elements
accent-height font-face
accumulate animate | animateColor | animateMotion | animateTransform
additive animate | animateColor | animateMotion | animateTransform
alphabetic font-face
arabic-form glyph
ascent font-face
attributeName animate | animateColor | animateTransform | set
attributeType animate | animateColor | animateTransform | set
audio-level audio | video
background-fill foreignObject | image | svg | video
background-fill-opacity foreignObject | image | svg | video
bandwidth prefetch
baseProfile svg
bbox font-face
begin animate | animateColor | animateMotion | animateTransform | audio | page | set | video
by animate | animateColor | animateMotion | animateTransform
calcMode animate | animateColor | animateMotion | animateTransform
cap-height font-face
color a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | linearGradient | missing-glyph | page | pageSet | path | polygon | polyline | radialGradient | rect | solidColor | stop | svg | switch | text | tspan | use
color-rendering a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | linearGradient | missing-glyph | page | pageSet | path | polygon | polyline | radialGradient | rect | solidColor | stop | svg | switch | text | tspan | use
contentScriptType svg
contentStyleType svg
cx circle | ellipse | radialGradient
cy circle | ellipse | radialGradient
d glyph | missing-glyph | path
descent font-face
direction transition
display a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
dur animate | animateColor | animateMotion | animateTransform | audio | page | set | transition | video
editable flowPara | text
end animate | animateColor | animateMotion | animateTransform | audio | page | set | video
endProgress transition
ev:event handler
externalResourcesRequired a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | ellipse | font | foreignObject | g | image | line | linearGradient | mpath | path | polygon | polyline | radialGradient | rect | script | set | solidColor | svg | switch | text | use | video
fadeColor transition
fill a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | set | svg | switch | text | tspan | use | video
fill-opacity a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
fill-rule a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
focusable a | audio | circle | ellipse | flowPara | flowRoot | flowSpan | foreignObject | g | image | line | page | path | polygon | polyline | rect | svg | text | use | video
font-family a | defs | flowPara | flowRoot | flowSpan | font | font-face | foreignObject | g | glyph | missing-glyph | page | pageSet | svg | switch | text | tspan | use
font-size a | defs | flowPara | flowRoot | flowSpan | font | font-face | foreignObject | g | glyph | missing-glyph | page | pageSet | svg | switch | text | tspan | use
font-stretch font-face
font-style a | defs | flowPara | flowRoot | flowSpan | font | font-face | foreignObject | g | glyph | missing-glyph | page | pageSet | svg | switch | text | tspan | use
font-variant font-face
font-weight a | defs | flowPara | flowRoot | flowSpan | font | font-face | foreignObject | g | glyph | missing-glyph | page | pageSet | svg | switch | text | tspan | use
from animate | animateColor | animateMotion | animateTransform
g1 hkern
g2 hkern
glyph-name glyph
gradientUnits linearGradient | radialGradient
hanging font-face
height foreignObject | image | rect | svg | use | video
horiz-adv-x font | glyph | missing-glyph
horiz-origin-x font
horiz-origin-y font
id a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | desc | ellipse | flowPara | flowRegion | flowRoot | flowSpan | font | font-face | font-face-name | font-face-src | font-face-uri | foreignObject | g | glyph | handler | hkern | image | line | linearGradient | metadata | missing-glyph | mpath | page | pageSet | path | polygon | polyline | prefetch | radialGradient | rect | script | set | solidColor | stop | svg | switch | text | title | transition | tspan | use | video
ideographic font-face
image-rendering a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
k hkern
keyPoints animateMotion
keySplines animate | animateColor | animateMotion | animateTransform
keyTimes animate | animateColor | animateMotion | animateTransform
lang glyph
mathematical font-face
max animate | animateColor | animateMotion | animateTransform | audio | page | set | video
mediaEncodings prefetch
mediaSize prefetch
mediaTime prefetch
min animate | animateColor | animateMotion | animateTransform | audio | page | set | video
name font-face-name
nav-index a | audio | circle | ellipse | flowPara | flowRoot | flowSpan | foreignObject | g | image | line | page | path | polygon | polyline | rect | svg | text | use | video
offset stop
orientation glyph
origin animateMotion
overflow svg | image
overline-position font-face
overline-thickness font-face
page-orientation page
panose-1 font-face
path animateMotion
pathLength path
pointer-events a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
points polygon | polyline
preserveAspectRatio image | page | svg | video
progression-align flowRoot | flowPara | flowSpan
r circle | radialGradient
repeatCount animate | animateColor | animateMotion | animateTransform | audio | page | set | video
repeatDur animate | animateColor | animateMotion | animateTransform | audio | page | set | video
requiredExtensions a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | ellipse | foreignObject | g | image | line | path | polygon | polyline | rect | set | svg | switch | text | tspan | use | video
requiredFeatures a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | ellipse | foreignObject | g | image | line | path | polygon | polyline | rect | set | svg | switch | text | tspan | use | video
requiredFormats a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | ellipse | foreignObject | g | image | line | path | polygon | polyline | rect | set | svg | switch | text | tspan | use | video
restart animate | animateColor | animateMotion | animateTransform | audio | page | set | video
rotate animateMotion | text
rx ellipse | rect
ry ellipse | rect
shape-rendering a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
slope font-face
solid-color solidColor
solid-opacity solidColor
startProgress transition
stemh font-face
stemv font-face
stop-color a | defs | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | linearGradient | missing-glyph | page | pageSet | radialGradient | stop | svg | switch | use
stop-opacity a | defs | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | linearGradient | missing-glyph | page | pageSet | radialGradient | stop | svg | switch | use
strikethrough-position font-face
strikethrough-thickness font-face
stroke a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
stroke-dasharray a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
stroke-dashoffset a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
stroke-linecap a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
stroke-linejoin a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
stroke-miterlimit a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
stroke-opacity a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
stroke-width a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
subtype transition
systemLanguage a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | ellipse | foreignObject | g | image | line | path | polygon | polyline | rect | set | svg | switch | text | tspan | use | video
target a
text-align flowRoot | flowPara | flowSpan
text-rendering a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
to animate | animateColor | animateMotion | animateTransform | set
transform a | circle | ellipse | flowRoot | foreignObject | g | image | line | page | pageSet | path | polygon | polyline | rect | svg | switch | text | use | video
type animateTransform | handler | script | transition
u1 hkern
u2 hkern
underline-position font-face
underline-thickness font-face
unicode glyph
unicode-range font-face
units-per-em font-face
v-alphabetic font-face
v-hanging font-face
v-ideographic font-face
v-mathematical font-face
values animate | animateColor | animateMotion | animateTransform
vector-effect a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use
version svg
vert-adv-y font | glyph | missing-glyph
vert-origin-x font | glyph | missing-glyph
vert-origin-y font | glyph | missing-glyph
viewBox page | svg
visibility a | circle | defs | ellipse | flowPara | flowRoot | flowSpan | font | foreignObject | g | glyph | image | line | missing-glyph | page | pageSet | path | polygon | polyline | rect | svg | switch | text | tspan | use | video
width foreignObject | image | rect | svg | use | video
widths font-face
x foreignObject | image | rect | svg | text | use | video
x-height font-face
x1 line | linearGradient
x2 line | linearGradient
xlink:actuate a | audio | font-face-uri | foreignObject | image | mpath | prefetch | use | video
xlink:href a | audio | font-face-uri | foreignObject | image | mpath | prefetch | use | video
xlink:show a | audio | font-face-uri | foreignObject | image | mpath | prefetch | use | video
xml:base a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | desc | ellipse | flowPara | flowRegion | flowRoot | flowSpan | font | font-face | font-face-name | font-face-src | font-face-uri | foreignObject | g | glyph | handler | hkern | image | line | linearGradient | metadata | missing-glyph | mpath | page | pageSet | path | polygon | polyline | prefetch | radialGradient | rect | script | set | solidColor | stop | svg | switch | text | title | transition | tspan | use | video
xml:lang a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | desc | ellipse | flowPara | flowRegion | flowRoot | flowSpan | font | font-face | font-face-name | font-face-src | font-face-uri | foreignObject | g | glyph | handler | hkern | image | line | linearGradient | metadata | missing-glyph | mpath | page | pageSet | path | polygon | polyline | prefetch | radialGradient | rect | script | set | solidColor | stop | svg | switch | text | title | transition | tspan | use | video
xml:space a | animate | animateColor | animateMotion | animateTransform | audio | circle | defs | desc | ellipse | flowPara | flowRegion | flowRoot | flowSpan | font | font-face | font-face-name | font-face-src | font-face-uri | foreignObject | g | glyph | handler | hkern | image | line | linearGradient | metadata | missing-glyph | mpath | page | pageSet | path | polygon | polyline | prefetch | radialGradient | rect | script | set | solidColor | stop | svg | switch | text | title | transition | tspan | use | video
y foreignObject | image | rect | svg | text | use | video
y1 line | linearGradient
y2 line | linearGradient
zoomAndPan svg

Appendix D. SVG Tiny 1.2 Schema

SVG Tiny 1.2 Document Fragments MUST conform to the SVG Tiny 1.2 Relax NG schema.

Appendix E. SVG Tiny Conformance Criteria

This appendix is normative.

This section describes conformance criteria for SVG Tiny Document Fragments and User Agents. These criteria take SVG 1.2 conformance criteria as a base, and add or relax restrictions.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]

Fragment Conformance

A conforming SVG Tiny document fragment is a document fragment that requires only the facilities described as mandatory in this specification. Such a document fragment MUST meet all the following criteria:

User Agent Conformance

A conforming SVG Tiny User Agent is a User Agent that requires only the facilities described as mandatory in this specification. Such a User Agent MUST meet all the following criteria:

Dynamic SVGT User Agent Conformance

Specific criteria that apply for only Conforming Dynamic SVGT Viewers:.

SVGT User Agent Compatibility Issues

Specific criteria that apply for behavior when SVGT User Agents encounter elements and attributes that are not recognized, and other compatibility issues: