W3C

WICD Core 1.0

W3C Working Draft 11 August 2006

This version:
http://www.w3.org/TR/2006/WD-WICD-20060811/
Latest version:
http://www.w3.org/TR/WICD/
Previous version:
http://www.w3.org/TR/2005/WD-WICD-20051219/
Editors:
Timur Mehrvarz, Vodafone Group Services Limited
Daniel Appelquist, Vodafone Group Services Limited
Lasse Pajunen, Nokia
Julien Quint, DAISY Consortium

Abstract

This document specifies WICD Core 1.0 , a device independent Compound Document profile based on XHTML, CSS and SVG.

Compound Document is the W3C term for a document that combines multiple formats.

WICD stands for Web Integration Compound Document and is based on the idea of integrating existing markup language formats in preference to inventing new markup.

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 is an updated Working Draft of the WICD Core 1.0, incorporating comments on the 19 December 2005 Last Call Working Draft . The Compound Document Formats Working Group is still in the process of addressing remaining Last Call comments; in the meantime, this document reflects resolved issues and is made available for your review. A diff-marked version is also available to review changes since the last Working Draft. The WG requests comments on this specification. Please send them to public-cdf@w3.org . 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 public-cdf-request@w3.org with the word subscribe in the subject line.

This document has been produced by the Compound Document Formats Working Group as part of the Rich Web Client Activity within the W3C Interaction Domain .

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .

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

1 Introduction
    1.1 Scope of this Specification
    1.2 Related Specifications
    1.3 Relationship to Referenced Specifications
2 Root, Parent and Child Documents
    2.1 Referencing Child Documents
3 Scalable Child Elements
    3.1 Supported Scalable Child Element Formats
        3.1.1 SVG
    3.2 Scalable Child Element Use Cases
        3.2.1 Scalable Foreground Child Elements
            3.2.1.1 Still-Image Rendering
        3.2.2 Scalable Background Image
        3.2.3 Scalable Overlay Objects (Sprites)
    3.3 Scalable Child Element Layout
        3.3.1 Rightsizing
        3.3.2 Leftover Margins
        3.3.3 Transparency
            3.3.3.1 Introduction
            3.3.3.2 Foreground Scalable Child Elements over XHTML Background
            3.3.3.3 Foreground Scalable Child Elements over Background Scalable Child Elements
            3.3.3.4 Foreground Bitmap Image over Animating Background
            3.3.3.5 Foreground Bitmap Image over Non-Animating Background
4 Other Child Element Formats
5 Hyperlinking
6 Focus Support
    6.1 Focusable Child Elements
    6.2 Focus Event triggered Child Element Animations
    6.3 Focus Navigation
        6.3.1 Two Dimensional Focus Navigation (Flat, Graphical, Joystick)
        6.3.2 One Dimensional Focus Navigation (Linear, Focus Ring, Tab)
7 Font Support
    7.1 System Fonts
    7.2 Font Naming
    7.3 Font Sharing
8 Content Packaging, Encoding and Transferring
    8.1 Content Encoding
    8.2 Content Packaging
9 Synchronization Support
    9.1 Temporal Synchronization of Media
    9.2 Timeline Initialization
        9.2.1 Interaction with the 'render' param
    9.3 Play Animations while Document is loading
10 Events
    10.1 XHTML Event Attributes
    10.2 Attaching Events to WICD Documents
11 Intended Layout
    11.1 Media Queries
    11.2 Style sheet being provided for specific agent classes
    11.3 No style sheet being provided for handheld agents
    11.4 Switching off mousepointer emulation for handheld content

Appendices

A Definitions
B Conformance
C References
D Authoring Guidelines (Non-Normative)
E Acknowledgements (Non-Normative)
F Changes Log (Non-Normative)


1 Introduction

1.1 Scope of this Specification

(This section is informative)

This document defines a Web Integration Compound Document (WICD) Core , which is based upon the Compound Document by Reference Framework 1.0 (CDRF) and serves as a foundation for the creation of rich multimedia content profiles and describes rules for combining Extensible Hypertext Markup Language (XHTML), Cascading Style Sheets (CSS), and Scalable Child Element formats, such as Scalable Vector Graphics (SVG) in a non device specific manner.

Profiles based on WICD Core support presentation of rich multimedia content as having the following characteristics:

  • Graphically rich content, possibly including animated background image.

  • Content author/provider has exact control of the presentation, including fonts, layout, color, etc.

  • Layout adaptation: layout can be based upon device characteristics - screen size, color depth, resolution, orientation.

  • Navigation (forward/backwards tab, up/down/left/right, accesskey, pointer, voice), graphical menus, interactivity and animations.

  • Graphical menu systems where items have an animated action when focused on.

  • Portable user interface.

  • Presentation can be customized to reflect a brand or user's personality and needs.

  • Skinnable user interface: the ability to use animations and interactivity as a user interface "skin" or template around other content.

  • Rich content for different contexts.

  • Dynamic content: documents that are generated on the fly or which change over time

  • Interaction with mixed content, for example interacting with all the parts (graphics, text, images, audio, video, voice and multimodal interaction) of the mixed document.

  • Content adaptation, such as when a portal delivers a mixed document with varying capabilities (textual content and interactive animated content, for example) to a user which has been aggregated from multiple rich content sources.

Many of the requirements herein are related to this definition. XHTML and SVG have been chosen according to analysis of existing specifications and their applicability to rich multimedia content.

1.2 Related Specifications

(This section is informative)

The image below shows the relation between WICD and CDRF documents.

Shows the relation of WICD and CDRF documents
CDR - Compound Document by Reference Framework

CDR describes generic rules and behavior for combining sets of standalone XML formats.

NOTE: The Compound Document Framework is language-independent. While it is clearly meant to serve as the basis for integrating W3C's family of XML formats within its Interaction Domain (e.g., CSS, MathML, SMIL, SVG, VoiceXML, XForms, XHTML, XSL) with each other, it can also be used to integrate non-W3C formats with W3C formats or integrate non-W3C formats with other non-W3C formats.

WICD Mobile 1.0

The WICD Mobile 1.0 profile is designed to enable rich multimedia content on mobile handset devices. It may also be appropriate for other handheld devices. However, WICD Mobile addresses the special requirements of mass market, one-hand operation devices and enables publishers to target these type of devices without having to evaluate user agent identification string. In this profile, child documents are embedded by reference (CDR = Compound Document by Reference).

WICD Mobile 1.0 builds upon WICD Core 1.0 .

WICD Full 1.0

The WICD Full 1.0 profile is designed to enable rich multimedia content on desktop-type agents. It may also be appropriate for high capability handheld devices with a pointing device. In this profile, child documents are embedded by reference (CDR).

WICD Full 1.0 builds upon WICD Core 1.0 .

1.3 Relationship to Referenced Specifications

This document may contain clarifications, refinements, or specific implementation examples of content specified in referenced documents. Should there be a conflict with any text in this document and the referenced document, then the referenced document is the normative reference.

2 Root, Parent and Child Documents

A document that references other documents is a parent document. A root document is the topmost parent document. A document is a child document, if it is referenced by other documents. A child document can be a parent document at the same time.

[ assert-root-doc1: Any profile, conforming to WICD Core 1.0 , must support XHTML as root document. ]

Different WICD profiles may support different versions of XHTML. Later versions of WICD Core may define additional root document formats.

2.1 Referencing Child Documents

In XHTML, there are many elements (like object, img, iframe) that are used to reference child documents. In a similar way, child documents can be referenced from CSS declarations.

[ assert-referencing-object: Any profile, conforming to WICD Core 1.0, must support the XHTML <object> element as means to reference Scalable Child Elements. ]

3 Scalable Child Elements

Scalable Child Elements appear as rectangular objects, which in their normal presentation, can always fit the screen or destination box, because they are scalable and usually meant to be looked at as a whole. Scalable Child Elements can be documents (e.g. SVG). They can also be non-documents (have a binary format or be applications).

3.1 Supported Scalable Child Element Formats

[ assert-svg-child: Any profile, conforming to WICD Core 1.0, must support SVG documents as Scalable Child Element format. ]

