previous   next   contents  

21. SMIL 3.0 DAISY Profile

Editors
Marisa DeMeglio, DAISY
Julien Quint, DAISY
Daniel Weck, NRCD
Hiroshi Kawamura, NRCD

Table of contents

21.1 Open Issues

This section is informative.

Request to move these attributes from LinkingAttrs to BasicLinking:

In timing, should markers be excluded from the allowed time values? Their functionality may not be required.

In basic linking, timing on elements a and area is not required.

New modules SMILtext and state should be included.

The DAISY profile does not yet define param element name values for passing rendering instructions to specialized renderers, such as TTS speed and voice.

Clarify the content model in equivalency:

Check this xpointer syntax.

Add an example of "skippable structures" to the content control section

Add an example of escaping structures to the end attribute description

Add a full example of a DAISY book

21.2 Abstract

This section is informative

DAISY digital talking books are fully accessible for persons with print disabilities, including blindness, low-vision, and dyslexia. DAISY is the recognized international standard for digital talking books and has been adopted worldwide by organizations such as libraries for the visually-impaired.

With the release of SMIL 3.0, the pre-existing DAISY standard has gotten the opportunity to move into the mainstream of multimedia development. Several accessibility features have been added to the SMIL language, and a fully-conforming language profile has been defined for DAISY books.

21.3 DAISY Profile

This section is informative

A DAISY profile is required because one does not currently exist, although SMIL has always been an integral part of the DAISY standard, and also because none of the existing profiles fit the needs of DAISY. The full SMIL language profile is too large to be considered practical, while SMIL Basic lacks the media clipping and custom test attributes modules. The mobile profiles of SMIL 2.1 also do not incorporate the custom test attributes module, and include modules not required by DAISY, such as multi-arc timing and transitions. Therefore, a new SMIL profile is required to represent DAISY book presentations.

21.4 Normative Definition of the DAISY Profile

This section is normative

21.4.1 Document Conformance

This version of SMIL provides a definition of strictly conforming DAISY digital talking book documents, which are restricted to tags and attributes from the SMIL 3.0 namespace. In the future, the language described in this profile may be extended by other W3C Recommendations, or by private extensions. For these extensions, the following rules must be obeyed:

Conformant DAISY Profile user agents are expected to handle documents containing extensions that obey these two rules.

21.4.2 DAISY Profile Conformance

The DAISY Profile is a conforming SMIL specification. The rules for defining conformant documents are provided in the SMIL Language Conformance in the SMIL Language Profile document. Note that while the referenced section is written for the SMIL Language Profile, all of the rules apply to the DAISY Profile as well, with the exception that the DAISY Profile's namespace should be used instead of the SMIL Language Profile's namespace.

DAISY Profile Namespace

Documents written for the DAISY Profile must declare a default namespace for its elements with an xmlns attribute on the smil root element with its identifier URI:

<smil xmlns="http://www.w3.org/2006/SMIL30/DAISY">
   ...
</smil>  

The default namespace declaration must be

xmlns="http://www.w3.org/2006/SMIL30/DAISY"

Language designers and implementors wishing to extend the DAISY Profile must consider the implications of the use of namespace extension syntax. Please consult the section on Scalable Profiles for restrictions and recommendations for best practice when extending SMIL.

DAISY Profile DOCTYPE declaration

A SMIL 3.0 document can contain the following DOCTYPE declaration:

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 3.0//EN"
                      "http://www.w3.org/2006/SMIL30/SMIL30.dtd">

The SMIL DAISY Profile DOCTYPE is:

<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL DAISY//EN"
"http://www.w3.org/2006/SMIL30/SMILDAISY.dtd">

If a document contains this declaration, it must be a valid XML document.
Note that this implies that extensions to the syntax defined in the DTD are not allowed. If the document is invalid, the user agent should issue an error.

Conforming SMIL DAISY Profile User Agents

Since the DAISY Profile defines a conforming SMIL document, the rules for defining conformant user agents are the same as provided in the Conforming SMIL Language User Agents in the SMIL Language Profile document, with the exception that the conforming user agent must support the DAISY Profile namespace instead of the SMIL Language Profile namespace.

21.4.3 The DAISY Profile

The DAISY Profile includes the following SMIL modules:

The collection names contained in the following table define the DAISY Profile vocabulary.

DAISY Profile
Collection Name Elements in Collection
ContentControl switch, customTest, customAttributes
Layout region, root-layout, layout
Linking a, area
MediaContent text, img, audio, video, ref, animation, textstream, param, paramGroup
Metainformation meta,
Structure smil, head, body
Schedule par, seq, excl

In the following sections, we define the set of elements and attributes used in each of the modules included in the DAISY Profile. The content model for each element is described. The content model of an element is a description of elements which can appear as its direct children. The special content model "EMPTY" means that a given element may not have children.

Collection Name Attributes in Collection
Core id (ID), class (NMTOKEN), title (CDATA), alt (CDATA), longdesc (CDATA), xml:base (CDATA)
I18n xml:lang (NMTOKEN)

