Abstract

This document defines two mobile profiles of SVG 1.2. The
first profile, SVG Tiny 1.2, is defined to be suitable for
cellphones; the second profile, SVG Basic 1.2, is suitable for
PDAs.

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 document is the second public working draft
of Version 1.2 of the SVG Mobile Profiles: SVG Basic and SVG
Tiny. A list of changes since the last
Working Draft is included.

We explicitly invite comments on this specification. 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.

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.

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 yellow contains new
information relevant to SVG Mobile 1.2. The other sections are
unmodified from SVG Mobile 1.1.

1.
Introduction

Reading Instructions:
This is the second draft of this specification and large parts of
it are not updated from the 1.1 version of the specification. To
facilitate for the reader the following color codes have been
used to highlight relevant sections:
-Text in a green box (like this one) is used to inform the reader
about open/unresolved issues and other relevant
information.
-Text in light yellow boxes describes
new features in SVGT1.2/SVGB1.2.
All the text outside of those boxes can possibly be out of
date/wrong.

Note that all the appendixes are up to date and contains new 1.2
information.

All the new functionality in this draft applies
to both SVG Tiny 1.2 and SVG Basic 1.2. There has been limited
demand for specific SVG Basic 1.2 functionality so the WG has
decided to let SVG Basic 1.2 be defined by SVG Basic 1.1 + new
SVG Tiny 1.2 functionality.

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.

Mobile SVG is designed so that SVG 1.1 can be transcoded
into SVGB and SVGT preserving as much scalability as
possible.

To ensure interoperability between content and software
tools compliant with different profiles, SVGT is specified to
be a proper subset of SVGB, and SVGB to be a proper subset of
SVG 1.1.

2. Mobile SVG
Document Types

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.

3. Data
Types

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).

4. Document
Structure

Mobile SVG Document Fragment

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:

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

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

The 'svg' Element

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".

References and the 'defs' Element

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.

The 'symbol' Element

SVGT does not support symbols.

The 'use' Element

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.

The 'image' Element

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.

The 'switch' 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:

SVG 1.1 Module Feature Sets:

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

The feature string
"http://www.w3.org/TR/SVGMobile/Tiny/feature#base"
indicates the availability of all the static and declarative
animation language capabilities defined for SVG Tiny in Section
2.

The feature string
"http://www.w3.org/TR/SVGMobile/Tiny/feature#interactivity"
indicates the availability of all the base features, as well as
support for interactivity.

The feature string
"http://www.w3.org/TR/SVGMobile/Tiny/feature#all"
indicates the availability of all the SVG Tiny features.

The following feature strings are allowed for SVGB:

SVG 1.1 Module Feature Sets:

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

The feature string
"http://www.w3.org/TR/SVGMobile/Basic/feature#base"
indicates the availability of all the static and declarative
animation language capabilities defined for SVG Basic in
Section 2.

The feature string
"http://www.w3.org/TR/SVGMobile/Basic/feature#SVGBasicDomCore"
indicates the availability of SVG Basic DOM Core as defined in
this specification.

The feature string
"http://www.w3.org/TR/SVGMobile/Basic/feature#SVGBasicDomExtended"
indicates the availability of SVG Basic Extended DOM as defined
in this specification.

The feature string
"http://www.w3.org/TR/SVGMobile/Basic/feature#css"
indicates the availability of all the base features, as well as
support for styling with CSS.

The feature string
"http://www.w3.org/TR/SVGMobile/Basic/feature#all"
indicates the availability of all the SVG Basic features.

Multiple Pages

SVGT 1.2/SVGB 1.2 supports the page and pageSet
elements as defined in the SVG 1.2 draft. SVGT
1.2 puts the restriction on the pAR for <page> that it
should be the same as that for the outermost <svg> in SVGT
1.1.

Streaming

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

Progressive Rendering

The 'audio' Element

SVGT 1.2/SVGB 1.2 supports the audio element as
defined in the SVG 1.2 draft.
SVGT 1.2/SVGB 1.2 allows to switch between different audio
formats but will not mandate any audio format.

5. Styling

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.

6.
Coordinate Systems, Transformations and Units

SVGT 1.2/SVGB 1.2 shall support the new
transform definition type 'ref(<target>, <x>,
<y>)' as defined in the SVG 1.2 draft.
SVGT 1.2/SVGB 1.2 supports only 'host' as a target.

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.

The 'transform' Attribute

SVGB and SVGT support the transform attribute. The following
transform definition types are supported:

Matrix(<a><b><c><d><e><f>)

Translate(<tx>[<ty>])

Scale(<sx>[<sy>])

Rotate(<rotate_angle>[<cx><cy>])

SkewX(<skew_angle>)

SkewY(<skew_angle>)

The 'viewBox' Attribute

SVGB and SVGT fully support the 'viewBox' attribute. SVGT has
restrictions on allowed preserveAspectRatio attribute values.

The 'preserveAspectRatio'
Attribute

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'.

8. Text

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/SVGB 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/SVGB 1.2 shall support the following
elements, with the listed restrictions, as specified in the
SVG 1.2
draft:

flowText

flowRegion - with the restriction that the
only basic shape supported is rectangle

flowDiv - with the restriction that its text
cannot be rotated or skewed relative to its containing
rectangle

flowPara - with the restriction that its
text cannot be rotated or skewed relative to its containing
rectangle

9. Painting:
Filling, Stroking and Marker Symbols

SVGB and SVGT support filling and stroking 'path' elements and
basic shapes with solid colors.

SVGB supports all features of opacity as
defined in SVG 1.2 specification. SVGT supports fill-opacity and
stroke-opacity properties only.

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.1.

SVGT 1.2/SVGB 1.2 supports stroking on text
when using outline fonts.

10. 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.

Specifying colors using an ICC profile is not supported in
SVGT; and as with SVG 1.1, it is optional in SVGB.

11. Gradients and
Patterns

SVGT 1.2 supports a subset of the
linearGradient and radialGradient elements. The following is not
supported:
-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.

The SVG WG has still not decided wether to
restrict gradientUnits to userSpaceOnUse only or to allow for
both userSpaceOnUse and objectBoundingBox. The group is also
still investigating possible support for spreadMethod and fx,
fy.

12. Clipping,
Masking and Compositing

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').

13. Filter
Effects

SVGB supports a subset of filter effects. SVGT does not
support filter effects.

14.
Interactivity

SVGB and SVGT support the SVG 1.1 events. SVGT only allows
interactivity with declarative animation.

SVGT 1.2/SVGB 1.2 supports interactivity
through the integration of XMLEvents, as described in the
SVG
1.2 draft

SVGT 1.2/SVGB 1.2 also supports the focusable
property, as defined in the SVG 1.2 draft.

15. Linking

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 1.2 supports linking into specific views
of the SVG document by supporting a subset of the svgView
fragment identifier as defined in SVG 1.1. The supported subset
is:

18. Fonts

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.

19.
Metadata

Both SVGB and SVGT support 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.

List of Changes

The following is a brief list of changes made since the
last draft:

New DOM subset specifically designed for SVG Tiny 1.2 implementations in order to reduce memory usage and processing load

Constrained transformations, allowing elements to remain fixed in the
viewport

Non-scaling strokes

Minor editorial changes

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