Later versions of WICD Core may mandate additional formats. Different WICD profiles may support different versions of SVG.

3.1.1 SVG

[ assert-svg-child-object-multiple: Multiple SVG child documents may be referenced from the same XHTML document.]

[ assert-svg-child-object-animating: Multiple SVG child documents may animate in parallel.]

3.2 Scalable Child Element Use Cases

Scalable Child Elements can be referenced from a parent document as foreground objects, as background images or as overlay objects.

[ assert-scalable-usecases: Any Scalable Child Element format must support these three use cases: Scalable Foreground Child Elements, Scalable Background Image and Scalable Overlay Objects (Sprites). ]

3.2.1 Scalable Foreground Child Elements

[ assert-scalable-icon1: Scalable Foreground Child Elements are referenced using the XHTML <object> element. They appear on the main XHTML layer, just like bitmap images. ]

[ assert-scalable-icon2: User agents must support Scalable Foreground Child Elements, which may be animating, interactive and may have embedded links.]

The following example shows how a SVG document is referenced from a XHTML document:

<object data="icon.svg" type="image/svg+xml" width="100%" />

3.2.1.1 Still-Image Rendering

Using a param element with name="render", the document author can specify whether a frozen, static, or dynamic rendering is desired. The terms static and dynamic have the same meaning as in SVG. The term frozen implies a single conversion to a raster image. Dynamic rendering is the default behavior. The value of the param element is case sensitive. Unrecognized param values shall be treated as default values. If more than one render param is provided for an element then only the last one shall be used.

Authors are encouraged to set the render param whenever referencing multiple non-animating child objects. This may allow user agents to implement performance and memory optimizations. For example, the storage space used by an SVG image might be reclaimed after a frozen rendering has been made.

[ assert-still-image1: An <object> element <param> child element with name="render" and value="dynamic" shall result in a dynamic rendering. Links shall be activatable. Animations shall play, if the timeline has started. Modifications made by script shall update the rendering. If the rendering area changes size, the rendering shall update. ]

[ assert-still-image2: An <object> element <param> child element with name="render" and value="static" shall result in a static rendering. Links shall not be activatable. Animations shall not play. Modifications made by script shall not update the rendering. If the rendering area changes size, the rendering shall update. ]

[ assert-still-image3: An <object> element <param> child element with name="render" and value="frozen" shall result in a one-time static rendering to a raster image. Links shall be not be activatable. Animations shall not play. Modifications made by script shall not update the rendering. If the rendering area changes size, the rendering shall not update. ]

[ assert-still-image4: The default value for <param name="render"> is "dynamic". ]

Example:


<object data="icon.svg" type="image/svg+xml" width="100%" > 

  <param name="render" value="static" />
<object>

[ assert-still-image-svg1: For SVG child objects, the document time used for rendering a frozen or static image shall be that given by the SVG 'snapshotTime' attribute. If no 'snapshotTime' is present in the animation, a document time of zero (0) must be used. Other Scalable Child Element formats may use a similar mechanism. Scalable Child Elements lacking such capability should use a time of zero (0) for still-image rendering. ]

3.2.2 Scalable Background Image