The id, class and title attributes in the collection Core are defined for all the elements of the DAISY Profile. The id attribute is used in the DAISY Profile to assign a unique XML identifier to every element in a SMIL document. In this document, equivalent but deprecated attributes and elements are shown in square brackets.

21.4.4 Structure Module

Structure Module
Elements Attributes Content model
smil Core, I18n, Test, xmlns (head?,body?)
head Core, I18n (meta*,(,meta*)?,(paramGroup+,meta*)?)
body Core, I18n (Schedule | Media | ContentControl | a )*

21.4.5 Metainformation Module

Metainformation Module
Elements Attributes Content model
meta Core, I18n, skip-content, content (CDATA), name (CDATA) EMPTY
Core, I18n, skip-content EMPTY

This profile adds the meta element to the content model of the head element of the Structure Module.

The content model of metadata is empty. Profiles that extend the DAISY Profile may define the RDF (Resource Description Framework) schema to be used in extending the content model of the metadata element. The Resource Description Framework is defined in the W3C RDF Recommendation [RDFsyntax].

The following name attribute values can be used to specify the relationship between documents:

An example using this to define the static default playback order in a multi-document SMIL presentation:

<–– chapter2.smil ––>
<smil>
	<head>
		<meta name="next" content="chapter3.smil"/>
		<meta name="prev" content="chapter1.smil"/>
		<meta name="contents" content="index.ncx"/>
		...
	</head>
	<body>
		...
	</body>
</smil>

Metainformation can also be used to note that parallel media objects represent the same information. This distinction is required when sending data from a complex layout to a single-modality device. For example, a Braille display user wants to navigate around a news report TV show, and so they need to have the choice of which text stream to pick up (the scrolling text or the main report or the commercials or...). In such a presentation, many things are in parallel, but only some are equivalent. For example:

<par>
	<–– says that main-report goes with report-captions ––>
    <meta name="equiv" content="main-report report-captions"/>
    <–– the video for the main report ––>
    <video id="main-report" ...>
      <meta name="equiv-role" content="video"/>
    </video>
    <–– a commerical going on in the corner ––>
    <animation id="commercial-animation" ... />
    <text id="commercial-text">buy this thing now!</text>
    <–– the text captions for the report ––>
    <seq id="report-captions">
      <meta name="equiv-role" content="captions"/>
      <text .../>
      <text .../>
      <text .../>
      ...
    </seq>
    <–– another simultaneous text element on the screen: a news ticker  ––>
    <seq id="news-ticker" .../>
      <text .../>
      <text .../>
      <text .../>
      ...
	</seq>
</par> 

21.4.6 Timing Modules

