Archive for July, 2011
Wednesday, July 27th, 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.
There is a basically complete JavaScript implementation, which is used to produce expected results for a largely undocumented and entirely ad hoc test suite. I used the tests as an aid to writing the spec, and they probably aren't well suited to aid implementers in implementing it. I will probably get around to porting them to something like testharness.js at some point. I haven't tried testing my implementation on real-world sites, only on artificial input, so I don't know at this point how implementable it really is, but the JS implementation means that it at least has large parts that make sense.
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.
Posted in WHATWG | 3 Comments »
Monday, July 25th, 2011
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
NodeIterator
and 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.
Posted in WHATWG | Comments Off on WHATWG Weekly: End of HTML5 Last Call
Monday, July 18th, 2011
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 data
element.
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.
Posted in Weekly Review | Comments Off on WHATWG Weekly: RTC API and a download attribute
Monday, July 11th, 2011
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.
Web IDL
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.
Email
- 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
menu
and command
elements.
Posted in Weekly Review | Comments Off on WHATWG Weekly: Microdata, WebSocket protocol, Web IDL
Monday, July 4th, 2011
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 audioTracks
and 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
Posted in Weekly Review | Comments Off on WHATWG Weekly: Web Component Model and replacing Mutation Events