[ assert-scalable-background-image1: User agents must support Scalable Child Elements (e.g. SVG's) to be used as CSS background images. ]

Agents may support animated background images. A Scalable Child Element as background image will not provide support for interaction, such as zooming, panning, linking and user interaction events. Authors should only provide non-animating or non-interactive animating content for use as background image. If supported, a 'snapshotTime' should be authored. Agents that do not support animated background images, may generate a still-image presentation of the provided object. A still-image presentation of an animating object may be generated per description in 3.2.1.1 Still-Image Rendering , by using the "render/static" functionality.

The following example shows how a SVG document is placed on the XHTML background, using the CSS background-image attribute:

Use of background-image:


<html>

  <body style="background-image:url(background.svg);background-attachment:fixed">
    <p>This in foreground</p>  
  </body>
</html>

The following example will set an SVG image background.svg as a fixed, non-repeating (i.e. not tiled) non-scrolling ('pinned') background, using the individual properties:

Pinned background:


body {

  background-color: white;
  background-image: url(background.svg);
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-position: center center }

or using the shorthand :

Pinned background, shorthand:

body { background: white url(background.svg) no-repeat fixed center center }

[ assert-scalable-background-image2: If background.svg has width and height in px, then this is well-defined. If it is the default (width="100%" height="100%") then it will display, as large as will fit, where the background area to cover is seen as a viewport.]

3.2.3 Scalable Overlay Objects (Sprites)

[ assert-overlay-object1: WICD user agents must support content layering using CSS absolute positioning in x, y and z order. This will detach a child element from main XHTML layer and create a new transparent layer. ]

[ assert-overlay-object2: WICD user agents must make all visible and focusable points in the XHTML layer and the positioned Overlay Object reachable and activatable. ]

[ assert-overlay-object3: WICD user agents must support transparency for Overlay Objects. ]

[ assert-overlay-object4: Scalable Overlay Objects referred to from the XHTML page may be put in front of, or behind, the default XHTML layer. ]

[ assert-overlay-object5: Any transparent areas in the Overlay Object and in XHTML root documents must make the layer behind visible. ]

A detailed description of the stacking level for different layers can be found in Appendix E in the [CSS21] specification.

Example:


.svg-sprite

{
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    border: 0px;
}
<body>
  <div>
    <object class="svg-sprite" data="sprite.svg" type="image/svg+xml" />
    <p>Hello 1</p>
    <object data="foo.svg" type="image/svg+xml" width="100" height="50" />
    <p>Hello 2</p>
  </div>
</body>

[ assert-overlay-object-interactive: User agents must support interactivity in overlay elements.]

[ assert-overlay-object-embedded-links: User agents must support overlay images with embedded links.]

3.3 Scalable Child Element Layout

3.3.1 Rightsizing

Scalable Child Elements allows for the creation of screen resolution independent content.

For this purpose, Scalable Child Elements are referenced by using width and/or height attributes with values relative to their destination box (which may be the full available rendering area (canvas) of the user agent or maybe a table cell). In case the Scalable Child Element has it's own fixed aspect ratio, it is enough to provide only one size attribute value (width -or- height) of the object element (through CSS or directly in XHTML), when referencing it.

[CSS21] contains a detailed description of the required Visual formatting model .

[ assert-rightsizing1: If only one size attribute value is provided, a fixed aspect ratio child element will get 'rightsized' proportionally, by being scaled to fit into the destination box. ]

Example:

<object data="icon.svg" type="image/svg+xml" width="100%" />

The following illustration shows how a square, scalable element with a fixed aspect ratio, is being scaled into an available area with a requested width of 100%.

Shows how an SVG diagram is scaled into an available area

The following illustration shows, how two scalable elements with fixed aspect ratio, are being scaled into an available area, both with a requested width of 100%.

Shows how two SVG diagrams are scaled into an available area

When an embedded child document fragment (such as SVG) specifies its horizontal width and omits a height specification, then the actual extent of the image is defined by the content within it. On placing such an image into a user agent, the viewport is usually a window on a 'galley' view of the entire document. In such cases, the element should float to the top of the available galley as no height is specified. This is shown in the illustrations above. Where the aspect ratio rules for the embedded graphic force the width to be less than the user agents window width, the image should be centered horizontally (see 'Leftover Margins' below). If the dominant text layout direction is vertical text, the aforementioned rules should be adapted to the different layout flow direction in the case of 'height' being the only sizing specification.

3.3.2 Leftover Margins

Rendering scalable, but fixed aspect-ratio content into a fixed-sized destination area will often result in leftover margins. In case of SVG child documents: When the viewbox and the resulting viewport do not have the same aspect ratio, and preserveAspectRatio is not set to 'none' (the default being 'xMidyMid') some space is left in between the borders of the viewbox and that of the viewport.

The following illustration shows, how a square, scalable element, with a fixed aspect ratio, is being scaled into an available area (destination box) with a requested width of 100%. Because the viewport has a wider aspect ratio than the child object's viewBox, the viewport and viewBox cannot align exactly. Assuming the SVG content's root 'svg' element has 'preserveAspectRatio' of 'xMidYMid meet' (the default value), the child element's viewport will gain the width and height of the destination box, but the width and height of the resulting viewbox will be equal to the height of the available area.

Leftover margins will appear to the left and right of the child element's viewbox.

Shows how an SVG diagram is scaled into an available area with leftover margins

The following illustration shows, how a square, scalable element, with a fixed aspect ratio, is being scaled into an available area with a requested height of 100%. Because the viewport has a taller aspect ratio than the child object's viewBox, the viewport and viewBox cannot align exactly. Assuming the SVG content's root 'svg' element has 'preserveAspectRatio' of 'xMidYMid meet' (the default value), the child element's viewport will gain the width and height of the destination box, but the width and height of the resulting viewbox will be equal to the width of the available area.

Leftover margins will appear above and below the child element's viewbox.

Shows how an SVG diagram is scaled into an available area with leftover margins

[ assert-leftovers1: The child content must render the entire viewport, including any leftover margins.]

[ assert-leftovers3: In the absence of a background color or image on the element that established the viewport (abbr html:object or svg:svg) it's background is transparent. This is in order to maximize the visual quality of content the parent document should be visible through the leftovers (as well as through the child content itself where it is transparent).]

[ assert-leftovers4: A defined background applies to the entire viewport (including the leftovers) so that content that spills outside of the viewbox into the leftovers is still on the correct background.]

[ assert-leftovers5: Any UI event, such as a mouse click, that hits on the leftover areas, is dispatched in the same manner as UI events over non-leftover areas (i.e., to the child document) ]

3.3.3 Transparency

3.3.3.1 Introduction

(This section is informative)

The rendered results of a WICD document may result in overlap of content originating from different namespaces, for example an SVG graphic on top of some XHTML.

Some user agents may provide monolithic implementations for all namespaces whilst others provide rendering for each namespace in a separate block of executable code. For example, by providing a so-called 'plug-in' interface for each renderer.

In the case where an existing XHTML implementation is to be extended via the addition of a namespace supporting transparency (such as SVG) it is possible to provide a combined output using alpha-compositing by allowing the SVG implementation access to the output of the XHTML rendering. This would assume the XHTML base layer is opaque and the SVG layer on top would be responsible for retrieving the rendered output pixel data from the XHTML renderer and combine it with the SVG to support SVG layering on top of the XHTML. Such an approach removes the need to add any transparency support to an existing XHTML implementation whilst adding support for transparency support when new namespaces are added.

Such an approach to supporting a foreground transparency layer can be easily implemented given access to the result of rendering output of an existing implementation. In order to support such a feature, the XHTML implementation would need to notify a plugin that its rendering is complete.

If animation in the XHTML was supported, then it would also be required to notify the plugin every time a change in the rendered output occured. Such a change would most likely require an off-screen buffer to be used in order to 'double-buffer' so as to avoid flicker.

3.3.3.2 Foreground Scalable Child Elements over XHTML Background

[ assert-transparency1: Given access to the rendered output of an XHTML implementation, foreground Scalable Child Elements over XHTML background using transparency on the foreground element must be supported.]

3.3.3.3 Foreground Scalable Child Elements over Background Scalable Child Elements

Given that transparency information for the output of the background element may be unavailable, foreground Scalable Child Element over background scalable child element requiring transparency on the background and foreground elements may be supported.

3.3.3.4 Foreground Bitmap Image over Animating Background

Given that transparency information for the foreground bitmap may not be available, foreground bitmap image over animating background requiring transparency on the background and foreground elements may be supported.

3.3.3.5 Foreground Bitmap Image over Non-Animating Background

[ assert-transparency2: Given existing implementations require support for transparent PNG images and so forth, foreground bitmap image over non-animating background requiring transparency on the foreground element must be supported.]

4 Other Child Element Formats

[ assert-other-formats1: Any audio or video format supported by the user agent must also be supported to be used with the <audio> and <video> elements in SVG and the <object> element in XHTML. ]

5 Hyperlinking

If it is possible to link from XHTML to Format-X, it should also be possible to link from any other supported format to Format-X.

[ assert-hyperlinking1: WICD compliant agents should support seamless hyperlinking between any of the supported formats. ]

If linking from XHTML to Format-X will invoke content type specific treatment on arrival, then linking from any Scalable Child Element to Format-X should result in the same treatment. (Examples for this are special content handlers for RSS, Java, content download.)

[ assert-hyperlinking2: Any content type supported by the user agent, when linked-to originating from XHTML, should also be supported by linking-to originating from any other supported format. ]

If a WICD compliant agent supports linking from XHTML to URI schemes other than http:// (for examples wtai:// and pcast://), then these URI schemes should also be supported, when linked-to from any other supported format.

[ assert-hyperlinking3: All URI schemes, supported for hyperlinking and the related functionality, should be supported, independent of the content format. ]

6 Focus Support

[ assert-focus1: User agents must provide a way for the end user to navigate to each focusable element within the root document and its descendants. ]

[ assert-focus2: The language specifications that are used with this framework should define what elements are focusable. ]

Note: The current XHTML specifications do not clearly define what elements are focusable. It is common industry practice that all elements which have a 'tabindex' attribute are focusable, e.g. ,<a>, <input>, <select>, <textarea>, <object>, <button>, <area>.

6.1 Focusable Child Elements

[ assert-focusable1: Child elements must be treated like bitmap images, and should, by default, not be focusable.]

This means that there needs to be a reason like a specified element or attribute to make some parts of the document focusable. The referencing alone is not a valid reason.

[ assert-focusable2: For a child element to become focusable, it must advertise itself as being focusable.]

Advertising focusability depends on the used namespace. For example in XHTML, this can be done using an anchor element. In a similar way in SVG, elements advertise that they are focusable by setting the focusable attribute [SVGMobile12] or by using embedded links.

[ assert-focusable3: A user agent may enable some content to become focusable based on use context.]

In situations where a user agent provides some additional functionality, it may enable more content to be focusable than what is specified by the author. For example, this may happen in selecting images for saving when there are no other means to do it. Another example of this case is making child elements focusable in order to enable a user to scroll its content. However, this is only applicable for extended features. Normally, a user agent should support the author's intent and not make other content focusable.

[ assert-focusable4: A focusability can be used to trigger additional functionality in a user agent.]

One often used function for focusable content is a link navigation. In many cases, user agent can provide additional functionality for content. For example, an embedded SVG graphic may provide the ability to zoom and pan within its viewport.

[ assert-focusable5: A navigation anchor around the element should not trigger additional content dependent features. ]

[ assert-focusable6: Child-specific functionality should be restricted to preserve the author's intent. Should element specific functionality be desired, the element must advertise itself as being focusable or implicity made focusable by a user agent. ]

6.2 Focus Event triggered Child Element Animations

An example of focus event triggered animations is the implementation of scalable buttons which render their own visual feedback. Such buttons are allowed to contain animation, but no interaction. They will provide a scalable alternative to the use of images as the source of links that can be traversed.

Focus events are enabled for each child content by setting a specific object element parameter:

<object type="image/svg+xml" data="focus-button.svg">

  <param name="animation" value="onfocusevent" />
</object>

With the "animation" parameter set to "onfocusevent",

[ assert-FocusAnimation-TimezeroRender: the child content must render the first frame for time zero (0)]

[ assert-FocusAnimation-TimezeroPause: If the root element does not have focus, then the root element must then be paused at time zero(0)]

[ assert-FocusAnimation-FocusinResume: Upon receiving focus, the root element is resumed]

[ assert-FocusAnimation-FocusoutPause: Upon losing focus, the root element is paused]

The following SVG example applies to declarative animation:


<svg id="SVGRoot">

  ...
  <rect ... >
    <animate begin="SVGRoot.focusin" ... />
    <animate begin="SVGRoot.focusout" ... />
  </rect>
  ...
</svg>

The following XHTML code makes use of focus events in order to implement SVG child document rendered focus animations on multiple anchor elements. The user agents default focus outline is disabled using CSS.

<style type="text/css">

  a.svglink:focus { outline: none }
</style>
<object type="image/svg+xml" data="header.svg" />  <!-- defaults to 'play' -->
<a href="foo1.html" class="svglink">
  <object type="image/svg+xml" data="foo1.svg">
    <param name="animation" value="onfocusevent" />  
  </object>
</a>
<a href="foo2.html" class="svglink">
  <object type="image/svg+xml" data="foo2.svg">
    <param name="animation" value="onfocusevent" />  
  </object>
</a>

[ assert-FocusAnimation-Repeatable: The 'focusin'-animation does not timeout and may loop any number of times.]

[ assert-FocusAnimation-FocusoutOneSecond: The 'focusout'-animation should be limited to one second.]

[ assert-FocusAnimation-NonLoopable: The 'focusout'-animation must not loop.]

6.3 Focus Navigation

(This section is informative)

In a WICD document, the focusable items, i.e. items which can form part of a focus traversal, are defined by the respective document types being combined. For example, focusable items in an SVG document are defined by the SVG 1.2 focusable attribute [SVGMobile12, Element focus] .

6.3.1 Two Dimensional Focus Navigation (Flat, Graphical, Joystick)

Vendors of handset devices that do not provide a pointing input device are encouraged to implement this model of a two dimensional, flat graphical focus navigation.

Mobile handset devices in general don't provide a pointing device. On these type of devices, the joystick must replace mouse or stylus, cursor keys, tab keys and page up/down keys. The benefits of the flat graphical focus navigation come into effect, when a web document needs to be operated with a joystick device.

In this model a union of all focusable elements within each component of a compound document is presented as a so-called flattened set. All focusable elements in a compound document act equivalently and are used without any dependency based on which component document they were defined in. Therefore, all focusable elements in child documents are used in the same way as focusable elements in a parent document.

Two dimensional, graphical focus navigation is not based on the concept of a linear focus ring. The traversal order is not related to the position of a focusable element in the source document.

The graphical focus navigation always needs to consider the current state of the rendered document. For example, scripts and animations may change the document's presentation at any time. Therefore, any focus navigation action is calculated at the moment, when the user interacts with the document.

The following examples show specific navigation issues with WICD documents.

Example 1: The images below show two similar WICD documents. The 1st image shows a WICD document with a parent document, that does not have any focusable elements. The first focusable element is located inside the SVG child document. The 2nd image shows focusable elements in both parent and child. The positioning of the focusable elements requires focus traversal to go through the child document.

Navigation within simple compound documents

Example 2: The image below shows again two WICD documents. The focusable elements in both documents are identical. But the rendered location of the child document differs in both examples. This results in a highly different focus traversal. The arrows in both images show just one of many ways a user can navigate through these WICD documents.

Spatial navigation within compound documents

Example 3: The image below shows one WICD document with two child documents. The issue here is, that Link-4 of SVG-1 is positioned just above Link-1 of SVG-2. Ideally, the agent will allow the user to navigate directly from one child element to the next.

Spatial navigation within compound documents

The main idea of the flat graphical focus navigation is the concept of an invisible 'current focus point' inside the page and inside the currently focused element. This 'current focus point' can be visualized to indicate the position inside the currently focused element (using a UI component such as a pointer or some other type of icon). It can also be presented by highlighting visual elements around the current focus point. The current focus point is used as a starting location for calculating a distance function towards the other focusable elements when navigating.

When the user navigates (e.g. presses navigation input controls), the current focus point is moved and a different element receives focus. The focus point movement depends on current movement direction and available focusable content in that direction.

The concept of the invisible current focus point enables a very natural navigation behavior between focusable elements of different size. The arrows in the upper right in the following image show how focus traversal always moves back from the 'Attitude' element to the originating element.

Lots of graphical elements with arrows showing the navigation path

The focus navigation algorithm consists of three phases: finding candidates for focus movements, calculating and adjusting movement based on a distance function, and moving the current focus point with possibly changing focusable element.

Phase 1. At first, focusable elements are searched from the direction of navigation. The search includes content that is currently visible in that direction and content that becomes visible if viewport changes.

Phase 2. At second, the current focus point is moved to the direction of navigation. This movement may keep the point within the current focusable element or it may move it out of the current focusable element. Then, the current focus point movement is adjusted by distance the function. The distance function takes the location of current focus point, and locations and shapes of available focusable content in the area, and calculates most suitable location for the point movement. The distance function enables selection of near focusable elements in cases where more unintuitive selection would otherwise be made.

Phase 3. Finally, there is a check that when focus point moves to another element, focused element is changed accordingly.

The distance function takes into account the following metrics:

  • the Euclidian distance ( dotDist ) between the current focus point position and its potential position in each of the candidates determined in phase 1. If the two positions have the same coordinate on the axis orthogonal to the navigation direction, dotDist is forced to 0 in order to favor elements in direction of navigation.
  • the absolute distance ( dx or dy ) on the navigation axis between the opposing edges of the currently focused element and each of candidates determined in phase 1.
  • the absolute distance ( xdisplacement or ydisplacement ) on the axis orthogonal to the navigation axis between the opposing edges of currently focused element and each of candidates determined in phase 1. When dx (dy) != 0, xdisplacement (ydisplacement) = 0. These values are used to compensate for the situations where an element is close on the navigation axis, but very far on the orthogonal axis. In such a case, it is more natural to navigate to another element, which may be further away on the navigation axis, but approximately on the same level on the other axis.
  • the overlap ( Overlap ) between the opposing edges of currently focused element and each of candidates determined in phase 1. Elements are rewarded for having high overlap with the currently focused element. To prevent the longer boxes always winning focus over shorter boxes when longer boxes are partially outside of viewport, the visible width has been set as an upper limit for the overlap.

The distance function ( df ) is:

df = dotDist + dx + dy + 2 * (xdisplacement + ydisplacement) - sqrt(Overlap)

6.3.2 One Dimensional Focus Navigation (Linear, Focus Ring, Tab)

Desktop agents, tablet's and PDA's usually allow navigation of a web document using a pointing device (mouse or stylus). On desktop agents, the tab-key can be used additionally, to navigate over focusable elements. Here, all focusable elements of a single Web document are chained in one linear path, based on the order of occurrence in the source document. This creates the so-called focus navigation ring, where advancing over the last focusable element brings the focus back to the first focusable element.

XHTML and SVG have methods for linear one dimensional focus traversal. XHTML provides a default traversal order, and allows it to be changed with the use of tabindex attribute within one XHTML document. SVG's provides the focusNext and focusPrev elements which may be used to provide similar functionality within an SVG document. However, neither of these methods can be used when XHTML and SVG are combined. Therefore in the case of a WICD document by reference, combining XHTML with SVG, some alternate form of navigation is required.

When navigating an XHTML document it is possible to assign so-called access keys to links in order to provide a 'hot-key' navigation ability. It is unclear how such access keys work in the case of a referenced XHTML document containing access keys. Similarly if multiple parts of a WICD document contained access keys, should the user agent provide access key navigation into the child document or restrict it to the parent document only.

Specifications which provide an accesskey mechanism (e.g. HTML accesskey attribute) should be considered as identifying parts of the document that are important. The identified key itself is a hint - the user agent may change the particular activation method (e.g. a telephone may reassign keys to numbers, or to the softkeys, another user agent may provide a single point of activation and a rapid-access list which identifies the keys assigned) and is responsible for clarifying which elements have this quick access.

Using a combination key will likely provoke conflicts with other user agent or system functionalities (e.g. alt + the hinted key) is NOT recommended.

7 Font Support

7.1 System Fonts

Standalone components or renderers, such as SVG engines, do not always provide a default system font.

[ assert-font-support1: In the context of WICD Core , however, user agents must at least provide one default system font (including a missing glyph, AKA 'Replacement Character', Unicode notation U+FFFD) to all components, such as browsers, SVG engines and other renderers. If there isn't enough information in the font to display a particular character, then the missing glyph is used.]

[ assert-font-support2: Whatever I18N support a WICD implementation provides should not be worse than that of the platform on which it is running. ]

WICD Core specification cannot mandate any particular font, nor a specific font technology. But it mandates the availability of at least one default font available to all renderers, so that content providers can print text in any component (or render), as simple, as in XHTML.

The default system font(s) may be bitmap or vector based. Ideally, the same default system font(s) are made available for all components.

[ assert-font-support3: The following SVG sample markup must generate visible text: ]


<svg xmlns="http://www.w3.org/2000/svg" 

        viewBox="0 0 250 50" 
        baseProfile="tiny" version="1.2">
  <text x="20" y="20" font-size="30" fill="#000">Fahrvergnuegen</text>
</svg>

7.2 Font Naming

[ assert-font-support4: In both XHTML (using CSS) and SVG, font selection is done by the font-family property as described in CSS [CSS21]. ]

In desktop usage, authors frequently choose fonts that they know are installed by default on particular platforms.

On mobile:

  • there are typically fewer fonts available, perhaps only one
  • the fonts are unlikely to have the same names as desktop platforms

[ assert-font-naming: Conforming WICD Core 1.0 content should specify serif, sans-serif, or monospaced (three of the 'generic font families') as the last item in the list of font family names.]

In SVG, named fonts, or subsets of fonts, can be supplied along with the content. This ensures that the desired look and feel is preserved regardless of the fonts available on a particular platform.

7.3 Font Sharing

Sharing of fonts between the SVG and XHTML renderers, while allowed by the respective specifications, is not required by WICD 1.0. It may be required by a later WICD specification.

8 Content Packaging, Encoding and Transferring

8.1 Content Encoding

[ assert-encoding1: Content (XHTML, SVG, CSS, script, etc) may be compressed with gzip [RFC 1952] or deflate [RFC 1951]. Conforming WICD viewers must correctly support gzip-encoded and deflate-encoded content.]

[ assert-encoding2: If they support HTTP/1.1, they must support these encodings according to the HTTP/1.1 specification [RFC2616]; in particular, the client must specify with an "Accept-Encoding:" request header [HTTP-ACCEPT-ENCODING] with those encodings that it accepts, including at minimum gzip and deflate, and then decompress any gzip-encoded and deflate-encoded data streams.]

If the content is compressed with gzip or deflate, conforming WICD aware servers must indicate this with the "Content-Encoding: gzip" or "Content-Encoding: deflate" headers, as appropriate.

8.2 Content Packaging

[ assert-packaging1: Multipart/related packaging must be supported by all agents implementing any WICD Profile . These agents will advertise "multipart/related" capability with their HTTP request accept headers.]

[ assert-packaging2: MIME implementations must in general treat unrecognized subtypes of "multipart" as being equivalent to Multipart/mixed . Agents supporting the WICD Profile are therefore expected to support both, related and mixed. ]

Implementations preceding this specification may support only Multipart/mixed . These agents advertise "multipart/mixed" with their HTTP request accept headers.

9 Synchronization Support

9.1 Temporal Synchronization of Media

WICD documents may have various animating objects like SVG images, videos, audio streams, and animating images. Therefore, there is a need to define how the various media elements are synchronised when presented on a screen or audio device.

[ assert-sync1: Document formats conforming to WICD Core must use the Timing and Synchronization model defined in the SMIL specification. ]

[ assert-sync2: The document begin for WICD documents is when the complete host document has been loaded by the user agent. ]

[ assert-sync3: The document end for WICD documents is when the associated application exits or switches context to another document. ]

[ assert-sync4: The elements which support timing are all those that reference timed media. In the case of an XHTML root document, the 'object' element supports timing. ]

[ assert-sync5: Unless defined otherwise, the root document executes all timed children in parallel, following the semantics of the SMIL 'par' element. In other words, the root document of WICD has an implicit value for the SMIL 'timeContainer' attribute of 'par'. ]

Other profiles of WICD may allow the 'timeContainer' attribute.

9.2 Timeline Initialization

Using a param element with name="timeline", the document author can specify whether the timeline on a Scalable Child Element is started. This is useful for conserving system resources when multiple Scalable Child Element are used, and only animate in certain situations. Using scripting, the animations on individual children can be started and stopped by changing the value attribute.

[ assert-timeline1: A param element with name="timeline" and value="disable" shall prevent the timeline of the Scalable Child Element from starting or, if already started, shall stop it. Thus, animations will not play. ]

[ assert-timeline2: A param element with name="timeline" and value="enable" shall allow the timeline of the Scalable Child Element to start. Thus, for dynamic rendering, animations will play. If previously stopped, the timeline shall reset and re-start. ]

[ assert-timeline3: If there is no param element with name="timeline", the timeline of the Scalable Child Element shall start. Thus, for dynamic rendering, animations will play. ]

9.2.1 Interaction with the 'render' param

Only dynamic renderings can have their timeline started and stopped. Frozen and static renderings have no timeline and thus it cannot be started and stopped.

[ assert-timeline4: A param element with name="render" and value="frozen" or value="static" shall result in a rendering which is not dynamic and thus, animations shall not play even if a param element with name="timeline" has a value="enable". ]

9.3 Play Animations while Document is loading

The behavior of playing animations while loading a document is dependent on the capabilities of the root namespace of the document.

XML documents may use a parse first and then process model where the entire DOM is built and then handed to the user agent for processing, or may use a parse and process in parallel model where the document is processed immediately by the user agent.

When loading more than one animation during document load synchronization of animations may be desirable. However XHTML has no inherent capability to provide this synchronization and XHTML eventing cannot guarantee synchronization of animations while the document is loading.

SVG and SVG Tiny do have synchronization capabilities that can be used when these namespaces are the root of a child document. The timeline for synchronization occurs when the first child document capable of synchronization begins. For example, an XHTML document has a referenced child SVG Tiny document whose timeline begins when the user agent begins processing the referenced child document which may animate a progress load bar while the rest of the composite document loads.

10 Events

10.1 XHTML Event Attributes

In WICD Core , HTML's event attributes (e.g., onclick and onload) map to equivalent DOM3 Events features. Each event attribute represents the creation and registration of an EventListener. The corresponding element represents the EventTarget. For these event listeners, useCapture is set to false. If the attribute representing the event listener is changed, this corresponds to the removal of the previously registered EventListener and the registration of a new one. The relative order of event listeners due to HTML event attributes versus other event listeners is not defined.

The following defines the mapping from HTML event attributes to corresponding DOM3 events:

  • onload - {" http://www.w3.org/2001/xml-events", "load"}
  • onunload - {" http://www.w3.org/2001/xml-events", "unload"}
  • onclick - {" http://www.w3.org/2001/xml-events", "click"}
  • ondblclick - {" http://www.w3.org/2001/xml-events", "click"}, except event handler returns if UIEvent.detail < 2
  • onmousedown - {" http://www.w3.org/2001/xml-events", "mousedown"}
  • onmouseup - {" http://www.w3.org/2001/xml-events", "mouseup"}
  • onmouseover - {" http://www.w3.org/2001/xml-events", "mouseover"}
  • onmousemove - {" http://www.w3.org/2001/xml-events", "mousemove"}
  • onmouseout - {" http://www.w3.org/2001/xml-events", "mouseout"}
  • onfocus - {" http://www.w3.org/2001/xml-events", "focus"}
  • onblur - {" http://www.w3.org/2001/xml-events", "blur"}
  • onkeypress - [HTML defines as a combination of key down and key up. Need to coordinate with HTML and DOM groups.]
  • onkeydown - {" http://www.w3.org/2001/xml-events", "keydown"}
  • onkeyup - {" http://www.w3.org/2001/xml-events", "keyup"}
  • onsubmit - {" http://www.w3.org/2001/xml-events", "submit"}
  • onreset - {" http://www.w3.org/2001/xml-events", "reset"}
  • onselect - {" http://www.w3.org/2001/xml-events", "select"}
  • onchange - {" http://www.w3.org/2001/xml-events", "change"}

10.2 Attaching Events to WICD Documents

For WICD documents where in one language the focus event in [http://www.w3.org/2001/xml-events] is used and DOMFocusIn is used in the other, authors have to take note of the fact, that directly after the focus event is dispatched, the DOMFocusIn event is dispatched, but not the other way around. Equivalent for blur and DOMFocusOut .

Conforming content should use the DOMFocusIn and DOMFocusOut events.

Conforming content should attach event listeners either via the DOM addEventListenerNS method or (for SVG content) XML Events.

Note: The CDF WG expects this section to be removed in future versions and instead reference the [DOM Level 3 Events] specification [http://www.w3.org/TR/DOM-Level-3-Events/] once it reaches a stable maturity level.

11 Intended Layout

11.1 Media Queries

[ assert-media-queries1: Conforming WICD user agents must implement Media Queries [MQ]. ]

Due to the wide range of devices that may support WICD, it is crucial for content authors to be able to provide CSS that fits best for each device that the content authors target. For instance, if the content authors want to deliver WICD content for devices that have different screen aspect ratio, [MQ] allows different style sheets to be applied to allow scalable content to be fitted based on the devices' aspect ratio, e.g. depending on the orientation of the screen, the content can be authored in a way that scalable content fits 100% vertically or horizontally.

11.2 Style sheet being provided for specific agent classes

A user agent that discovers a CSS style sheet, provided for its own device class (either by media attribute - for instance set to "handheld" - or by a Media Query expression), should assume the content was created with specific properties "in mind". The agent is then expected to deactivate any custom adaptation techniques (for example rendering wide screen content on a narrow screen) and display the intended layout "as is".

11.3 No style sheet being provided for handheld agents

(This section is informative)

A handheld user agent should also not activate special content adaptation techniques for the narrow screen, if documents, which do not contain a style sheet reference for the "handheld" media type, do not requires such treatment. Such documents should be rendered as is.

11.4 Switching off mousepointer emulation for handheld content

(This section is informative)

When switching off special adaptation techniques for rendering wide screen content on a narrow screen, vendors of handset devices should also switch off any type of mouse pointer emulation. They are encouraged to implement a two dimensional, flat graphical focus navigation as described in WICD Core.

A Definitions

The terms used in this document are specified in Compound Document by Reference Framework 1.0 .

B Conformance

This specification defines conformance for several classes of products:

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 (see ). However, for readability, these words do not appear in all uppercase letters in this specification.

At times, this specification recommends good practice for authors and user agents. These recommendations are not normative and conformance with this specification does not depend on their realization. These recommendations contain the expression "We recommend ...", "This specification recommends ...", or some similar wording.

Profile Conformance

  1. Any profile, conforming to WICD Core 1.0, must support XHTML as root document.

  2. Any profile, conforming to WICD Core 1.0, must support the XHTML <object> element as means to reference Scalable Child Elements.

  3. Any profile, conforming to WICD Core 1.0, must support SVG documents as Scalable Child Element format.

User Agent Conformance

  1. Multiple SVG child documents may be referenced from the same XHTML document.

  2. Multiple SVG child documents may animate in parallel.

  3. Any Scalable Child Element format must support these three use cases: Scalable Foreground Child Elements, Scalable Background Image and Scalable Overlay Objects (Sprites).

  4. Scalable Foreground Child Elements are referenced using the XHTML <object> element. They appear on the main XHTML layer, just like bitmap images.

  5. User agents must support multiple Scalable Foreground Child Elements, which may be animating, interactive and may have embedded links.

  6. An <object> element <param> child element with name="render" and value="dynamic" shall result in a dynamic rendering. Links shall be activatable. Animations shall play, if the timeline has started. Modifications made by script shall update the rendering. If the rendering area changes size, the rendering shall update.

  7. An <object> element <param> child element with name="render" and value="static" shall result in a static rendering. Links shall not be activatable. Animations shall not play. Modifications made by script shall not update the rendering. If the rendering area changes size, the rendering shall update.

  8. An <object> element <param> child element with name="render" and value="frozen" shall result in a one-time static rendering to a raster image. Links shall be not be activatable. Animations shall not play. Modifications made by script shall not update the rendering. If the rendering area changes size, the rendering shall not update.

  9. The default value for <param name="render"> is "dynamic".

  10. For SVG child objects, the document time used for rendering a frozen or static image shall be that given by the SVG 'snapshotTime' attribute. If no 'snapshotTime' is present in the animation, a document time of zero (0) must be used. Other Scalable Child Element formats may use a similar mechanism. Scalable Child Elements lacking such capability should use a time of zero (0) for still-image rendering.

  11. If background.svg has width and height in px, then this is well-defined. If it is the default (width="100%" height="100%") then it will display, as large as will fit, where the background area to cover is seen as a viewport.

  12. WICD user agents must support content layering using CSS absolute positioning in x, y and z order. This will detach a child element from main XHTML layer and create a new transparent layer.

  13. WICD user agents must make all visible and focusable points in the XHTML layer and the positioned Overlay Object reachable and activatable.

  14. WICD user agents must support transparency for Overlay Objects.

  15. Scalable Overlay Elements, referred to from the XHTML page, may be put in front of, or behind, the default XHTML layer.

  16. Any transparent areas in the Overlay Object and in XHTML root documents must make the layer behind visible.

  17. User agents must support interactivity in overlay elements.

  18. User agents must support overlay images with embedded links.

  19. If only one size attribute value is provided, when referencing a Scalable Child Element, a fixed aspect ratio child element will get 'rightsized' proportionally, by being scaled to fit into the destination box.

  20. The child content must render the entire viewport, including any leftover margins.

  21. In the absence of a background color or image on the element that established the viewport (abbr html:object or svg:svg) it's background is transparent. This is in order to maximize the visual quality of content the parent document should be visible through the leftovers (as well as through the child content itself where it is transparent).

  22. A defined background applies to the entire viewport (including the leftovers) so that content that spills outside of the viewbox into the leftovers is still on the correct background.

  23. Any UI event, such as a mouse click, that hits on the leftover areas, is dispatched in the same manner as UI events over non-leftover areas (i.e., to the child document)

  24. Given access to the rendered output of an XHTML implementation, foreground Scalable Child Elements over XHTML background using transparency on the foreground element must be supported.

  25. Given existing implementations require support for transparent PNG images and so forth, foreground bitmap image over non-animating background requiring transparency on the foreground element must be supported.

  26. Any audio or video format supported by the user agent must also be supported to be used with the <audio> and <video> elements in SVG and the <object> element in XHTML.

  27. WICD compliant agents should support seamless hyperlinking between any of the supported formats.

  28. Any content type supported by the user agent, when linked-to originating from XHTML, should also be supported by linking-to originating from any other supported format.

  29. All URI schemes, supported for hyperlinking and the related functionality, should be supported, independent of the content format.

  30. User agents must provide a way for the end user to navigate to each focusable element within the root document and its descendants.

  31. Child elements must be treated like bitmap images, and should, by default, not be focusable.

  32. For a child element to become focusable, it must advertise itself as being focusable.

  33. A user agent may enable some content to become focusable based on use context.

  34. A focusability can be used to trigger additional functionality in a user agent.

  35. A navigation anchor around the element should not trigger additional content dependent features.

  36. Child-specific functionality should be restricted to preserve the author's intent. Should element specific functionality be desired, the element must advertise itself as being focusable or implicity made focusable by a user agent.

  37. With the "animation" parameter set to "onfocusevent", the child content must render the first frame for time zero (0)

  38. If the root element does not have focus, then the root element must then be paused at time zero(0).

  39. Upon receiving focus, the root element is resumed.

  40. Upon losing focus, the root element is paused.

  41. The 'focusin'-animation does not timeout and may loop any number of times.

  42. The 'focusout'-animation should be limited to one second.

  43. The 'focusout'-animation must not loop.

  44. In the context of WICD Core, user agents must at least provide one default system font (including a missing glyph, AKA 'Replacement Character', Unicode notation U+FFFD) to all components, such as browsers, SVG engines and other renderers. If there isn't enough information in the font to display a particular character, then the missing glyph is used.

  45. Whatever I18N support a WICD implementation provides should not be worse than that of the platform on which it is running.

  46. In both XHTML (using CSS) and SVG, font selection is done by the font-family property as described in CSS [CSS21].

  47. Conforming WICD Core 1.0 content should specify serif, sans-serif, or monospaced (three of the 'generic font families') as the last item in the list of font family names.

  48. Content (XHTML, SVG, CSS, script, etc) may be compressed with gzip [RFC 1952] or deflate [RFC 1951]. Conforming WICD viewers must correctly support gzip-encoded and deflate-encoded content.

  49. If they support HTTP/1.1, they must support these encodings according to the HTTP/1.1 specification [RFC2616]; in particular, the client must specify with an "Accept-Encoding:" request header [HTTP-ACCEPT-ENCODING] with those encodings that it accepts, including at minimum gzip and deflate, and then decompress any gzip-encoded and deflate-encoded data streams.

  50. If the content is compressed with gzip or deflate, conforming WICD aware servers must indicate this with the "Content-Encoding: gzip" or "Content-Encoding: deflate" headers, as appropriate.

  51. Multipart/related packaging must be supported by all agents implementing any WICD Profile. These agents will advertise "multipart/related" capability with their HTTP request accept headers.

  52. MIME implementations must in general treat unrecognized subtypes of "multipart" as being equivalent to Multipart/mixed. Agents supporting the WICD Profile are therefore expected to support both, related and mixed.

  53. Document formats conforming to WICD Core must use the Timing and Synchronization model defined in the SMIL specification.

  54. The document begin for WICD documents is when the complete host document has been loaded by the user agent.

  55. The document end for WICD documents is when the associated application exits or switches context to another document.

  56. The elements which support timing are all those that reference timed media. In the case of an XHTML root document, the 'object' element supports timing.

  57. Unless defined otherwise, the root document executes all timed children in parallel, following the semantics of the SMIL 'par' element. In other words, the root document of WICD has an implicit value for the SMIL 'timeContainer' attribute of 'par'.

  58. An <object> element param element with name="timeline" and value="disable" shall prevent the timeline of the Scalable Child Element from starting or, if already started, shall stop it. Thus, animations will not play.

  59. An <object> element param element with name="timeline" and value="enable" shall allow the timeline of the Scalable Child Element to start. Thus, for dynamic rendering, animations will play. If previously stopped, the timeline shall reset and re-start.

  60. If there is no param element with name="timeline", the timeline of the Scalable Child Element shall start. Thus, for dynamic rendering, animations will play.

  61. A param element with name="render" and value="frozen" or value="static" shall result in a rendering which is not dynamic and thus, animations shall not play even if a param element with name="timeline" has a value="enable".

  62. Conforming WICD user agents must implement [MQ].

  63. A user agent, that discovers a CSS style sheet, provided for it's own device class, is expected to deactivate any custom adaptation techniques.

C References

Extensible Markup Language (XML) 1.0 (Third Edition)
Extensible Markup Language (XML) 1.0 (Third Edition) , C. M. Sperberg-McQueen, Eve Maler, Tim Bray, et. al. , Editors. World Wide Web Consortium, 04 Feb 2004. This version is http://www.w3.org/TR/2004/REC-xml-20040204. The latest version is available at http://www.w3.org/TR/REC-xml.
Namespaces in XML
Namespaces in XML , Tim Bray, Dave Hollander, and Andrew Layman, Editors. World Wide Web Consortium, 14 Jan 1999. This version is http://www.w3.org/TR/1999/REC-xml-names-19990114. The latest version is available at http://www.w3.org/TR/REC-xml-names.
Extensible Markup Language (XML) 1.1
Extensible Markup Language (XML) 1.1 , Eve Maler, John Cowan, Jean Paoli, et. al. , Editors. World Wide Web Consortium, 04 Feb 2004. This version is http://www.w3.org/TR/2004/REC-xml11-20040204/. The latest version is available at http://www.w3.org/TR/xml11/.
Namespaces in XML 1.1
Namespaces in XML 1.1 , Andrew Layman, Dave Hollander, Richard Tobin, and Tim Bray, Editors. World Wide Web Consortium, 04 Feb 2004. This version is http://www.w3.org/TR/2004/REC-xml-names11-20040204. The latest version is available at http://www.w3.org/TR/xml-names11/.
Document Object Model (DOM) Level 3 Core Specification
Document Object Model (DOM) Level 3 Core Specification , Jonathan Robie, Steve Byrne, Philippe Le Hégaret, et. al. , Editors. World Wide Web Consortium, 07 Apr 2004. This version is http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407. The latest version is available at http://www.w3.org/TR/DOM-Level-3-Core/.
Document Object Model (DOM) Level 3 Events Specification
Document Object Model (DOM) Level 3 Events Specification , Björn Höhrmann, Tom Pixley, and Philippe Le Hégaret, Editors. World Wide Web Consortium, 13 Apr 2006. This version is http://www.w3.org/TR/2006/WD-DOM-Level-3-Events-20060413. The latest version is available at http://www.w3.org/TR/DOM-Level-3-Events/.
Document Object Model (DOM) Level 2 HTML Specification
Document Object Model (DOM) Level 2 HTML Specification , Johnny Stenback, Philippe Le Hégaret, and Arnaud Le Hors, Editors. World Wide Web Consortium, 09 Jan 2003. This version is http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030107. The latest version is available at http://www.w3.org/TR/DOM-Level-2-HTML/.
Cascading Style Sheets, level 2 revision 1 CSS 2.1 Specification
Cascading Style Sheets, level 2 revision 1 CSS 2.1 Specification , Håkon Wium Lie, Tantek Çelik, Bert Bos, and Ian Hickson, Editors. World Wide Web Consortium, 11 Apr 2006. This version is http://www.w3.org/TR/2006/WD-CSS21-20060411. The latest version is available at http://www.w3.org/TR/CSS21.
Media Queries
Media Queries , Håkon Wium Lie, Tantek Çelik, and Daniel Glazman, Editors. World Wide Web Consortium, 08 Jul 2002. This version is http://www.w3.org/TR/2002/CR-css3-mediaqueries-20020708. The latest version is available at http://www.w3.org/TR/css3-mediaqueries/.
HTML 4.01 Specification
HTML 4.01 Specification , David Raggett, Arnaud Le Hors, and Ian Jacobs, Editors. World Wide Web Consortium, 24 Dec 1999. This version is http://www.w3.org/TR/1999/REC-html401-19991224. The latest version is available at http://www.w3.org/TR/html401.
XHTML™ 1.1 - Module-based XHTML
XHTML™ 1.1 - Module-based XHTML , Murray Altheim and Shane McCarron, Editors. World Wide Web Consortium, 31 May 2001. This version is http://www.w3.org/TR/2001/REC-xhtml11-20010531. The latest version is available at http://www.w3.org/TR/xhtml11/.
WebCGM 1.0 Second Release
WebCGM 1.0 Second Release , Lofton Henderson, Roy Platon, Dieter Weidenbrueck, et. al. , Editors. World Wide Web Consortium, 17 Dec 2001. This version is http://www.w3.org/TR/2001/REC-WebCGM-20011217/. The latest version is available at http://www.w3.org/TR/REC-WebCGM.
Mathematical Markup Language (MathML) Version 2.0 (Second Edition)
Mathematical Markup Language (MathML) Version 2.0 (Second Edition) , David Carlisle, Patrick Ion, Robert Miner, and Nico Poppelier, Editors. World Wide Web Consortium, 21 Oct 2003. This version is http://www.w3.org/TR/2003/REC-MathML2-20031021/. The latest version is available at http://www.w3.org/TR/MathML2/.
Portable Network Graphics (PNG) Specification (Second Edition)
Portable Network Graphics (PNG) Specification (Second Edition) , David Duce, Editor. World Wide Web Consortium, 10 Nov 2003. This version is http://www.w3.org/TR/2003/REC-PNG-20031110. The latest version is available at http://www.w3.org/TR/PNG.
XML Events
XML Events , T. V. Raman, Steven Pemberton, and Shane McCarron, Editors. World Wide Web Consortium, 14 Oct 2003. This version is http://www.w3.org/TR/2003/REC-xml-events-20031014. The latest version is available at http://www.w3.org/TR/xml-events.
Voice Extensible Markup Language (VoiceXML) Version 2.0
Voice Extensible Markup Language (VoiceXML) Version 2.0 , Jim Ferrans, Bruce Lucas, Ken Rehor, et. al. , Editors. World Wide Web Consortium, 16 Mar 2004. This version is http://www.w3.org/TR/2004/REC-voicexml20-20040316/. The latest version is available at http://www.w3.org/TR/voicexml20.
Architecture of the World Wide Web, Volume One
Architecture of the World Wide Web, Volume One , Norman Walsh and Ian Jacobs, Editors. World Wide Web Consortium, 15 Dec 2004. This version is http://www.w3.org/TR/2004/REC-webarch-20041215/. The latest version is available at http://www.w3.org/TR/webarch/.
Synchronized Multimedia Integration Language (SMIL 2.1)
Synchronized Multimedia Integration Language (SMIL 2.1) , Dick Bulterman, Guido Grassel, Jack Jansen, Antti Koivisto, Nabil Layaïda, Thierry Michel, Sjoerd Mullender, and Daniel Zucker, Editors. World Wide Web Consortium, 13 Dec 2005. This version is http://www.w3.org/TR/2005/REC-SMIL2-20051213/. The latest version is available at http://www.w3.org/TR/SMIL2/.
Scalable Vector Graphics (SVG) Tiny 1.2 Specification
Scalable Vector Graphics (SVG) Tiny 1.2 Specification , Ola Andersson, Robin Berfon, Erik Dahlström, Andrew Emmons, Jon Ferraiolo, Vincent Hardy, Scott Hayman, Dean Jackson, Chris Lilley, Andreas Neumann, Craig Northway, Antoine Quint, Nandini Ramani, Doug Schepers, and Andrew Shellshear, Editors. World Wide Web Consortium, 10 Aug 2006. This version is http://www.w3.org/TR/2006/CR-SVGMobile12-20060810/. The latest version is available at http://www.w3.org/TR/SVGMobile12/.
Compound Document by Reference Use Cases and Requirements Version 1.0
Compound Document by Reference Use Cases and Requirements Version 1.0 , Daniel Appelquist, Timur Mehrvarz, and Antoine Quint, Editors. World Wide Web Consortium, 19 Dec 2005. This version is http://www.w3.org/TR/2005/NOTE-CDRReqs-20051219/. The latest version is available at http://www.w3.org/TR/CDRReqs/.
Compound Document by Reference Framework 1.0
Compound Document by Reference Framework 1.0 , Timur Mehrvarz, Daniel Appelquist, Lasse Pajunen, and Julien Quint, Editors. World Wide Web Consortium, 11 Aug 2006. This version is http://www.w3.org/TR/2006/WD-CDR-20060811/. The latest version is available at http://www.w3.org/TR/CDR/.
WICD Full 1.0
WICD Full 1.0 , Timur Mehrvarz, Daniel Appelquist, Lasse Pajunen, and Julien Quint, Editors. World Wide Web Consortium, 11 Aug 2006. This version is http://www.w3.org/TR/2006/WD-WICDFull-20060811/. The latest version is available at http://www.w3.org/TR/WICDFull/.
WICD Mobile 1.0
WICD Mobile 1.0 , Timur Mehrvarz, Daniel Appelquist, Lasse Pajunen, and Julien Quint, Editors. World Wide Web Consortium, 11 Aug 2006. This version is http://www.w3.org/TR/2006/WD-WICDMobile-20060811/. The latest version is available at http://www.w3.org/TR/WICDMobile/.
Web Content Accessibility Guidelines 1.0
Web Content Accessibility Guidelines 1.0 , Wendy Chisholm, Gregg Vanderheiden, and Ian Jacobs, Editors. World Wide Web Consortium, 05 May 1999. This version is http://www.w3.org/TR/1999/WAI-WEBCONTENT-19990505/. The latest version is available at http://www.w3.org/TR/WAI-WEBCONTENT.
Authoring Tool Accessibility Guidelines 1.0
Authoring Tool Accessibility Guidelines 1.0 , Ian Jacobs, Jutta Treviranus, Charles McCathieNevile, and Jan Richards, Editors. World Wide Web Consortium, 03 Feb 2000. This version is http://www.w3.org/TR/2000/REC-ATAG10-20000203. The latest version is available at http://www.w3.org/TR/ATAG10.
User Agent Accessibility Guidelines 1.0
User Agent Accessibility Guidelines 1.0 , Jon Gunderson, Eric Hansen, and Ian Jacobs, Editors. World Wide Web Consortium, 17 Dec 2002. This version is http://www.w3.org/TR/2002/REC-UAAG10-20021217/. The latest version is available at http://www.w3.org/TR/UAAG10/.
Mobile Web Best Practices 1.0
Mobile Web Best Practices 1.0 , Charles McCathieNevile and Jo Rabin, Editors. World Wide Web Consortium, 27 Jun 2006. This version is http://www.w3.org/TR/2006/CR-mobile-bp-20060627/. The latest version is available at http://www.w3.org/TR/mobile-bp/.
XHTMLMP+SVGT
XHTMLMP+SVGT Combined Markup for Mobile Browsing - Recommended Practice. Vodafone Group.
ECMAScript Language Specification 3rd Edition
ECMAScript Language Specification 3rd Edition , European Computer Manufacturers Association, December 1999. Also available as ISO/IEC 16262: 199
Scripting Media Types
Scripting Media Types , IETF RFC 4329, April 2006
OMG IDL Syntax and Semantics
OMG IDL Syntax and Semantics , defined in The Common Object Request Broker: Architecture and Specification, version 2, Object Management Group.

D Authoring Guidelines (Non-Normative)

WICD Core 1.0 allows authors to use XHTML, CSS, and SVG together in a defined way. WICD Core defines basic principles that all comformant content and user agents must apply. However, exact language versions and capabilities are defined in profiles. Content authors are encouraged to see the profiles for guaranteeing use of right feature set.

More guidelines can be found from Mobile Web Best Practices 1.0 .

E Acknowledgements (Non-Normative)

The editors would like to thank the contributors:

F Changes Log (Non-Normative)

2006-08-11
  • Updated references. (MI)
2006-06-15
  • Changed CDF acronym to CDRF throughout the spec. (JQ)
  • Added missing editors for SVGT1.2 spec. (JQ)
  • Reinstated assertion in 11.1 Media Queries and removed "Although still in CR". (JQ)
2006-06-06
2006-05-07
2006-03-30
  • Outremarked section "Keyboard Event Naming". (TM)
2006-03-27
2006-03-24
2006-03-22
2006-03-18
  • Edited 1st paragraph under 3.2.1.1 Still-Image Rendering to cover unrecognized and multiple param values. (TM)
  • Edited "assert-font-support4" under 7.2 Font Naming to now read "In both XHTML (using CSS) and SVG, font selection is done by the font-family property as described in CSS [CSS21]." (TM)
  • Removed "The use of absolute positioning often involves assumptions..." from 3.2.3 Scalable Overlay Objects (Sprites) .(TM)
  • Moved in "Keyboard Event Naming" from WICD Mobile. (TM)
  • Moved in 11 Intended Layout from WICD Mobile. (TM)
2006-03-07
2006-02-28
2006-02-23
2006-02-15
2006-02-09
2006-01-29
  • Changed section title from "2 Root Document Format" to 2 Root, Parent and Child Documents .
  • Added to 2 Root, Parent and Child Documents :"A document that references other documents is a parent document. A root document is the topmost parent document. A document is a child document, if it is referenced by other documents. A child document can be a parent document at the same time."
  • Added "or destination box" to 3 Scalable Child Elements .
  • Changed from "there are typically less fonts available" to "there are typically fewer fonts available" under 7.2 Font Naming .
2006-01-11