Skip to main content

[Source Distributed Extensibility Submission from Microsoft - 30 September 2009]

It is a common practice for authors, tool vendors, and library authors to want to extend languages to represent additional information that can't be adequately described by the standard grammar. ... Here are a few examples that apply to HTML:

  • A JavaScript library processes custom tags in a browser and turns them into custom controls dynamically on the page.

We would very much like our proprietary Custom Tags to validate.

  • A browser wants to allow custom behaviors to be defined in one module and attached automatically to custom elements.

We would very much like our proprietary HTML Components to validate.

  • An author includes processing instructions in the document that will be processed by a server before delivering the document to a user agent.

We would very much like SharePoint's proprietary InfoPath processing instructions to validate.

  • A HTML document editor adds information about tool settings so that a subsequent editing session can continue with the same settings.

We would very much like Word's "export as HTML" output -- which is so proprietary that it has spawned an entire cottage industry dedicated to "cleaning" it -- to validate.

In many cases, the language customizations are used for small niche applications and don't require the burden of centralized standardization. Instead these extensions are defined in a distributed fashion among groups of interested developers or authors.

We like making up our own shit.

A Distributed Extensibility model for standard HTML is desirable because it means that user agents from different vendors that adhere to the standard can be assured of correctly processing mark-up that contains extensions without destroying the integrity of the document.

Other people keep fucking up our shit.

The proposal as stated closely matches behavior that Internet Explorer has had for a number of releases, reducing compatibility concerns.

I am high as a kite.

Supporting distributed extensibility means providing a standard repeatable mechanism for creating these extensions without the need for centralized agreement.

We're going to keep making up our own shit, whether it validates or not.

(with apologies to John Gruber,
who did it first and did it best)

Postscript: I am not "against" extensibility, or distributed extensibility, or decentralized extensibility, or whatever we're calling namespaces this week. I just think it's funny that some people read this proposal and immediately jumped to The Glorious And Infinitely Extensible Semantic Web With Unicorns And Ponies, when it's really just an attempt to get the HTML Working Group to bless a collection of Microsoft-proprietary technologies that they've jammed into Internet Explorer over the years.