This is a short rant that was originally part of my HTML forms write-up , but that I took out, because it became too long. I haven't been writing unobtrusive javascript for at least a decade, and perhaps that was a mistake, but it was also inevitable. In my own defense: it seems HTML is actually quite incoherent... Yup, I just wrote that. I mean, you have tags that denote text levels, similar to those used in text processing software, like paragraph , header , blockquote and (later on) the HTML5 semantic tag set . You also have tags that denote some concrete representational blocks that can be considered part of the document flow, like img and table , or more generic tags that can be used to manipulate document flow, like div or span . The hyperlink is the VIP of the web, and a different beast altogether. Then there's the form, with its controls, which isn't representational at all, but primarily functional . I think the distinction between representa...