The WHATWG Blog

Please leave your sense of logic at the door, thanks!

WHATWG Weekly: Rich-Text Editing on the Web

This week the HTML specification gained four new methods and also lost some weight due to higher quality “competing” proposals for editing related APIs.

registerProtocolHandler() and registerContentHandler() gained four complementary methods. isProtocolHandlerRegistered() and isContentHandlerRegistered() to determine whether the user is already using the site in question to handle the specified scheme or media type, and unregisterProtocolHandler() and unregisterContentHandler() to give the site the ability to offer an opt-out user interface.

Editing Exodus

The UndoManager proposal contained in the HTML specification has now been removed in favor of the work Ryosuke Niwa has been doing on UndoManager and DOM Transaction.

The execCommand() method and friends have also been removed from the HTML specification in favor of the work Aryeh Gregor has been doing on HTML Editing APIs.

Editing Meeting

A couple of people from Google and Mozilla came together in Canada to discuss the various challenges authors face with editing on the web and how they can be tackled. Ehsan Akhgari wrote a detailed report Future of editing on the web that is well worth reading.

Posted in Weekly Review | Comments Off on WHATWG Weekly: Rich-Text Editing on the Web

WHATWG Weekly: UndoManager, HTML/XML, Component Model

WHATWG Weekly is somewhat irregularly updated as its writer has a somewhat chaotic vacation schedule. The specification meanwhile keeps getting refined, with the latest significant change being a security update to registerProtocolHandler() and registerContentHandler(). These methods provide better platform integration, by letting web pages become responsible for handling e.g. mailto or irc URLs. This security update introduces a whitelist for registerProtocolHandler() along with the ability for everyone to mint their own whitelisted URL schemes that are required to start with web+. registerContentHandler() meanwhile gets a blacklist for the time being as a suitable way to define a whitelist has not been found.

UndoManager and DOM Transaction

Ryosuke Niwa has been working on an API proposal to manage the undo transaction history. This proposal is deemed better than what is currently in the HTML specification and is being sorted out on the WHATWG list. Once this is completed web applications will finally get proper undo/redo behavior.

HTML/XML Task Force

A while ago the W3C TAG set up a Task Force to investigate how HTML and XML can be more closely aligned. A preliminary report is available: HTML/XML Task Force Report.

W3C Community Groups

The W3C set up Community Groups the other day making it easier for people to develop standards at the W3C without all the overhead that previously entailed. Aryeh Gregor already set up the HTML Editing APIs Community Group to work on HTML Editing APIs. Feel free to join the group or start your own!

Component Model Update

Dimitri “good morning” Glazkov posted an update on working out the component model for the web (formerly XBL). To learn more check out the component model page on the WHATWG wiki which contains a good overview of the technology.

Posted in Weekly Review | Comments Off on WHATWG Weekly: UndoManager, HTML/XML, Component Model

WHATWG Weekly: Brief Mid-August Update

WHATWG Weekly has been on a little summer break. Since we were gone over hundred changes were made to the HTML specification, the W3C HTML5 Last Call period is over, and Maciej solicited input on HTML.next.

The changes made to the HTML specifications have been in response to Last Call comments, making clarifications, fixing typos, and a couple of relatively major changes, such as having interfaces inherit (e.g. Window) from the EventTarget interface rather than implement it. Take a look at the HTML5 Tracker for more detail.

Posted in Weekly Review | Comments Off on WHATWG Weekly: Brief Mid-August Update

HTML Editing APIs specification ready for implementer feedback

(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 »

WHATWG Weekly: End of HTML5 Last Call

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:

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