Is this thing on?

Subscribe to RSS feed

Posts tagged with "w3c"

Web Animations, towards a Web 2.1

, , ,

SVG Animation (based on SMIL) and CSS Animation offer some similar features for animating Web content. Harmonising these two technologies has been considered on a number of occasions but a path forward has yet to be established. In response to a feature-by-feature comparison of the two technologies the question was raised, “What are the animation features required, prioritised by use case?” (Meeting minutes which lead to Action-48) although a closely related question was, “What would it take to make CSS Animations achieve feature parity with SVG Animations?”

From face-to-face meeting on Web Animations, as discussed here. There is now a CSS-SVG Effects Task Force activity on this.

It has taken time, but by now CSS and SVG are on the same team, which is kind of a precursor to make the specifications well-integrated as well.

CSS 2.1 Solid Soon?

, ,

XKCD recently published the future and found through a good number of Google searches that finishing up HTML5 would herald the demise of newspapers and the Third Coming of Christ.

Coincidentally the W3C declared that finally CSS 2.1 had reached Proposed Recommendation status, and surely, surely!, the end, in the form of CSS 2.1 as Recommendation, should be nigh. I recapped the story in an almost four year earlier entry, Cruelly Slow Slog, a slog that cruelly continued for four more years. 11 years of labour is not bad for what was intended as a quick fix.

Heaping on the irony, a new working draft of CSS3 Speech Module was published. While CSS 2.1 was bound to reach PR some day, the CSS3 Speech Module had been missing in action for seven years, if this module had been a person he would have been recorded as dead long time ago and his belongings spread among his inheritors.

Maybe it is time for me to revive the Audio module? While the Speech module is an aural equivalent to the Text module, how to style spoken text (generated by text to speech), there would be a use, arguably a greater one, for handling audio files. Audio is to speech as image is to rendered text. Properties of an audio module would be the likes of volume, balance, delay, speed, how to present the media in a given context.

In the intervening years HTML5 has happened, with dedicated audio and video elements. As is otherwise the case having more well-defined markup makes the case for styles easier, with the ability of everyone involved to adapt content to user circumstances, for audio as well as images.

Of course, given present form, Jesus Christ would have become a frequent flyer by the time such a module would reach Proposed Recommendation.

HTML video: The subtext

, , ,

There has been a lot of talk about HTML5 video, codecs, containers, and the lot. That certainly matters, but it isn't something I care about. Assuming the browsers could agree on some standard media codec plug-in interface, like they have done before, browsers shouldn't be different from any other media player like VLC. That way it wouldn't be a major work to update the browsers and the spec itself to new formats. Problem solved.

Read more...

The SVG path

, , ,

The last W3C working group I participated in, Multimodal Interaction (MMI), is at the periphery of the Web and is unlikely to make much of an impact on it in the foreseeable future. However they have produced a few interesting specs (and a few uninteresting frameworks), one of which I will return to in much greater detail later.

The most obscure one may be InkML. The name might imply a language for tagging with paint, but is really describing the set of movements registered by a touch-sensitive tablet or screen so that the scribbles you make can be processed and enhanced by someone more clever than the tablet driver. Unfortunately this specification is made by a tablet-maker subgroup that like Schrödinger's cat is living or dead depending on your perception, and the spec is progressing at a less than vital speed.

Read more...

Into the bog

, , , ...

This entry was actually made, well conceptualised, back in early July when I wrote several entries on HTML5 and XHTML2. If I made it then it could be considered prophetic, though it would only show a Nostradamus-style prophetic ability ("there will become a war, and in that war some people will suffer badly"). I lost that opportunity, but if something is worth doing, it is worth doing very, very slowly. And trust me, there will become a war, and in that war some people will suffer badly.

Read more...

Bending or breaking the tree: Extensibility in HTML

, , , ...

A link to the past

HTML is the Hypertext Markup Language. Hyperlinks is what made HTML special. When I came to the HTML Working Group, shortly after the browser war was over, the feud of the day was with XLink 1.0, which quickly had become a Recommendation through a flawed process. The HTML group wasn't happy about it, as they didn't think the specification fulfilled its design goals.

