The WHATWG Blog

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

WHATWG Weekly: Shadow DOM and more encoding fun!

You might have missed this. Because of this lengthy thread on throwing for atob() space characters will no longer cause the method to throw from revision>6874 onwards. This is the WHATWG Weekly, with some standards related updates just before the world slacks off to feast and watch reindeer on Google Earth.

Shadow DOM

Dimitri Glazkov (from good morning, WHATWG!) published Shadow DOM. A while earlier he also published, together with Dominic Cooney, Web Components Explained. The general idea is to be able to change the behavior and style of elements without changing their intrinsic semantics. A very basic example would be adding a bunch of children to a certain element to have more styling hooks (since this is the shadow DOM the children will not appear as actual children in the normal DOM, but can be styled).

Encoding Standard

Two weeklies ago you were informed about the encoding problem we have on the platform. While HTML already took quite a few steps to tighten up things (discouraging support for UTF-7, UTF-32, etc. defining encoding label matching more accurately), more were needed. Especially when it comes to actually decoding and encoding with legacy encodings. The Encoding Standard aims to tackle these issues and your input is much appreciated. Especially with regards to the implementation details of multi-octet encodings.

Posted in Weekly Review | 2 Comments »

WHATWG Weekly: Stream API and better autocomplete

James Hawkins proposed the intent element in a way that brings back memories of HTML4. Happy to be reminded we are over SGML now. This is the WHATWG Weekly.

Better autocomplete

Overnight a complete proposal for better autocomplete appeared on the WHATWG Wiki, apparently already experimentally implemented in Chrome (prefixed). It proposes a new autocompletetype attribute that takes values such as birthday and cc-number. The advantage over ECML is that changes only need to happen on the frontend. The backend can stay the same.

File API

Adrian Bateman proposed to remove the readAsBinaryString() method from the File API standard. Everyone else seems to be on board so it will likely go away soon. Thanks to ArrayBuffer the method became useless.

He also proposed a new argument for createObjectURL() to indicate the resource will only be used once and can then be garbage collected.

Stream API

Sort of analogous to Blob objects a new Stream object has been proposed by Microsoft and it comes with a bunch of friends too so you can interact with it. Combined with XMLHttpRequest this will allow streaming data to the server or downloading large amounts of data and processing it as it comes in.

Posted in Weekly Review | 1 Comment »

WHATWG Weekly: Encoding woes and WebVTT

If you want to contribute to the WHATWG Blog or Wiki, join IRC (#whatwg on Freenode). We had to shut down user registration unfortunately due to excessive spam. Welcome to another WHATWG Weekly. If it were themed, this would be about Sinterklaas.

Encoding problem

In response to Faruk Ateş' plea for defaulting to UTF-8, David Baron explained the platform encoding problem. The problem is that currently the default encoding varies per user (depending on locale primarily) and sites rely on locale-specific default encodings. Such sites visited by a user using a Dutch computer and a user using a Chinese computer, will render differently. In particular, their byte streams will be decoded using a different encoding. The implication is that the web is less global than it should be. How exactly we are to overcome the platform encoding problem, without everyone explicitly opting in to an encoding using <meta charset=utf-8> (please do so if you are a web developer), is still unclear. Ideas welcome!

WebVTT

Revision 6837 made it possible for WebVTT to be published as a standalone Living Standard. It will primarily be developed by the Web Media Text Tracks Community Group on the public-texttracks@w3.org mailing list. WebVTT is the platform's captioning and subtitle format (for HTML video) and its development can be tracked on Twitter via @webvtt.

Video conferencing

The same revision that let WebVTT be published as standalone document, removed everything related to peer-to-peer connections and video conferencing. The W3C Web Real-Time Communications Working Group forked our work in WebRTC 1.0: Real-time Communication Between Browsers and we (the WHATWG) are okay with them working on it instead.

Miscellaneous

My colleague Karl has been blogging again on the W3C Blog, read his summaries from the weeks of November 14 and November 21.

Yours truly added native JSON support to XMLHttpRequest. Just set responseType to "json" and response will give you a JSON-decoded object once fetching is done.

Posted in Weekly Review | 9 Comments »

WHATWG Weekly: Subscribe to the specification & XMLHttpRequest merger

Next to @WHATWG, we now have +WHATWG. Hopefully ⸮WHATWG is next. Not to dispair, WHATWG Weekly will remain right here, without funny characters preceding it.

HTML is big, so follow what interests you!

Ian Hickson announced a new system on the mailing list that allows people to subscribe to specific sub-topics in the HTML specification, such as <canvas> or the HTML Syntax and Parsing sections. You can do so right from the specification itself. If you are interested in topics that are not yet a sub-topic, please let us know.

XMLHttpRequest

XMLHttpRequest is now developed as a single specification again, to reduce confusion, and make it easier for everyone to look at the same copy. Some subtle changes have been made as well, such as allowing responseType to be set before invoking open(), and restrictions on synchronous usage outside a worker context are planned. Synchronous in the main thread is bad, and you will not find any new XMLHttpRequest goodness there real soon now.

Emails

Because not everyone writes sites in a way that prevents future specifications from breaking them, Cameron McCormack has thought up a proposal that should help to make API design less restrictive. Karl Dubost pointed out that using GET when you mean POST is a bad idea.

Ryosuke Niwa is still working on the UndoManager and DOM Transaction specification and posted about a re-introduced AutomaticDOMTransaction interface. He also announced an updated draft and summarized the changes thus far.

Posted in Weekly Review | No Comments »

WHATWG Weekly: <time> police!

You can now put a fullscreen in your fullscreen. Brought to you by Fullscreen. This is the WHATWG Weekly, not quite weekly, but you are still welcome.

<time> police

Revision 6827 introduced the new time element. The one that also allows for years, yearless dates, durations, and so on. It is based on extensive research by Tantek Çelik. That same Tantek is now battling the <time> police HTML WG co-chairs to get everything synchronized again. I am not privy of what is going on, as it happens behind closed doors.

find() and findAll()

Half a decade later we finally might get the short names for querySelector() that we actually wanted. Or not, it remains to be seen how compatible they are. In any event, Jonas Sicking started a thread on findAll()'s return value. An ECMAScript Array with some extra features.

WHATWG email

Ojan Vafai proposed a tabindexscope attribute for better control of tabbing behavior in a widget that is part of larger application. A little before James Graham suggested constructors for HTML elements. new HTMLButtonElement(), you name it. Michael A. Puls II briefly explains the difference between plugins and native support when it comes to attributes. Gavin Kistner found an oversight in data URL origin determination due to added support for CORS.

Kinuko Yasuda started a long thread on how drag-and-drop of folders is to be supported in the platform. Jonas Sicking suggested nothing much new is needed for that, though Glenn Maynard foresees problems reusing the current API. And on it goes.

Rafael Weinstein suggested a template element that would have special parsing behavior. Basically making the nested elements not do anything (e.g. not fetch images, execute scripts).

Posted in Weekly Review | No Comments »