Expanded Table of Contents
1
Introduction
1.1
About SVG
1.2
SVG Tiny 1.2
1.2.1
Modularization
1.2.2
Element and Attribute collections
1.2.3
Profiling the SVG specification
1.3
Defining an SVG Tiny 1.2 document
1.4
SVG MIME type, file name extension and Macintosh file type
1.5
Compatibility with Other Standards Efforts
1.6
Definitions
2
Concepts
2.1
Explaining the name: SVG
2.1.1
Scalable
2.1.2
Vector
2.1.3
Graphics
2.1.4
XML
2.1.5
Namespace
2.1.6
Scriptable
2.2
Important SVG concepts
2.2.1
Graphical Objects
2.2.2
Reuse
2.2.3
Fonts
2.2.4
Animation
2.3
Options for using SVG in Web pages
3
Rendering Model
3.1
Introduction
3.2
The painters model
3.3
Rendering Order
3.4
Types of graphics elements
3.4.1
Painting shapes and text
3.4.2
Painting raster images
3.4.3
Painting video
3.5
Parent Compositing
4
Basic Data Types and Color Keywords
4.1
Basic Data Types
4.2
Recognized color keyword names
5
Document Structure
5.1
Defining an SVG document fragment: the 'svg' element
5.1.1
Overview
5.1.2
The 'svg' element
5.2
Grouping: the 'g' element
5.2.1
Overview
5.2.2
The 'g' element
5.3
The 'defs' element
5.4
The 'discard' element
5.5
The 'desc' and 'title' elements
5.6
The 'use' element
5.7
The 'image' element
5.8
Conditional processing
5.8.1
Conditional processing overview
5.8.2
The 'switch' element
5.8.3
The requiredFeatures attribute
5.8.4
The requiredExtensions attribute
5.8.5
The systemLanguage attribute
5.8.6
The requiredFormats attribute
5.8.7
The requiredFonts attribute
5.9
External Resources
5.9.1
Specifying whether external resources are required for proper rendering
5.9.2
Progressive Rendering
5.9.3
The 'prefetch' element
5.10
Common attributes
5.10.1
Attributes common to all elements: class, id, xml:id and xml:base
5.10.2
The xml:lang and xml:space attributes
5.11
Core Attribute Module
5.12
Structure Module
5.13
Conditional Processing Module
5.14
Conditional Processing Attribute Module
5.15
Image Module
5.16
Prefetch Module
5.17
ExternalResourcesRequired Attribute Module
6
Styling
6.1
SVG's styling properties
6.2
Usage scenarios for styling
6.3
Specifying properties using the presentation attributes
6.4
Styling with XSL
6.5
Case sensitivity of property names and values
6.6
Facilities from CSS and XSL used by SVG
6.7
Property inheritance
7
Coordinate Systems, Transformations and Units
7.1
Introduction
7.2
The initial viewport
7.3
The initial coordinate system
7.4
Coordinate system transformations
7.5
Nested transformations
7.6
The transform attribute
7.6.1
The TransformList value
7.7
Constrained Transformations
7.7.1
The user space transformation
7.7.2
ViewBox to Viewport transformation
7.7.3
Element Transform Stack
7.7.4
The Current Transform Matrix
7.7.5
The ref() transform value
7.8
The viewBox attribute
7.9
The preserveAspectRatio attribute
7.10
Establishing a new viewport
7.11
Units
7.12
Object bounding box units
7.13
Intrinsic Sizing Properties of the Viewport of SVG content
7.14
Geographic Coordinate Systems
8
Paths
8.1
Introduction
8.2
The 'path' element
8.3
Path data
8.3.1
General information about path data
8.3.2
The "moveto" commands
8.3.3
The "closepath" command
8.3.4
The "lineto" commands
8.3.5
The curve commands
8.3.6
The cubic Bézier curve commands
8.3.7
The quadratic Bézier curve commands
8.3.8
The grammar for path data
8.4
Distance along a path
9
Basic Shapes
9.1
Introduction
9.2
The 'rect' element
9.3
The 'circle' element
9.4
The 'ellipse' element
9.5
The 'line' element
9.6
The 'polyline' element
9.7
The 'polygon' element
9.7.1
The grammar for points specifications in 'polyline' and 'polygon' elements
9.8
Shape Module
10
Text
10.1
Introduction
10.2
Characters and their corresponding glyphs
10.3
Fonts, font tables and baselines
10.4
The 'text' element
10.5
The 'tspan' element
10.6
Text layout
10.6.1
Text layout introduction
10.6.2
Relationship with bidirectionality
10.7
Text rendering order
10.8
Alignment properties
10.8.1
Text alignment properties
10.9
Font selection properties
10.10
White space handling
10.11
Text in an area
10.11.1
Intoduction to text in an area
10.11.2
The 'textArea' element
10.11.3
The 'tBreak' element
10.11.4
The 'line-increment' property
10.11.5
The 'display-align' property
10.11.6
Text in an area layout rules
10.12
Editable Text Fields
10.12.1
The editable attribute
10.13
Text selection and clipboard operations
10.14
Text Module
11
Painting: Filling, Stroking, Colors and Paint Servers
11.1
Introduction
11.2
Specifying paint
11.3
Fill Properties
11.4
Stroke Properties
11.5
Non-Scaling Stroke
11.6
Simple alpha compositing
11.7
The 'viewport-fill' Property
11.8
The 'viewport-fill-opacity' Property
11.9
The 'overflow' Property
11.10
Controlling visibility
11.11
Rendering hints
11.11.1
The 'color-rendering' property
11.11.2
The 'shape-rendering' property
11.11.3
The 'text-rendering' property
11.11.4
The 'image-rendering' property
11.12
Inheritance of painting properties
11.13
Object and group opacity: the 'opacity' property
11.14
Color
11.14.1
The solidColor Element
11.14.2
The 'color' property
11.15
Paint Servers
11.16
Gradients
11.16.1
Linear gradients
11.16.2
Radial gradients
11.16.3
Gradient stops
11.17
Paint Attribute Module
11.18
Opacity Attribute Module
11.19
Graphics Attribute Module
11.20
Gradient Module
11.21
Solid Color Module
12
Multimedia
12.1
Media elements
12.2
The 'audio' element
12.3
The 'video' element
12.3.1
Restricting the transformation of the 'video' element
12.3.2
Restricting compositing of the 'video' element
12.3.3
Example
12.4
The 'animation' element
12.5
The audio-level property
12.6
Attributes for run-time synchronization
12.7
Audio Module
12.8
Video Module
12.9
Animation Module
13
Interactivity
13.1
Introduction
13.2
Complete list of supported events
13.3
User interface events
13.4
Pointer events
13.5
Processing order for user interface events
13.6
The 'pointer-events' property
13.7
Magnification and panning
13.8
Element focus
13.8.1
The focusable attribute
13.9
Navigation
13.9.1
Navigation behavior
13.9.2
Specifying navigation
13.9.3
Obtaining and listening to focus programmatically
14
Linking
14.1
References
14.1.1
Overview
14.1.2
IRIs and URIs
14.1.3
IRI reference attributes
14.1.4
Externally referenced documents
14.2
Links out of SVG content: the 'a' element
14.3
Linking into SVG content: IRI fragments and SVG views
14.3.1
Introduction: IRI fragments and SVG views
14.3.2
SVG fragment identifiers
14.4
Hyperlinking Module
14.5
XLink Attribute Module
15
Scripting
15.1
Specifying the scripting language
15.1.1
Specifying the default scripting language
15.1.2
Local declaration of a scripting language
15.2
The 'script' element
15.3
XML Events
15.4
The handler element
15.4.1
Parameters to handler elements
15.5
Event handling
15.6
Script Module
15.7
Handler Module
16
Animation
16.1
Introduction
16.2
Animation elements
16.2.1
Overview
16.2.2
Relationship to SMIL Animation
16.2.3
Animation elements example
16.2.4
Attributes to identify the target element for an animation
16.2.5
Attributes to identify the target attribute or property for an animation
16.2.6
Attributes to control the timing of the animation
16.2.7
Attributes that define animation values over time
16.2.8
Attributes that control whether animations are additive
16.2.9
Inheritance
16.2.10
The 'animate' element
16.2.11
The 'set' element
16.2.12
The 'animateMotion' element
16.2.13
The 'mpath' element
16.2.14
The 'animateColor' element
16.2.15
The 'animateTransform' element
16.2.16
Attributes and properties that can be animated
16.3
Animation using the SVG DOM
16.4
Timed Animation Module
17
Fonts
17.1
Introduction
17.1.1
Describing fonts available to SVG
17.1.2
Defining fonts in SVG
17.2
Overview of SVG fonts
17.3
The 'font' element
17.4
The 'glyph' element
17.5
The 'missing-glyph' element
17.6
Glyph selection rules
17.7
The 'hkern' element
17.8
Describing a font
17.8.1
Overview of font descriptions
17.8.2
The 'font-face' element
17.8.3
The 'font-face-src' element
17.8.4
The 'font-face-uri' element
17.8.5
The 'font-face-name' element
17.9
Font Module
18
Metadata
18.1
Introduction
18.2
The 'metadata' element
18.3
An example
19
Extensibility
19.1
Foreign namespaces and private data
19.2
Embedding foreign object types
19.3
The 'foreignObject' element
19.4
An example
19.5
Extensibility Module
Appendix A
The SVG Micro DOM (uDOM)
A.1
Introduction
A.2
Overview of the SVG uDOM
A.2.1
Document Access
A.2.2
Tree Navigation
A.2.3
Element Creation
A.2.4
Element Addition
A.2.5
Element Removal
A.2.6
Attribute and Property Access
A.2.7
Text Node Access
A.2.8
Event Listener Registration and Removal
A.2.9
Animation
A.2.10
Package naming
A.3
Module: dom
A.3.1
DOMException
A.3.2
Node
A.3.3
Element
A.3.4
Document
A.4
Module: events
A.4.1
EventTarget
A.4.2
EventListener
A.4.3
Event
A.4.4
OriginalEvent
A.4.5
MouseEvent
A.4.6
TextEvent
A.4.7
KeyboardEvent
A.4.8
ConnectionEvent
A.4.9
TimeEvent
A.4.10
WheelEvent
A.4.11
ProgressEvent
A.5
Module: smil
A.5.1
ElementTimeControl
A.6
Module: global
A.6.1
Global
A.6.2
Connection
A.7
Module: svg
A.7.1
SVGException
A.7.2
SVGDocument
A.7.3
SVGElementInstance
A.7.4
SVGSVGElement
A.7.5
SVGRGBColor
A.7.6
SVGRect
A.7.7
SVGPoint
A.7.8
SVGPath
A.7.9
SVGMatrix
A.7.10
SVGLocatable
A.7.11
SVGLocatableElement
A.7.12
TraitAccess
A.7.13
ElementTraversal
A.7.14
SVGElement
A.7.15
Traits supported in this specification, SVG Tiny 1.2 uDOM
A.7.16
SVGAnimationElement
A.7.17
SVGVisualMediaElement
A.7.18
EventListenerInitializer2
A.7.19
SVGGlobal
Appendix B
IDL Definitions
Appendix C
Implementation Requirements
C.1
Introduction
C.2
Unsupported elements, attributes, properties, attribute values and property values
C.3
Error processing
C.3.1
Example
C.4
Namespace, version, baseProfile, requiredFeatures and requiredExtensions
C.5
Clamping values which are restricted to a particular range
C.6
'path' element implementation notes
C.7
Text selection implementation notes
C.8
Printing implementation notes
Appendix D
Conformance Criteria
D.1
Introduction
D.2
Terminology
D.3
SVG Content Conformance
D.3.1
Conforming SVG Document Fragments
D.3.2
Conforming SVG Stand-Alone Documents
D.3.3
Conforming SVG Included Document Fragments
D.4
SVG Writer Conformance
D.4.1
Conforming SVG Generators
D.4.2
Conforming SVG Authoring Tools
D.4.3
Conforming SVG Servers
D.5
Conforming SVG Readers
D.5.1
Conforming SVG Interpreters
D.5.2
Conforming SVG Viewers
Appendix E
Conformance to WQ Framework Specification Guidelines
E.1
Introduction
E.2
Checklist table
Appendix F
Accessibility Support
F.1
WAI Accessibility Guidelines
F.2
SVG Content Accessibility Guidelines
F.3
SVG User Agent Accessibility Guidelines
Appendix G
Internationalization Support
G.1
Introduction
G.2
Internationalization and SVG
G.3
SVG Internationalization Guidelines
Appendix H
Minimizing SVG File Sizes
Appendix I
Feature strings
Appendix J
Elements Table
Appendix K
Attributes and Properties Tables
K.1
Properties Table
K.2
Attributes Table
Appendix L
Media Type registration for image/svg+xml
L.1
Introduction
L.2
Registration of Media Type image/svg+xml
Appendix M
RelaxNG Schema for SVG Tiny 1.2
Appendix N
References
N.1
Normative references
N.2
Informative references
Appendix O
Change History
O.1
General Changes
O.2
Coordinate Systems, Transformations and Units (coords.html)
O.3
Linking (linking.html)
O.4
Animation (animate.html)
O.5
Document Structure (struct.html)
O.6
Text (text.html)
O.7
MultiMedia (multimedia.html)
O.8
Interactivity (interact.html)
O.9
Painting: Filling, Stroking, Colors and Paint Servers (painting.html)
O.10
Scripting (script.html)
O.11
uDOM (svgudom.html)
O.12
Implementation Requirements (implnote.html)