XLink had a complex history, originally it was meant to be an Extensible Linking Language to complement the Extensible Markup Language (XML). The specification ended up creating a number of attributes in the XLink namespace, 'link:type', 'xlink:href', 'xlink:role', 'xlink:arcrole', 'xlink:title', 'xlink:show', 'xlink:actuate', 'xlink:label', 'xlink:from', 'xlink:to'. The idea was that any XML language needing hypermedia functionality would mix in the appropriate XLink attributes.

When I left the HTML Working Group a few years later XLink was forgotten, but the HTML working group had made a very similar collection of floating attributes for XHTML2, 'xhtml:href', 'xhtml:role', 'xhtml:src', 'xhtml:about' and so on. The idea now was that any XML language needing hypermedia functionality would mix in the appropriate XHTML2 attributes.

Read more...

HTML5 — XML's Stealth Weapon

, , , ...

Even after the death-of-XHTML2, syntax debate still dominates the day. Here is my contribution.

The XML story

In the beginning was SGML. There is a lot to be said about SGML so I won't. HTML was specified to be an application of SGML, but that never happened in practice. Among browsers Opera kept the pretence of supporting SGML for the longest time, causing us a lot of trouble because Opera behaved differently from every other browser. DocBook is another known SGML application, but in general SGML was no success.

About a decade ago a small group of people started a reformulation of the old SGML standard, First they did it outside of the W3C and later, when the success became apparent, within the W3C. The story of this simplified SGML, now known as XML, may be best told via the annotated XML, by Tim Bray, one of the principal authors. Essentially XML is angle brackets and a number of production rules on top of Unicode (for a fuller description see Comparison of SGML and XML).

Read more...

An XHTML 2 far

, , , ...

Before the weekend W3C announced that the XHTML2 Working Group would be discontinued. That hardly came as any surprise, and mixed with that feeling of relief and melancholy the death of a terminally ill patient may elicit. To me XHTML2 was the next HTML3, another ill-fated W3C spec discontinued at an early stage and superceded by a browser-supported spec, HTML 3.2. The difference was that I had an inside view of XHTML2.

Read more...

Cruelly Slow Slog

,

The CSS 2.1 specification was recently refused entry into the (almost) safe harbour of Candidate Recommendation (CR) status again (for what is it? the fourth time?). This means that the spec is still in a you-can't-believe-a-word-of-this Working Draft state, just like it was seven years ago. This can be summed up in the word frustrating.

To be fair the goalposts have not only been shifted from when Tantek Çelik originally suggested CSS 2.1 one Sunday afternoon, but completely replaced. Originally the idea was just to remove the parts of CSS 2 that nobody wanted to implement. This could have been done in months. It would essentially be a profile of CSS 2, "CSS 2—The useful bits".

Instead CSS 2 was fully rewritten in tedious detail, the goal was now the interoperable CSS 2. This in itself was a good thing. It is much better that the spec is unambiguous than having incompatible implementations of the same, vague, spec. The ones having already implemented CSS 2 would need to adjust their products, but for new CSS 2.1 user agents getting it right the first time is much cheaper, not to speak of the millions of web designers that don't have to make specific hacks for every browser in existence.

But there is a diminishing return. The optimal time/clarity moment was probably when it was first submitted for CR, three years or so ago. This is not to say that what was done after that was unnecessary, but the extra clarity we have gotten for increasingly obscure issues have simply not been worth the additional years. They would have to be resolved at one point or another, but are errata or CSS3 material. The fatigue in the working group and impatience in the designer community is also starting to show, those that haven't given up on it years ago.

It is also slightly unfair. SMIL 2.1 had its first (and last!) working draft in February 2005, and a finished recommendation in December 2005. Were they that more efficient? No, but evidently their goal was to push out a spec as soon as possible rather than solving underlying problems, and crucially nobody outside the working group cared.


With this as a background it is none too surprising that a discussion on wither working group, even in some cases whether working group, has started. One solution I find particularly unconvincing is the argument that the CSS working group should follow the lead of the new HTML working group which currently has 405 self-invited experts, and the number is growing. That is the classic "the project is late, let's throw in many more people" approach. This behind the scenes report may be the best summing up of the situation.

The other symptom is an earlier call for CSS 2.2, reminiscent of my suggestion in 2002 or thereabout of a CSS 3.1. The big problem was as evident then as now. CSS 2.1 may have taken way more time and effort than was originally intended, and now we suffer from it. But sooner or more likely later it will be done. CSS3 on the other hand is a monster many times bigger than CSS 2(.1), the chances of it being fully done, let alone implemented, any time soon is nil. So what about the designers that have waited patiently on rounded corners for a decade and now have the outlook of having to wait another decade so that at least their children will be able to specify it in their style sheet?

The Year in SVG

, , ,

2005 was the year Mobile SVG arrived, and 2006 was the year Mobile SVG got lost. Before 2005 SVG was used in a few niches, "semantic graphics" like map applications with a limited number of users but really nothing to talk about. In 2005 on the other hand the phone world showed interest in SVG, and while other SVG events happened like the first public alpha implementation of SVG in Opera and Firefox, and pre-alpha in Safari, the Canvas spec, and ominously the Merger of Macromedia and Adobe, everything newsworthy was related to phones.

Not so 1996. The phones were set to mute, and SVG hit the Web. Behind the scenes in 1995 and much more publicly in 1996 there were cultural and technical conflicts with other Web formats, particularly CSS and the new Canvas, with Adobe Flash and Microsoft in the background. This year Opera started to matter in the SVG world as the first useful integrated SVG browser with the release of Opera 9, with the promise of Firefox and Safari. The SVG 1.2 specification reached Candidate Recommendation, being both too early and too late.

The bomb, though expected by the people in the know, was Adobe's discontinuation of its SVG viewer plug-in, the dominant SVG viewer. It was the way to show SVG in any browser (which for most users means the Internet Explorer browser), and though as Adobe had paid good money to buy Flash, the terms struck everyone as stunningly harsh, if not directly hostile to SVG: By the first announcement the plug-in would be gone and unavailable by the end of this year. Later Adobe relented giving the plug-in a longer lease of life, you can download the unsupported plus-in next year too. This was obviously taken as bad news, but personally I think this is advantageous in the long run, much like when AOL Netscape ceased ownership of Mozilla. This was commonly seen as the end of Mozilla, but I thought it was more likely to be the beginning and was proven right. Sugar daddies are only advantageous to a point. Worse than the loss of ASV is that authoring products like Illustrator are unlikely to provide useful SVG support.

Symbolic, but still, the year ended with good news for SVG. By Christmas the first game console, and a hugely popular at that, supporting SVG was released through the Opera beta for Nintendo Wii. I have been sceptical about how useful SVG really is for phones, game consoles seems a better match.

What about this year? I expect 2007 to be a fairly quiet year. Browser support will improve incrementally, the work with finding a replacement for Adobe SVG Viewer will continue. An unknown is whether Microsoft will provide SVG support one way or another, but I don't expect they will. We have begun adding SVG articles on our developer site, and fundamentally developer support is the make or break for SVG. But that is more a challenge for 2008 than for 2007.

More W3C

, ,

David Baron, of the Mozilla organisation, has a well-written entry starting with SVG 1.2 and continuing on how the W3C works, arguing that "We should work on, and implement, the standards that we think are appropriate for Web browsers, and ignore the rest. We should spend our time improving what Web developers and users want, not waste our time improving what is less important or criticizing what isn't going to work in the first place."

En svensk tiger

, , , ...

