This document defines a mobile profiles of SVG 1.2. The profile is called SVG Tiny 1.2 and is defined to be suitable for cellphones.
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 document is the third public working draft of Version 1.2 of the SVG Mobile Profile.
This document has been produced by the W3C SVG Working Group as part of the W3C Graphics Activity within the Interaction Domain.
We explicitly invite comments on this specification. Please send them to firstname.lastname@example.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 email@example.com with the word subscribe in the subject line.
The latest information regarding patent disclosures related to this document is available on the Web. The linked Patent Practice was in effect when developing this document.
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.
This is the thid draft of this specification. To facilitate for the reader the following color codes have been used to highlight relevant sections:
-Text in a blue box (like this one) is used to inform the reader about open/unresolved issues and other relevant information.
-Text in light blue boxes describes new features in SVGT1.2.
Note that all the appendixes are up to date and contains new 1.2 information.
SVG Mobile 1.1 defined two profiles: SVG Tiny and and SVG Basic. The SVG Mobile 1.2 specification only defines one profile: SVG Tiny 1.2, as explained below. The SVG Working Group invites comments on this decision.
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.
There is a single SVG 1.2 Mobile document type called SVG Tiny 1.2 (SVGT 1.2).
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.
This paragraph makes references to the SVG 1.1 specification. Before publication, it must be fixed to reference the SVG 1.2 specification. This is pending the first version of the SVG 1.2 specification that includes the SVG 1.1 features and the SVG 1.2 additions.
defs, desc, g, metadata, svg, title, use
circle, ellipse, line, path, polygon, polyline, rect
font, font-face, font-face-name, font-face-src, glyph, hkern, missing-glyph
Only onresize, onscroll, onzoom
animate, animateColor, animateMotion, animateTransform, mpath, set
|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 paint specification for fill and stroke operations, as well as linear 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).|
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"?>
<title xml:lang="en">Sample XHTML + SVG document</title>
<svg:svg width="4cm" height="8cm" version="1.2" baseProfile="tiny" >
<svg:ellipse cx="2" cy="4" rx="2" ry="1" />
SVGT support the 'title', 'desc' and 'metadata' elements as defined in SVG 1.2.
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".
For SVGT, all referenced objects, except on the 'image', 'audio', 'video' and 'a' elements, must be internal (using the 'data:' URL scheme, and base64 encoding).
SVGT does not support symbols.
Note that, in SVG 1.2, animations on a referenced element will cause the instances to be animated. SVGT also support this feature.
SVGT requires support of the JPEG and PNG formats on the image 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:
http://www.w3.org/TR/SVGMobile/Tiny/feature#baseindicates the availability of all the static and declarative animation language capabilities defined for SVG Tiny in Section 2.
http://www.w3.org/TR/SVGMobile/Tiny/feature#interactivityindicates the availability of all the base features, as well as support for interactivity.
http://www.w3.org/TR/SVGMobile/Tiny/feature#allindicates the availability of all the SVG Tiny features.
SVG Tiny 1.2 will also support a feature string to switch on the user agent's support for transformed video. This string will be included in the next draft.
SVG Tiny 1.2 will also support feature strings to allow switching on audio and video formats, but the feature strings have not been defined yet.
SVGT 1.2 supports the page and pageSet elements as defined in SVG 1.2. SVGT 1.2 puts the restriction on the preserveAspectRatio for <page> that it should be the same as that for the outermost <svg> in SVGT 1.1.
SVGT 1.2 supports the timelineBegin and streamedContents attributes as defined in SVG 1.2
SVGT 1.2 supports the externalResourcesRequired attribute to enable progressive rendering, as defined in SVG 1.2.
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.
SVGT 1.2 supports the video element as defined
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 will allow content to switch to an alternate rendering if the user agent does not support transformed video.
The appropriate test attributes for particular audio and video codecs needs to be defined.
SVGT support subsets of SVG 1.2's presentation attributes.
SVGT does not support styling with CSS.
SVGT can introduce constraints on style properties. Allowed values for style properties are listed in Appendix C.
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.
SVGT supports the transform attribute. The following transform definition types are supported:
SPEC ISSUE: There are pending discussions on ref(origUserSpace, <x>, <y>
SVGT fully supports the 'viewBox' attribute. SVGT has restrictions on allowed preserveAspectRatio attribute values (see below).
SVGT supports the 'preserveAspectRatio' attribute for adapting the content to devices with different display aspect ratios.
In SVGT, the <align> parameter can be either 'none' or 'XMidYMid', the <meetOrSlice> parameter can only be 'meet'.
SVGT does not allow nested 'svg' elements.
SVGT only supports user units, with two exceptions:
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.
SVGT supports the basic shapes (rectangles, circles, ellipses, lines, polylines, and polygons) as defined in SVG 1.2.
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.
SVGT 1.2 enables a block of text to be rendered inside of a rectangle, while automatically wrapping the text into lines using the 'flowText' element.
SVGT 1.2 shall support the following elements, with the listed restrictions, as specified in SVG 1.2:
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 property 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.
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.
SVGT supports a subset of the linearGradient
and radialGradient elements. The following is not
-No support for gradientTransform
-No support for spreadMethod (i.e., pad only)
-No support for xlink:href.
-No support for (fx,fy) on radial gradients.
-No percentages on gradient stop offset values.
SVGT 1.2 supports the gradientUnits attribute.
SVGT1.2 supports the solidColor element as defined in SVG 1.2.
SVGT does not support clipping, masking or compositing.
SVGT does not support filter effects.
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 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.
SVG Tiny 1.2 supports scripting through the integration of XML Events, as defined in SVG 1.2.
SVGT supports the full set of SVG 1.2's declarative animation features:
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.
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 only embedded within the same document that uses the font.
SVGT supports 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 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 firstname.lastname@example.org and email@example.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.
SVGT 1.2 will support the UDOM as defined in the SVG 1.2 draft.
|SVG1.2 New Elements||Element Name|
|Elements supported by SVGT1.1||Module Name|
|Elements supported by SVGT1.2||Section Name in SVG1.2 Doc.|
|handler||XML Events Integration|
SPEC ISSUE: TO BE ADDED
SVG Tiny 1.2 Document Fragments MUST conform to the SVG Tiny 1.2 Relax NG schema.
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]
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:
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:
"http://www.w3.org/TR/SVGMobile/Tiny/feature#interactivity"and which support all of the required features for SVGT subset of DOM described in the SVG 1.1 specification.
Specific criteria that apply for only Conforming Dynamic SVGT Viewers:.
Specific criteria that apply for behavior when SVGT User Agents encounter elements and attributes that are not recognized, and other compatibility issues: