Archive for July, 2011
(This is a cross-post from the mailing list, reformatted as HTML.)
Since February, I've been working on writing a detailed specification for browser editing, primarily the document.execCommand() and document.queryCommand*() methods. These were created by Microsoft in the 1990s and were subsequently adopted in some form by all other browsers, and today browsers have to implement them to be compatible with web content, but no detailed specification ever existed. Interoperability is practically nonexistent as a result, which has
driven all major content editing frameworks away from using execCommand(). (For instance, I began typing this in WordPress' WYSIWYG editor, which uses TinyMCE – a major editor that avoids execCommand() entirely.) Hopefully we can start to fix that and make these APIs a part of the web platform that just works.
The current version of the specification is about fifty pages printed, and supersedes the Editing APIs section of HTML (which is more like two pages). In the style of modern web specs, it
is phrased in terms of algorithms that attempt to cover all corner cases unambiguously and leave no behavior undefined, and it tries to match the behavior of existing browsers to the greatest extent possible. At this point, it's stable and complete enough that I believe it's ready for serious review by implementers, and I would like as much detailed feedback as possible.
Anyone reviewing the spec should be advised that I put extensive rationale in HTML comments. If you want to know why the spec says what it does, check the HTML source. I plan to change this to use <details> or such in the near future. There are lots of minor known issues still left, but none that I thought was important enough that it needs to delay review. Feedback can be sent to the whatwg list, CCing me, with [editing] in the subject. (I'm also fine receiving feedback on public-html or public-webapps, but I don't know if the chairs would be okay with that, since it's off-topic.) I should be available to respond to all feedback promptly at least through the end of August. After that, I can't make specific guarantees about my availability, but I do plan to continue maintaining the spec in the long term.
Next week Wednesday, August 3, the W3C HTML5 Last Call review period ends. Consider taking another look and giving some feedback!
Here is a quick rundown of what happened last week:
- The proposed
download attribute made it into the HTML specification. Specify it on an
a element to force the referenced resource to be downloaded rather than navigated towards.
- The WebApps WG published a first draft of The From-Origin Header. It allows resources to declare they are unavailable within an embedding context. E.g. to prevent bandwidth leeching.
- The DOM Core draft now defines the
TreeWalker features: Traversal chapter in DOM Core. These features have existed for ages, but details were not defined thus far.
- In a quest to define
window.find() Ian suggests that maybe it ought to be dropped. If you need it, speak up!
- In the light of a small vulnerability with allowing the
base element in the
body element, we are taking another look at it. Because well, all your
base are belong to us.
Since the summer causes a slowdown of everything standards, the next WHATWG Weekly is in two weeks.
The bits of HTML the W3C is publishing as HTML5 are getting ever more stable. Ian Hickson continued addressing feedback throughout last week. There are still some three hundred odd bugs outstanding, but mostly these are relatively minor problems. This does not mean that major changes might not happen of course. One discussion currently ongoing is whether the
time element should be replaced with a more generic
On the front of new features, Cisco and Mozilla put forward a new RTC API proposal. They also outlined how it is different from what is in the WHATWG specification. A long thread discussing the details followed. Video conferencing is the next big thing the web platform is going to tackle. Allowing for Chatroulette and Google+ Hangouts without plugins.
Ian Fette from Google proposed a new
rel attribute value,
attachment. A long thread led to the proposal of a new
download attribute instead for the
a element which allows specifying a filename. The attribute allows for specifying an implied
Content-Disposition header on the retrieved resource. Darin Fisher outlines some of the advantages.
The debate on what to do with mutation events is still ongoing, Web IDL and the WebSocket protocol are heading towards Last Call, HTML5 still is in Last Call, and Karl is still providing an alternative view on things in the Open Web Platform Weekly Summary.
Changes to the specification
While the W3C is still working on setting up another one of its Task Forces to sort out whether schema.org should use distributed extensibility via RDFa or Microdata, Ian Hickson wrote a lengthy email addressing Microdata feedback from the last month. This resulted in numerous changes to the specification.
For better or worse (I personally like it) Web IDL is the language to design APIs for the web. Thanks to heycam (and Mozilla for employing him to do this) it has been moving forward again and will probably be published as W3C Last Call Working Draft soon. The significance for web developers is that every specification that defines APIs of some kind (and everything cool but CSS does these days) uses it, so knowing how it works is useful.
The WebSocket protocol
Salvatore Loreto, co-chair of the IETF group responsible for developing the WebSocket protocol, announced on their mailing list that the protocol will go for IETF Last Call today. Implementations are still all over the place. Most browser implementations are still not further than one of the input documents to the IETF group. Firefox 6 will likely ship an updated version, using a vendor prefix. Plans from other vendors are less clear. However, I would expect them all to rather rapidly adopt this as it gives such a huge advantage in terms of speed on sites that use it.
- Oli Studholme thinks that the way the
blockquote element is defined does not match common practice. He wrote a post called blockquote problems and solutions on it as well.
- In reply to Eric Winkelman — who expressed interest in working on a specification for metadata tracks — Ian Hickson outlined what needs to be done. His email is of interest to anyone who wants to introduce a feature on the web platform.
- The debate over whether the
registerProtocolHandler() API should be augmented with a method to unregister and one to figure out if it has been registered is still ongoing. Jonas Sicking has privacy concerns with the
isRegistered() part of the proposal.
- James Robinson suggested a timing API for measuring intervals to replace the pattern using
Data objects that is used nowadays.
- Hugh Guiney asked for clarification on the
Last week in standards world was about a component model for the web and mutation events, mostly. As a reminder, there is also the Open Web Platform Weekly Summary written by Karl.
Changes to the specification
There were only two changes this week. In response to feedback the way
videoTracks (media captioning features) work has been changed.
The second change was purely editorial. Reorganizing the rendering section of the specification. The rendering section prescribes how HTML ought to be rendered in interactive desktop user agents (i.e. browsers), up to and including the nitty gritty details of quirks mode.
Outside the WHATWG
Dimitri Glazkov (Google) shared his work on a component model for the web. Maciej Stachowiak (Apple) outlined a number of a concerns with it. It seems still in the early stages, but this will eventually allow for better control of styling form controls and creation of your own controls (i.e. reusable components).
Olli Pettay (Mozilla) put forward a proposal to replace mutation events. Everyone is in favor of replacing mutation events because of their complexity, but exactly how is still under discussion. Rafael Weinstein (Google) explained why ideally he would prefer an alternative approach using an observer for mutations. He would be happy with the proposal Olli put forward though. After a lot of discussion Boris Zbarsky (Mozilla) considers that we might need both APIs.
WHATWG mailing list