The HTML+SMIL profile integrates a subset of the SMIL Boston specification with HTML. It includes the SMIL Boston modules supporting animation, content control, linking, media objects, timing an synchronization, and transition effects. The SMIL Boston features are integrated directly with HTML and CSS, and can be used to manipulate HTML and CSS features. It is designed for Web clients that support HTML+SMIL markup.
The document type definition or Schema is implemented using SMIL modules as defined in "Modularization of SMIL" [SMIL-MOD].
This section is informative.
This profile describes the SMIL modules that are included, and details the integration issues. The language integration includes the complete set of XHTML 1.1 modules. @@ We really need aspects of XHTML 2.0, but that is not very far along yet).
Throughout the document, where reference is made to "HTML" functionality and elements, this should be understood to refer to XHTML modules and elements.
Some notes on why we are doing this.
This section explains why certain modules of SMIL Boston are not included. The general philosophy is to use XHTML modules where appropriate.
The SMIL Boston layout module is not included, as HTML and CSS provide layout functionality. Authors are already familiar with the HTML/ CSS layout model, and it provides the tools authors need.
The SMIL Boston structure module is not included, as the HTML document is defined to be the host language, and so provides the equivalent elements and semantics.
The SMIL Boston meta information module is not included, as XHTML provides the equivalent elements and semantics.
This section is normative.
A conforming HTML+SMIL document is a document that requires only the facilities described as mandatory in this specification. Such a document must meet all of the following criteria:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML+SMIL //EN" "htmlplussmil.dtd">
The user agent must conform to the "User Agent Conformance" section of the XHTML specification ([XHTML10], section 3.2).
The user agent must conform to the following user agent rules :
@other requirements?
The HTML functionality in the HTML+SMIL document type is based upon XHTML 1.1 modules and associated document type. The XHTML 1.1 document type is made up of the following abstract modules, as defined in XHTMLMOD [XMOD], and the Ruby Annotation module as defined in [RUBY]. The formal definition of the modules is not repeated here, but only the extensions introduced with timing. The notation, terms and document conventions used here are borrowed from [XMOD].
(*) = This module is a required [XHTMLFamily] module.
@@We will also include the new Events module [XHTMLEvents] as it is completed.
In addition, the HTML+SMIL document type supports the timeline-centric multimedia features defined by SMIL Boston. The profile includes the following SMIL Boston modules:
The Animation Module provides a framework for incorporating animation onto
a timeline (a timing model) and a mechanism for composing the effects of
multiple animations (a composition model). The Animation Module defines semantics
for the animate, set,
animateMotion, and
animateColor elements:
Elements | Attributes | Minimal Content Model |
---|---|---|
animate | Common, Timing, attributeName, attributeType, additive, accumulate, calcMode, values, keyTimes, keySplines, from, to, by | EMPTY |
set | Common, Timing, attributeName, attributeType, to | EMPTY |
animateMotion | Common, Timing, additive, accumulate, calcMode, values, keyTimes, keySplines, from, to, by, path, origin | EMPTY |
animateColor | Common, Timing, attributeName, attributeType, additive, accumulate, calcMode, values, keyTimes, keySplines, from, to, by | EMPTY |
This module adds the animate, set, animateMotion, and animateColor elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It adds the animate, set, and animateColor elements to the content model of the elements of the Basic Text, Hypertext, List, Applet, Presentation, Edit, Tables, Image, Client-side Image Map, Server-side Image Map, Object and Legacy modules. It adds the animateMotionelement to the content model of the elements of the Basic Text and Image modules (and possibly a few others - need to nail this down).
This module defines the following content sets:
See also the Integration requirements from the SMIL Boston Animation module.
The Content Control Module provides a framework for selecting content based on a set of test attributes. The Content Control Module defines semantics for the switch element.
Elements | Attributes | Minimal Content Model |
---|---|---|
switch | Common, Timing | Flow |
This module adds the switch element to the Flow content set of the Basic Text module. It also adds the Test attributes set to the elements in the Flow content set of the Basic Text Module (as modified by all included modules).
The Content Control Module defines the Attribute set "Test".
Collection Name | Attributes in Collection |
---|---|
Test | systemBitrate (Number), systemCaption (on|off), systemLanguage (CDATA), systemOverdubOrCaption (caption|overdub), systemRequired (URI), systemScreenSize (CDATA), systemScreenDepth (CDATA), systemOverdubOrSubtitle (overdub|subtitle), systemAudioDesc (on|off), systemComponent (CDATA), |
The SMIL Boston linking module is isomorphic to functionality defined in the XHTML modules. However, it adds some additional attributes and semantics to the a and area elements in XHTML. Rather than describing the elements that are added, the additional functionality defined on the HTML elements a and area is described.
Elements | Attributes | Minimal Content Model |
---|---|---|
a& | sourceVolume, destinationVolume, sourcePlaystate, destinationPlaystate, actuate, show, Test, Timing | n/a |
area& | sourceVolume, destinationVolume, sourcePlaystate, destinationPlaystate, actuate, show, Test, Timing | n/a |
This module adds the area element to the content model for the elements in the Media module.
The Media Object Module provides a framework for declaring media. The Media Object Module defines semantics for the ref, animation, audio, img, video, text, and textstream elements. XHTML defines an img element, and so the integration of the Media module extends the semantics and content model of this element.
Elements | Attributes | Minimal Content Model |
---|---|---|
ref | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
animation | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
audio | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
img& | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
video | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
text | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
textstream | Common, Test, Timing, timeContainer | AllAnimation, TimeContainers, area, param |
This module adds the ref, animation, audio, img, video, text, and textstream elements to the content model of the par, seq, and excl elements of the Timing and Synchronization Module. It also adds these elements to the Inline content set of the Basic Text Module.
The Timing and Synchronization Module provides a framework for describing timing structure, timing control properties, and temporal relationships between elements.
In addition to the data types defined by XHTML Modularization, The HTML+SMIL profile defines the TimeActions data type and its semantics, described in the following table:
Data type | Description |
---|---|
TimeActions | Authors may use the following recognized time actions, listed here with
their interpretations.
|
--------------------------
The Timing and Synchronization Module defines the Attribute sets "Timing" and "RuntimeSync".
Collection Name | Attributes in Collection |
---|---|
Timing | begin (CDATA), dur (CDATA), repeatCount (CDATA), repeatDur (CDATA), end (CDATA), fill (CDATA), restart (CDATA), timeAction (TimeActions), onBegin (Script), onEnd (Script), onRepeat (Script) |
RuntimeSync | syncBehavior (locked|canSlip), syncTolerance (CDATA), syncMaster (true|false), |
The Timing and Synchronization Module adds the Timing and RuntimeSync attribute set to the elements in the Media Module, and adds the Timing attribute set to the Flow content set of the Basic Text Module (as modified by all included modules).
The Timing and Synchronization Module defines the elements
par, seq, and
excl.
Elements | Attributes | Minimal Content Model |
---|---|---|
par | Common, Test, Timing, RuntimeSync, timeAction (CDATA) | par, seq, excl, Flow |
seq | Common, Test, Timing, RuntimeSync, timeAction (CDATA) | par, seq, excl, Flow |
excl | Common, Test, Timing, RuntimeSync, timeAction (CDATA) | par, seq, excl, Flow |
This module adds the par, seq, and excl elements to the Inline content set of the Basic Text, Hypertext and Tables Modules.
As part of the integration of timing and synchronization functionality with HTML, two additional attributes are defined for many of the HTML elements: timeContainer and timeAction. This module adds the timeContainer attribute to the elements of the Flow content set of the Basic Text Module (as modified by all included modules).
The timeAction attribute defines the behavior that is controlled by the timing
model. The default depends upon the type of element. A special value "none"
is reserved for use with the time container elements and with elements that
have been set to be a time container (using
"timeContainer=
[par,seq,excl]").
The following table presents the default time actions. Those modules and elements that are not included do not have a defined time behavior, and cannot legally support timing attributes, or participate in the time model.
Certain elements have a reasonable notion of intrinsic behavior that can
be controlled over time. This is generally some presentation or behavioral
effect, such as the font style controls of the <b>
and
<strong>
elements, and the click sensitivity of the
<a>
and <area>
elements. One way to
logically model the control of intrinsic behavior is to convert the element
to a <span>
when it is neither active nor frozen, and
to use the original element when it is active or frozen.
Many other elements simply contain content and so default to controlling the "visibility" property for the element. In some cases, an element may have a presentational effect (e.g. the Ruby module elements), but be modeled as a content element. The decision is based upon the usefulness in common authoring scenarios of controlling the presentational behavior in isolation.
For those elements that default to controlling "visibility", setting timeAction to any other value overrides this, and will only control the specified timeAction (and not the visibility). For all other elements, the timeAction will control the default (intrinsic) behavior as well as the indicated timeAction behavior.
In addition, for those elements that default to "visibility", when they are
children of a sequence time container <seq>
or an element
with "timeContainer=seq
", the default timeAction is "display".
This more closely matches the expected behavior of the SMIL Language profile.
Module | Elements | Default time action |
---|---|---|
Structure | body | "none" |
Media | (all) | schedule and render |
Timing | (all) | "none" |
Text | em | intrinsic effect |
Text | kbd | intrinsic effect |
Text | strong | intrinsic effect |
Text | var | intrinsic effect |
Text | (all others) | "visibility" |
Hypertext | a | link sensitivity |
Lists | (all) | "visibility" |
Applet | applet | "visibility" |
Presentational | (all) | intrinsic effect |
Edit | (all) | intrinsic effect |
Forms | (all) | "visibility" |
Tables | (all) | "visibility" |
Image Map | area | link sensitivity |
Object | object | "visibility" |
Iframe | iframe | "visibility" |
Ruby | (all) | "visibility" |
Legacy | (all) | intrinsic effect |
All modules not listed in the table, and all Structure module elements except body do not support timing.
The Transition Effects Module defines a taxonomy of transition effects as
well as semantics and syntax for integrating these effects into XML
documents
Elements | Attributes | Minimal Content Model |
---|---|---|
TBD | TBD | TBD |
This module is used, it adds the TBD element to the content model of the layout element of the Layout Module.
This section is normative.
TBD.