The Web Hypertext Applications Technology Working Group is working on extending HTML4 forms to make Web applications work better.

In the previous rounds of HTML enhancement, the world’s great graphic designers (like Jeffrey Zeldman) made the most noise and got us things like CSS which allow the kind of pixel-perfect page layout that the marketing people like, done in an intelligent way that separates content from presentation. Kudos. They got what they wanted, mostly, and quieted down. Now it’s time for us application developers to start clamoring for the features we need to develop great web applications. Here are some examples of the kinds of features I’d like to see in web browsers:

  1. Improved inline editing (step one: make contentEditable work in Gecko just like it does in IE 5.5+)
  2. Javascript features to do fast REST queries back to the server, so I can implement things like a lush spell checker with the dictionary on the server. It should be possible to have a 300,000 employee directory on the server and create a web app that has a list box where you can type the first few letters of an employee’s name and see a filtered list as fast as you can type on the screen.
  3. A rich set of standard controls for application development that provide better ways to upload files, better ways to drag and drop with the desktop, etc
  4. Compiled or compressed JavaScript, so that web applications can use really large amounts of JavaScript with decent performance
  5. Better standardized windowing features. At the very least I’d like modal and modeless dialogs that pop up instantly, a standard way to do a menu inside a web page (with ONE consistent UI, not everybody’s wacky DHTML menu that are all a bit different), TreeView and ListView controls, and a standard way to make a toolbar/button bar
  6. The ability to get a “device context” (in a platform neutral way) on an HTML control and wail on it to paint just about anything you want
  7. A far richer set of events. At the very least I need to be able to use the entire keyboard. Combined with #6 I should be able to develop any custom control I want that is 100% client side.
  8. Media integration, so I can play sounds or stream music in standard ways without relying on <objects>
  9. Graceful degradation for legacy browsers (IE. It’s time to make Microsoft play catchup again. Fire and Motion Baby.)

This is just a random list, nothing organized. These things would have happened if browser development hadn’t ground to a halt in the late 90s due to the misguided Netscape-rewrite-project and the lock-IE-developers-in-a-dungeon project.

What I do not want to hear about:

  1. Proprietary tools like Macromedia’s or Java Applets that embed clever widgets in rectangles in a browser. I want this stuff integrated with DHTML and CSS, deeply in the fabric of the web
  2. Things that don’t have any chance of degrading gracefully on legacy browsers. You have to be able to construct an interface that gets better if you install Firefox, but still works on IE, without too much testing on the part of the developer.
  3. Boil the ocean schemes that require 400,000,000 users to install some thingamajig before you get anything useful. Such schemes will not go anywhere.

What are your ideas for improving the HTML/CSS/JavaScript infrastructure to make web app development better? Write them up and post them somewhere; I’ll point to the best ones from my blog. Please don’t email me your suggestions — post them on the web and email me a link so everyone can benefit. I just don’t have enough time for private email conversations (yesterday’s API Wars article generated well over 200 thoughtful email messages which I can never hope to respond to adequately). It’s time for application developers to start clamoring for the next generation of the Web now that the graphic designers got their wish list taken care of.

About the author.

In 2000 I co-founded Fog Creek Software, where we created lots of cool things like the FogBugz bug tracker, Trello, and Glitch. I also worked with Jeff Atwood to create Stack Overflow and served as CEO of Stack Overflow from 2010-2019. Today I serve as the chairman of the board for Stack Overflow, Glitch, and HASH.