WebCHM Prototype

WebCHM is an ongoing effort to implement the CHM specification. A first version of the proposed framework has been proposed, and further developments are underway. We describe in the next paragraphs the technological choices used to develop the framework libraries.

Technological Choices

Compliance with Web technologies

Compliance and integration with the existing stack and the most widely supported Web technologies and protocols is a fundamental part of any successful Web technology. This motivates the development of a Web implementation of the introduced model through the proposition of a declarative syntax and a set of JavaScript libraries. A possible Web realization can be made through a SMIL syntax. However, SMIL is not supported naturally by browsers.

Declarative syntax

CHM specification is implemented through a declarative language as an extension above the HTML language. This permits authors to create a high-level description that explains what should happen rather than how the effect is to be achieved, as promoted by the W3C language standards for complex document manipulations, which ensures document readability, reusability, maintenance and accessibility.

Client-side scripts

The need to extend the browser abilities to support the language specifications motivates the development of client-side JavaScript libraries in order to ensure a seamless support by overall modern browsers, with no need for additional software. A Flash fallback for video management when the browser does not support the new specification of HTML is also used.

HTML5 Video

We mainly make use of the HTML5 <video> element to embed video in webpages natively. Our implementation however makes uses of plugins when the user browser can not display the audiovisual content natively.

HTML Instrumentation

Since HTML does not fully support namespace declarations, the proposed syntax can not directly be used in general HTML documents, unless we require XHTML. Therefore, as our intention is to allow a larger use of the proposed language, CHM namespaced attributes are associated to standard HTML elements, and extend them with CHM specification behaviors. Such behaviors are handled by a set of generic, reusable, extensible and user-transparent JavaScript libraries that perform a content transformation to dynamically generate standard HTML code, readable and understandable by modern browsers.


Complex hypervideo documents can therefore be authored as standard Web documents, styled with CSS, extended by SVG and controlled by scripts. The common Web content is written in a standard HTML while the hypervideo components are expressed through the CHM attribute-based syntax.

The CHM spatial model is supported by the indirect HTML layout model via cascading stylesheets (CSS) and container elements like DIV, while a SMIL Timesheets implementation handles the document time and the synchronization model.

Web Timing for Hypervideo Synchronization Module

Synchronization Issues

The time-independent nature of the current Web that hampers a wider use of timed content motivates many efforts towards defining synchronization mechanisms for the Web. SMIL allows great complexity and sophistication in time-based scheduling of multimedia components and documents. SMIL Timesheets is an interesting addition to SMIL 3.0 that makes SMIL 3.0 timing and synchronization available in other XML-based markup languages, including a-temporal ones such as HTML.

HTML+TIME was the attempt from Microsoft, Compaq/DEC and Macromedia to integrate SMIL semantics with HTML and CSS. The proposed specification was modified by W3C working groups and emerged as the W3C XHTML+SMIL. Nevertheless, the proposed solutions have not been followed by concrete implementation at a large scale and thus, there is no established standard way to add temporal behavior to Web-based multimedia documents. Although HTML5 multimedia elements implicitly define a temporal scope for media objects, the specification provides a very restricted scope of time that only applies to media and captions and not to the document.

Web Timing with SMIL Timesheets

Support for temporal behavior in structured documents leads to such documents gaining temporal semantics. The development of a Web-based hypervideo tools needs these semantics; however, as the Web is a-temporal, alternatives to add time to the rendered content are needed.

An implementation of SMIL Timesheets (External Timings) of SMIL 3.0 through a JavaScript engine is proposed in the Timesheet Scheduler, developed at the WAM research group of INRIA. Using the Timesheet Scheduler project, the CHM model timing specification can be implemented effectively. Moreover, the SMIL Timing implementation presents interesting features for the hypervideo document model fulfillment and is designed to support and take advantage of the HTML5 media elements.

WebCHM Process

CHM Overview
WebCHM Hypervideo Creation Process

A CHM hypervideo document is published using the WebCHM syntax with any HTML editor. The generation of the presentation uses a set of libraries that instantiate the modules of the rendering engine. The figure summarizes the design stages of hypervideo, distinguishing three main phases:


We aim to enhance the syntax support by providing a DOM Application Programming Interface rather than libraries that perform content transformation. The authoring process may be eased by a graphic user interface (GUI) environment; this is one of the future development stages. We also want to rely on cognitive theories to propose more meaningful rendering libraries. The interaction possibilities can be enriched by more advanced features like offering additional mechanisms to end-users, readers, annotations.