timesheets.js

A declarative approach for HTML Timing using SMIL Timesheets

What’s The Point?

"Web Browsers Already Support SMIL"

No they don’t: modern web browsers (read: all except Internet Explorer) support declarative SVG Animations, which rely on the SMIL/BasicAnimation module — hence the (common) confusion.

Web browsers don’t support the full SMIL recommendation, and they don’t support SMIL/Timing either. That’s what this project is about.

"Why Don’t You Implement SMIL Instead?"

The SMIL spec is huge, it includes a specific box-model which is very far from the HTML/CSS one, and it’s only partially implemented by a few media players. It might be possible to implement SMIL in modern web browsers, too, but we think it would be inadequate:

SMIL has been designed for advanced synchronization tasks. Some SMIL aspects have already been ported to web standards (e.g. SVG animations and CSS transitions), our project is about porting SMIL/Timing and Timesheets to web documents.

"I Can Already Do That With Flash/JavaScript"

That’s right. And you can still use JavaScript to get some rollover effects if you don’t want to use the CSS :hover pseudo-class. ;-)

The point is precisely to use a declarative language for all the common tasks that currently require JavaScript development:

As this declarative language is (almost) standard, web browsers could implement it eventually. Until then, we’ll provide a free, generic, JavaScript implementation.

"IE<9 Supports HTML+Time And Nobody Cares"

True: Microsoft started supporting HTML+TIME ten years ago with IE 5.5; but without SVG, <audio|video> elements and CSS transitions, there hasn’t been many real-life use cases so far.

We think it’s more than time to bring a modern, standard equivalent of HTML+Time to the web. Especially for multimedia-related tasks.