Timing and Synchronization Module
Elements Attributes Content model
par Core, I18n, Timing, Test, endsync, label (Schedule | MediaContent | ContentControl | a)*
seq Core, I18n, Timing, Test, fill (freeze | remove | hold | auto | default), label (Schedule | MediaContent | ContentControl | a) *
excl Core, I18n, Timing, Test, label ((Schedule | MediaContent | ContentControl | a)*

The Attribute collection Timing is defined as follows:

Collection Name Attributes in Collection
Timing begin, dur, end, repeat, repeatCount, repeatDur, min, max

Special values for the end attribute

This profile defines the following values for the end attribute, in addition to what is given by SMIL.

21.4.7 Content Control Modules

Content Control Module
Elements Attributes Content model
switch Core, I18n, Test, label ((Schedule | MediaContent | ContentControl | Linking)*)
customTest defaultState, override, uid, label EMPTY
customAttributes EMPTY

This profile adds the switch element to the content model of the par, seq and excl elements of the Timing and Synchronization Modules, of the body and the head elements of the Structure Module, of the content model of the a element of the Linking Modules.

Content Control functionality is used to define the attribute set "Test":

Collection Name Attributes in Collection
Test systemBitrate [system-bitrate], systemCaptions [system-captions], systemLanguage [system-language], system-overdub-or-caption, systemRequired [system-required], systemScreenSize [system-screen-size],systemScreenDepth [system-screen-depth], systemOverdubOrSubtitle, systemAudioDesc, systemOperatingSystem, systemCPU, systemComponent

In DAISY books, publication components such as page numbers and footnotes can be turned on or off. These playback options are implemented using custom tests [see Skippable Structures]

DAISY is meant to be able to incorporate content written in other standards (such as Math ML); however, not all user agents will support these extensions. In these cases, fallbacks specified using content control structures can give alternatives to user agents.

21.4.8 Basic Layout Module

Layout Module
Elements Attributes Content model
region Core, I18n, Test, backgroundColor, bottom, fit (fill | hidden | meet | meetBest | scroll | slice), height, left, regionName, right, showBackground (always | whenActive), skip-content, top, width, z-index region*
root-layout Core, I18n, Test, backgroundColor , width, height, skip-content EMPTY
layout Core, type (root-layout | region )*

21.4.9 BasicLinking Module

Linking Module
Elements Attributes Content model
a Core, I18n, Timing, Test, href, accesskey, alt (Schedule | MediaContent | ContentControl )*
area Core, I18n, Timing, Test, shape, coords, href, nohref, accesskey, skip-content, alt

21.4.10 Media Modules

Media Object Module
Elements Attributes Content model
text, img, audio, video, ref, textstream Core, I18n, Timing, Test, region, fill (freeze | remove | hold | transition | auto | default), src, type, paramGroup, clipBegin, clipEnd (param | area )*
param Core, I18n, Test, name, value, valuetype (data | ref | object), type, skip-content EMPTY
paramGroup Core, I18n, Test, skip-content (param)*

Text media with its source in an external file may refer to it by putting a URI in the src attribute. Some examples are:

An example of referring to a text fragment in an external file by specifiying the fragment's id value:

<par>
	<text src="text.xml#id"/>
	<audio src="audio.mp3"/>
</par>

An example of referring to a document fragment (for example, the second paragraph) by using XPointer:

<par>
	<text src="text.xml#xpointer(/body/p[2])"/>
	<audio src="audio.mp3"/>
</par>

Using param

The param element conveys rendering instructions about a media type.

The DAISY profile defines the following name values as rendering instructions for text media:

param element name attribute values
name value description
daisy:use–renderer braille Send the media data to a Braille display
daisy:use–renderer tts Send the media data to a text-to-speech engine
daisy:display–in–context true Display the fragment along with its parent document in the text region.
daisy:display–in–context false Display only the text within the fragment, if specified, within the text region.
daisy:css–highlight–style a simple CSS style To give the effect of a highlight on the text fragment, CSS style can be used.

In the latter case (daisy:display–in–context=true), an intelligent renderer will make sure that the portion of the parent document containing the specified fragment will be put in view so the fragment can be seen. It is left to the renderer to decide how much of the surrounding document context to include (lines above and below the target fragment).

Examples:

The parameters below specify that this text element should be displayed in the context of its parent document, and that it should be highlighted with the given style attributes when it is active.

<smil>
	...
  <body>
  			...
  			<par>
				<text src="example.html#p2" region="centerTextRegion" >
					<param name="daisy:display–in–context" value="true" />
					<param name="daisy:css–highlight–style" value="background–color: yellow; color: black; border: solid thin green"/>
				</text>
			</par>
			...
  </body>
</smil>

To reduce verbosity, the param elements can be put in a paramGroup, and the paramGroup can be referenced from the region. Example:

<smil>
	<head>
		<paramGroup id="textParams">
  			<param name="daisy:display–in–context" value="true" />
			<param name="daisy:css–highlight–style" value="background–color: yellow; color: black; border: solid thin green"/>
		</paramGroup>
		<region id="textWindow" width="100%" height="100%" paramGroup="textParams"/>
		...
	</head>
	<body>
		...
		<par>
			<text src="my_text.txt" region="textWindow"/>
			<audio src="audio.mp3" clipBegin="0.00s" clipEnd="3.00s"/>
		</par>
		...
	</body>
</smil>

Using custom test

This example shows how to use content control and param together to target specialized text renderers:

<smil>
  <head>
    <customAttributes>
      <customTest id="braille-available" title="Braille hardware display is available" defaultState="false" uid="http://my.example.org/braille-available"/>
    </customAttributes>
    ...
  </head>
  <body>
  	<seq>
  		<par>
  			<–– This is the Braille rendering equivalent of the text contents.  A Braille display is required to show it. ––>
			<text src="special-notation-for-braille.xml#p4" dur="indefinite" customTest="braille-available">
				<param name="daisy:use-renderer" value="braille"/>
			</text>
			<–– This is the default visual rendering of the text contents.––>
			<text src="my_text.xml#p4"/>
			<audio src="audio.mp3" clipBegin="0.00s" clipEnd="3.00s"/>
  		</par>
  		...
  	</seq>
  </body>
</smil>

21.4.11 Playback Guidelines

This section is informative

See UAAG checkpoint 2.4 about overriding author-defined timing. This is especially important when a user is reading at a different speed than the default, perhaps via TTS or Braille.

21.4.12 Use case of a deaf-blind user

This section is informative

Deaf-blind readers who use Braille output will use the text contents actively, not passively. Output from electronic refreshable Braille displays happens line-by-line. This means that the user needs to be in control of the reading speed and order. Modifications to the standard speed and sequence will include speed adjustment, reverse, still/pause, and advancement to the next line.

21.5 Appendix A: SMIL DTD

This section is normative.

The DAISY Profile Document Type Definition is defined as a set of SMIL 3.0 modules. All SMIL 3.0 modules are integrated according to the guidelines in the W3C Note "Synchronized Multimedia Modules based upon SMIL 1.0" [SMIL-MOD], and defined within their respective module sections.


previous   next   contents