previous   next   contents  

15. HTML+SMIL Language Profile

Editor:
Patrick Schmitz (pschmitz@microsoft.com), Microsoft


15.1 Abstract

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


Table of contents

15.2 Introduction

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.

15.2.1 Motivation and applications

Some notes on why we are doing this.

15.2.2 Design Rationale

This section explains why certain modules of SMIL Boston are not included. The general philosophy is to use XHTML modules where appropriate.

Layout

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. 

Structure

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. 

Meta information

The SMIL Boston meta information module is not included, as XHTML provides the equivalent elements and semantics. 

15.3 Normative Definition of SMIL Boston

This section is normative.

15.3.1 Document Conformance

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:

  1. It must validate against the DTD (in future the Schema) found in Appendix A
  2. The root element of the document must be <html>.
  3. The name of the default namespace on the root element must be the HTML+SMIL namespace name, http://www.w3.org/2000/htmlplussmil (This must still be verified) 
  4. There must be a DOCTYPE declaration in the document prior to the root element. If present, the public identifier included in the DOCTYPE declaration must reference the DTD found in Appendix A using its Formal Public Identifier. The system identifier may be modified appropriately.
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML+SMIL //EN" 
    	  "htmlplussmil.dtd">
    

15.3.2 User Agent Conformance

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?

15.3.3 HTML+SMIL Profile

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

Structure Module*
body, head, html, title
Basic Text Module*
abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
Hypertext Module*
a
List Module*
dl, dt, dd, ol, ul, li
Applet Module
applet, param
Presentation Module
b, big, hr, i, small, sub, sup, tt
Edit Module
del, ins
BDO Module
bdo
Forms Module
form, input, select, option, textarea, button, fieldset, label, legend, optgroup
Tables Module
caption, table, td, th, tr, col, colgroup, tbody, thead, tfoot
Image Module
img
Client-side Image Map Module
area, map, (attribute extensions)
Server-side Image Map Module
(attribute extensions)
Object Module
object, param
Frames Module
frameset, frame, noframes, (attribute extensions)
Iframe Module
iframe
Intrinsic Events Module
(attribute extensions)
Meta Information Module
meta
Scripting Module
noscript, script
Stylesheet Module
style
Link Module
link
Base Module
base
Legacy Module
font, s, strike, u, (attribute extensions)

 (*) = 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:

15.3.4 Animation Module

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:

BaseAnimation
animate | set | animateColor
AllAnimation
BaseAnimation | animateMotion

Additional integration issues with animation

See also the Integration requirements from the SMIL Boston Animation module.

15.3.5 Content Control 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), 

15.3.6 Linking Module

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.

15.3.7 Media Object 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.

15.3.8 Timing and Synchronization 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.
none
Specifies that no action is performed on the element when it is active. This is only legal for time containers, and allows the author to introduce a new time space without affecting the document presentation.
visibility
Specifies that the CSS "visibility" property is to be manipulated over time. When the element is neither active nor frozen, the property is set to "hidden". When it is active, the original value is used. If the original value is "hidden", the time action will have no effect (i.e. the element will remain hidden). See also [CSS2]
display
Specifies that the CSS "display" property is to be manipulated over time. When the element is neither active nor frozen, the property is set to "none". When it is active, the original value is used. If the original value is "none", the time action will have no effect (i.e. the element will remain out of view and layout). See also [CSS2]
style
Specifies that the CSS inline style attribute "style" is to be removed and applied over time. When the element is neither active nor frozen, the inline stylesheet is cleared (so no style modification is made). When it is active, the original value (i.e. the string attribute value specified for the "style" attribute) is used. If there is no inline style attribute on the element, the time action will have no effect. See also [CSS2]
class:classname
Specifies that the name "[classname]" will be removed from and added to the value of the "class" attribute over time. When the element is neither active nor frozen, the specified string (i.e. whatever the author specifies for "classname") is removed from the value of the class attribute (if it was included). When the element is active, the specified string is added to the value of the class attribute. Note that any other values specified in the class attribute are not affected. Note also that the application of any associated style must be specified in a stylesheets for the document. Note finally that the application of styles depends not upon the order of names in the class attribute, but rather on the order of the rules in the stylesheets for the document. See also [CSS2].

--------------------------

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.

Additional integration issues with Timing

15.3.9 Transition Effects Module

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.

15.4 Appendix A: Document Type Definition

This section is normative.

TBD.


previous   next   contents