Opera 9.0 Beta is now available for download. For those of you who have regularly tested the 9.0 previews and weeklies the difference from those isn't that great (except in stability), but from 8.5 it is huge. There are new features and advances in standards. One that has truly progressed since 8.5 is SVG. While we don't have complete SVG Basic support yet, with full styling and scripting, we are close. Getting here has been a long journey. The first version of SVG, SVG 1.0, became a W3C Recommendation in September 2001. We had an interest in SVG even earlier, but the sheer size of the specification made us decide against it, it was hard to justify putting so much effort into a format that was going to need years to get a foothold in the market. We had done it with PNG before, but that was easy. The arrival of the Adobe plug-in decided the matter, why should we spend our remaining resources on SVG when there was a viable alternative? We weren't looking for a Flash competitor, which seemed to be Adobe's main drive until they bought Flash several years later. It definitely wasn't to make a Purity of Essence markup language not sullied by the real world like the HTML harlot – many working group members at that time were deeply hostile to the Web. The mobile companies were the next to turn on to SVG, and while there are clear benefits with SVG on phones, the gains can be even larger on a larger screen. We saw a vector graphics markup language as an adjunct to HTML, together they would become more than they were separately. Each language could provide what the other one could not. HTML augmented with CSS could do both text, layout, hypertext, semantics and more. But it couldn't do the simplest illustrations (except through brutal hacks), or graphs, or fancy boxes or headlines. As HTML was a W3C language and SVG was a W3C language you would have expected that these two were well integrated, that you could easily use one to enhance the other. That certainly isn't the case and this is a tremendous unfulfilled promise. It isn't all bad, the two languages do integrate with each other after a fashion. They can be looked at as feuding siblings, having them in the same room will cause torment, but they are family. Hopefully some years from now they will both grow up. How did it get to this state? One reason was attitude, another was timing, a third the participants. The way W3C works may also have had an influence. Many at the time believed that the Web was fundamentally broken, that it was better to have a fresh start. If the Web was broken, what was the point in integrating with it? Whenever SVG integrated with other specs, it was always to other new and still largely unused specifications. SVG wasn't to enhance the Web, it was to replace it. This was less ridiculous than it might seem now. The Web was war-torn and not in a very presentable state. To this day our Open the Web team is working on, or rather against, the Web of 1999. The timing was unlucky too. HTML 4 was done when SVG started, and in the following years that group was preoccupied on reengineering HTML to be on top of XML instead of (ostensibly) on SGML. In any case the climate for HTML, W3C's greatest hit, was chilly. There also seemed to be an implicit W3C assumption that XML made document integration automatic, and then that XML Namespaces would do so. For one reason or another the browser makers were not involved. Microsoft, that had an SVG precursor in the VML format, has just won the Browser Wars and could go back to sleep for another half decade. Netscape was busy changing its skin to Mozilla. We were turning our CSS browser into a DOM and CSS browser and, more hidden from view, a browser that could thrive in the most cramped devices. The actual SVG implementors didn't have any great interest in Web integration, for them this was just extra complexity with no direct benefit. We might have been one of those implementors. In the summer of 2002, mere months after SVG 1.0 was published, our lead SVG developer held an internal demo of a prototype SVG implementation that included the iconic SVG image of the time, the SVG tiger, looking the same way then as it does now. A bare-bones SVG feature set, much smaller than the extended SVG 1.1 Tiny we released in Opera 8, could have been a part of Opera 7. It would have been scalable vector graphics later to be animated, styleable, and scriptable, but not much more. But the great migration towards Presto had started, SVG had to wait. Further on there was a repeat of the Adobe plug-in story, as Ikivo made a great SVG Tiny implementation that covered our phone needs if not our cross-platform needs. Had it made any difference if we had given higher priority to SVG? For the standards, probably not. The odds were against it at the time, and we had little time to spare for W3C work. It might have increased the browser attention to SVG, but none would likely have come up with an actual implementation faster anyway. Web developers might have caught on to SVG a little earlier, but they would have been even more frustrated with SVG than they were with HTML+CSS. Today Opera 8 (but not Opera 9) suffers from what I see as a mistake in the specification: If there is anything in SVG a browser doesn't recognize, it is not allowed to show anything at all. For a hardcore graphics SVG implementation, like the one we were contemplating, that would in practice mean that unless the SVG was specifically made for Opera, we would not have been able to show it. Another and much larger problem is that even with this rule, which was made with the intent to make different implementations interoperable, the existing SVG products today aren't really compatible. We will eventually get this right, but it will take years of slog (déjà vu for any CSS enthusiast). When the SVG world and the Web world eventually did collide, that meeting was often acrimonious. It probably was unavoidable. While there was ideology on both sides to be dealt with, SVG as a standard needed some years on its own to find its standing. HTML, CSS, and DOM is today a fairly harmonious trinity, but that was not the case at the beginning. Early on Netscape had annexed HTML, CSS came from W3C and got its first real implementation in Opera, and while Netscape came up with JavaScript, Microsoft trumped it with a superior and more popular DOM. Neutral ground W3C DOM (which is more similar to the MS DOM), while formally the standard DOM created by Microsoft and Netscape together, wasn't really supported by either browser. Mozilla was the first browser to support W3C DOM, followed a few years later by Opera, Konqueror, and most recently iCab. Standards are the first casualty in browser wars, and it took a decade to mend them. But during all this hammering something else happened, the three specs began to fit. Fitting HTML and SVG the same way should hopefully mean less banging, and the signs are that they are slowly melding, and people from both camps are seing the mutual benefits (and, as many of us are commercial, the business cases). What is more intimidating is that this is going to be the easy part. Uniting HTML and SVG is a bit like uniting magnetism and electicity, there are other forces less mallable to the theory of the Grand Unified W3C.

Web 2.1: Making it whole again

, , , ...

Attended the W3C Technical Plenary, in Cannes, France. W3C has played the United Nations of Web standards for a decade now. In that period they have created 85 recommendations (finished specifications). In the works are 2 proposed recommendations, 28 candidate recommendations, and 111 working drafts, 25 of which are in last call (actually a few more, but I dropped some of the more process-oriented documents from the list).

The World Wide Web comprised three standards initially, URL, HTTP, and HTML. The URL, the location of a resource, was the crucial one. It created one standardised way of describing an address. The HTTP transport protocol allowed any machine to pick up or send to that resource, and HTML like this included the URLs as hypertext links. WWW built upon existing Internet standards as well as predecessors like Gopher, FTP, and Enriched Text.

Even so going from just three to a couple hundred standards, not including programming languages and frameworks that are standardised elsewhere, has made the web undertaking less seamless. Every standard has been created to solve a particular problem, or in some cases to cause a particular problem, but often with less interest in making it a well-functioning whole. W3C rules states that new standards should build upon existing ones. This is good in that you can reuse what you have already got and bad in that each new specification will be on top of a huge stack of existing ones, so new specs are going from baroque to rococco before they even get started.

One of the terms that cropped up last year was Web 2.0 (for which we can blame O'Reilly). If there is a Web 2.0 it certainly is in first working draft. However the interesting, in fact the necessary, project is to make all these standards work with each other. Not only "Make it work" but "Make it work well".

This will be slow, methodical work with little hype attached to it and it will take time. Realistically it will take another decade. Most, if not all, of the hundred-some recommendations and recommendation-wannabes will have to be reworked. This process, analogous to the development of CSS 2.0 and CSS 2.1, will not add much features to speak of but it will add quality and ease. Call it Web 2.1, the interoperable web. The process has started, and it is causing friction of the good kind. For instance SVG has been used for specific purposes in the past, now that it is getting used for the broader web audience issues that didn't matter matter before matter now. One of the integration tools is the Compound Document Framework that actually tries to integrate different formats into one. This will not solve the problems but will show where most of them are.

In the five years I have been involved with standards I have seen hundreds of demos on how well a particular method solves a particular problem. Now what remains is the problem of how to solve that particular method.

Fig leaves

, , ,

Going from the usefully useless spacer to the false start of HTML 3.0. HTML 3.0 never made it to a final specification, but it contained many interesting if half-baked ideas. One of these was the fig element. Like spacer the element had many attributes now obsoleted by CSS.

Also like spacer or the logo and photo types in vCard, but unlike img, object, or canvas elements fig tells what kind of image is shown, here a figure. In addition the figure had associated content, the caption and credit elements, as well as content fallback like for object in HTML4. caption reappears in XHTML2, while credit has yet to reappear.

Two other properties were unique for this version of HTML, the overlay, an image positioned on top of the figure, handy for sprite animations, but here ostensibly to save bandwidth. The images could have a checksum so that when leeching an image the owner of the site would not be able to swap the image with an inappropriate one without the browser detecting that the image had been tampered with.

Watch this spacer

, ,

It was natural to start off a series on web elements with a vilified element that never made it into any web standard and never will, the spacer. Often elements are made for minute details that nobody, man or machine, are interested in. Should abbr or acronym be used? Who cares, except the poor web developer confused by reading the literature and trying to do the right thing.

spacer is an element signifying nothing, containing nothing, and displayed as a rectangle of nothing. It is a pure layout hack. You know the the drill. The correct and proper element to use is object, or use img if you have to for compatibility reasons. The spacer is not to be used. And this is a pity. The wonderful thing about spacer is that you know it is a hack and that it is completely devoid of meaning.

When we do Small-Screen Rendering or a voice representation of a page the goal is to remove the useless stuff and present the useful stuff as well as possible. But what is useless? If a tiny image is stretched horizontally or vertically we assume it is a spacer element and remove it. We are practically always right, but still it is guesswork. For all we knew we could have removed useful information. If that img had been a spacer instead we could have removed it with no remorse.

As it happens there is a convention to express that an img has no real significance. The img element has an obligatory alt attribute, if set to an empty string it is a signal that it has no text equivalent and is thus, in the grand scheme of things, useless. <img src="image-address" alt=""> is just another way of saying spacer with a little more colour.

What about object? This is an element that slices and dices but unlike img there is no way to state the difference between <img src="image-address" alt=""> (i.e. this image is expendable) and <img src="image-address"> (i.e. the designer hasn't considered how the image shall be used in other contexts). <object data="image-address"></object> can mean either of these things, we just don't know. Our options are either to make a guess or to force the decision on to the user.


object is the most general and expressive element with the most flexible fallback. Given <object id="a"><object id="b"><b>Markup</b></object></object> the object with id=b will be shown if and only if the object with id=a can't be shown. If neither can be shown <b>Markup</b> will be shown instead. But only the author knows if the fallback is important or not. Unlike the HTTP q property ("q" is for quality) we can't know if the two id=a and id=b objects are equivalent (e.g. Flash and SVG versions of the same graphics) or if id=b is a barely adequate substitute or worse (e.g. a poster imploring the user to download the Flash plugin).

What can we learn from that? The lowly spacer isn't just more expressive for its purpose than the worker img element, it beats the folk hero object. I am not proposing to introduce the spacer element into "polite company", this ugly duckling won't turn into a swan. CSS can do the same job better, though you need Opera if you want to fully represent what the spacer element can do, and much more flexibly. CSS is the language for layout hacks.

But spacer has many of the properties a good element should have. Its use is clear, you won't use it unless you mean it. It tells something the web designer knows the user agent needs to know but can't truly on its own (that this element is used purely for layout purposes). We don't need to know why this layout hack was added, just that it is a layout hack that will not transfer to other layouts.

Mobile Web Initiative

,

The Mobile Web Initiative went public this week, with a public mailing list each for best practices and device description. It went public in the sense that it really has been a continuation of a workshop in Barcelona this fall. Further back a W3C impetus would be the .mobi top level domain for mobile devices, something I don't think is a particularly good idea and neither did Tim Berners-Lee.

The workshop and its papers was a "You are here" point of the Mobile Web, where the participants presented their diverging view on what the mobile web was and how it would be won.

HTML withdrawal

, ,

Yesterday I finally left the HTML working group. While it was a recent discussion that made me ask myself what was the point in staying, I have grown more disenchanted over the years.

Unlike some I don't agree that XHTML 2.0 is an unmitigated disaster. There is much good stuff in the spec. It is also the first structural work on HTML since HTML 4.01, five years ago. In the meantime the focus has been to make HTML XML-compatible and to split HTML into modules. Whether HTML is formulated in XML or in some kind of SGML matters, but it isn't important relative to how the language itself should evolve. HTML 4 is overdue for an update.

XML (and thus XHTML) has two obvious advantages. It separates between syntax errors (well-formedness) and expectation errors (validity), and the character set of the document is not in doubt. The XHTML modularization itself isn't that useful for practical purposes where the conformance rules and the implicit fallback principle (ignore what you don't understand) is what you need. A side effect of the work on XHTML 2.0 is that XHTML Modularization will be updated to actually describe the modules in the document itself, and not by reference to HTML 4.01 as has been the case up until now.

The revolutionary aspect of XHTML 2.0 was overdone. I don't think the W3C, or browser vendors, or web editor vendors, or any other organization or group has control over the web or its formats. I don't overly worry about Microsoft either. They tried to replace the web before and failed spectacularly. They might try again, but if they do they will fail again. The web is the world's largest installed base. It will change, but not on command. A decade ago change by decree might have been feasible, but this is the difference between shepherding a flock of hundreds of sheep and one of several billions. That flock goes where it wants to go, not where we want it to go.