QuirksMode.org history - 2004

Since I'm an historian originally, I keep track of what has happened on this site.

For newer history see the QuirksBlog archive.

17 July 2004


I'm on holiday until 16 August.

Right now I'm tired of creating Web sites, of discussing the creation of Web sites, even of writing about the discussion about creating Web sites. And I certainly don't care about the newest Mozilla, the newest Web standard, the latest interaction idea or the latest nifty script.

I need a holiday.

Therefore my business will close down for a month, and this site will close down for an equal amount of time. I will restart the lot of it in mid August.

I have not been very good in answering mail lately. Some people mail me important details that should appear somewhere on this site, but at this point in time I just don't care. If you want to mail me, go ahead, but don't be surprised if it takes me a month or more to reply.

On the other hand, I receive far too much mail, so maybe I won't reply at all. That's the risk you take. And, to be frank, most mails are quite frightfully boring so I'll happily trash them.

As to new content, I have some ideas, but they're not yet ready to be shown to the public. I'll restart thinking about them in mid August, too.

This site is not dead, it's only sleeping.

10 July 2004

Web applications, promise or hype?

The new buzz word is definitely "Web Applications". Unfortunately, recent publications on this topic are extremely confusing. Web applications require a massive deployment of JavaScript, but everybody skilfully pretends they don't. Besides, I haven't yet found out what Web applications are because no one has bothered to define them.

Read more in my Web Applications, promise or hype? essay.

13 June 2004

Form error messages

More form fun. I added the Form error messages script to show form validation error messages right next to the form field they apply to. This is clearly a much more user-friendly way of showing error messages than the alerts everybody seems to use.

10 June 2004

Web Forms 2.0

In his Web Forms 2.0 specification, Ian Hickson extends the HTML 4.01 Forms specification to allow Web authors to easily add validation requirements to form fields.

Hickson's specification bridges the gap between current practice in form validation and W3C's XForms specification that, though interesting in theory, has no connection at all to everyday reality. When, months ago, I saw an earlier version of Web Forms, I decided that this is the workable, useful specification I've been looking for to help me make the forms I create for my clients more user-friendly, especially in input validation.

Nonetheless, I feel that the current draft isn't yet quite usable in today's scripting environment, which is why I wrote a page with notes and comments. I hope they will contribute towards making Web Forms a better specification that allows us to solve numerous form-related problems with today's technology.

29 May 2004 - later

Mozilla 1.6, Safari 1.2 and Opera 7.50 - Event Compatibility

Updated the Event Compatibility table for the new releases. Opera and Safari have mended quite a few small bugs.

29 May 2004

New Links page

Busy day today. I merged all link pages into one new Links page and added my personal blogroll.

28 May 2004

Mozilla 1.6, Safari 1.2 and Opera 7.50 - Viewport Experiments

Retested the Viewport experiments in the latest releases. Safari has deteriorated markedly: it behaves incorrectly in the "DOM tree" experiment and crashes on the "Removing elements" experiment.

Mozilla has deteriorated in the area of html{overflow}.

Link colour update

Arranged the colours for the links in a p.intro, too. Also found the cure to the Explorer Windows bug:

:visited first, :hover second!

Let's try to remember this one. I seem to have heard this rule before, but evidently I also forgot it afterwards.

Any ideas for a meaning of VH?

Reactions to Minor Mozilla oddity

I received a few reactions to the Minor Mozilla oddity of two days ago. The reactions all say the same: Mozilla did this on purpose to avoid .test:hover to apply to anything else than a link. I find this whole line of "reasoning" dangerous nonsense.

First of all, if I use the .test:hover selectors, all browsers should assume that I know what I'm doing. Maybe I have excellent reasons for using exactly this selector.

Browsers should never try to second-guess me to "protect" me from myself. Sod off! I can think for myself, thank you very much.
This behaviour remains a bug (and I heard it's removed from the 1.8 beta currently being tested, so even the Project agrees with me).

Secondly, I get sick and tired of Mozilla apologists who try to explain away any Mozilla bug that happens to come to my attention, while heaping scorn upon Explorer for similar bugs.

I know that to some people Mozilla is a life-style, not a browser, but that inevitably means that they cannot objectively judge anything having to do with their darling favourite.
Fine by me, but please don't bother me with this kind of silly theorizing that makes no sense to anyone not addicted to daily shots of Mozilla orthodoxy.

Thanks for listening, I feel much better now.

26 May 2004

Link colours

I received a few complaints about striking through visited links, and I must admit they make some sense. Therefore I removed it again and created visited link colours for the three classes of links on my site (external sites, new page on this site, internal link in page).

Clicking on any of the links above makes all three switch to visited colours. I arrived at them by making the normal link colours 60% opaque over the background colour of the page itself, though on second thought I switched the blue ones to 70% to retain enough contrast.

When you hover over visited links they regain their unvisited colour. Don't know if that's useful or not, but let's try it. For some reason Explorer Windows refuses the a[.className]:visited:hover selector. Too Bad.

Minor Mozilla oddity

Mozilla 1.6 refuses to acknowledge the .test:hover selector in Quirks Mode, though it works fine in Strict Mode. See the :hover page for a small test.

24 May 2004

New Mac browsers

Today I finally bought Mac OS 10.3 . Although I've said several times that I refused to spend money to obtain a newer browser version, last week a site that I thought was Safari 1.2-safe turned out to contain a bug that I couldn't solve. Since my lack of Safari 1.2 actually hampered a project, buying the upgrade suddenly became important from a business perspective instead of merely from a research perspective.

Once I got rolling, I decided to check out all Mac browsers, even the obscure ones:

Safari 1.2 information is still lacking in quite a few compatibility tables. I will slowly continue my upgrading of the tables, but don't expect anything to change in a hurry.

I updated the opacity page, since Safari 1.2 turns out to be the only browser that actually supports the opacity declaration. I created a new test page for the Safari 1.2-only text-shadow declaration.

Finally, I changed my default style sheet somewhat. Visited links will henceforth be lined through. I also experimented with my pres and wrote some notes on an pre:hover {overflow: visible} experiment.

20 May 2004

Column: Separating behavior and presentation

Digital Web Magazine published my new column: Separating behavior and presentation. CSS and JavaScript have some overlap, for instance in dropdown menus or image replacement, where both technologies may serve. Which one is best?

I'll be out in the countryside from now until Sunday, so reactions will be answered only on Monday.

14 May 2004

Digital Web Magazine redesigned

After many months of planning and hard work, Digital Web Magazine relaunches with a totally new information architecture, interaction design, graphic design and client side code.
Congratulations to Nick Finck and his great DWM team. I'm happy and proud to be a member of this team.

10 May 2004

New portfolio items

Portfolio updated: Uitgeverij Van Oorschot, ExMachina, DELA forms, Apple Internet Developer.

7 May 2004

Stay tuned...

Stay tuned for an extra special announcement...

5 May 2004

Minimal CSS enhancement through JavaScript

When my Separating behavior and structure was published I hoped for some kind of reaction, but I wasn't quite sure what to expect. I certainly didn't expect Dave Shea to consider opening the CSS Zen Garden for JavaScript submissions. I'm very happy that one of the cutting edge developers in the CSS community takes JavaScript sufficiently serious to take such a step.

Laudable as this initiative is, it nonetheless requires us to define the precise role JavaScript can play in a mostly-CSS environment. My current solution is "minimal CSS Enhancement", by which I mean writing tiny, three- to six-line scripts that enhance a design by subtly tweaking one single CSS value, and leave the rest up to regular CSS declarations.

As an example I wrote the Three column stretching script, which can potentially solve one CSS problem. Unfortunately the script is not yet ready for prime time because of various and serious browser compatibility problems. Instead, I mean this script as an illustration of the principle of minimal CSS enhancement.

3 May 2004


Studied the background-position property. Mozilla and Opera refuse a combination of keywords and pixels/percentages, Safari has minor problems with such a combination.

1 May 2004

Mozilla 1.6 and Opera 7.50 - Viewport and W3C DOM CSS

Retested all Viewport properties in Mozilla 1.6 and Opera 7.50 . Bad news: Mozilla has seen fit to follow Explorer's lead in reallocating properties from document.body to document.documentElement in Strict Mode.
Fortunately Mozilla also supports a few ancient Netscape 4 properties that give the correct values regardless of rendering mode. This means it's not necessary to change your scripts.

W3C DOM CSS: no changes.

25 April 2004


Added white-space tests for pre-wrap and pre-line. Opera 7.50 supports the former, no browser supports the latter.

18 April 2004

ALA and JavaScript - five months later

Five months ago I mercilessly attacked A List Apart and Chris Heilmann for publishing and writing a bad JavaScript article.

Now it's time for an evaluation. Has the quality of ALA's JavaScript articles improved in these past months? Did my attack serve any purpose besides clearing my own mind? ALA and JavaScript - five months later.

15 April 2004

Column: Separating behavior and structure

Digital Web Magazine has just published my latest column: Separating behavior and structure. In it I call upon web developers to stop using inline event handlers. We should stop adding bits of JavaScript to XHTML files. They don't belong there.

This site doesn't practice perfect separation of behavior and structure, though. Most pages were written years ago and frankly I can't be bothered to change all 180 of them.

However, from now on I'll try to practice what I preach.

11 April 2004

Image replacement - take 2

My old image replacement script didn't work very well. Today I understood what I was doing wrong, and I rewrote the script. Now it works in all browsers, I have found not even one minor problem.

JavaScript Image Replacement.

8 April 2004

Donations now accepted

From time to time I receive mails from web developers who are so happy with this site that they'd like to do something in return. Obviously, linking to this site is a good start. A few, however, hinted that they'd be glad to make a donation.

Recently I opened a PayPal account, so that I'm now now technically equipped to receive donations. Therefore I added the Support this site page which contains PayPal links through which you can send me money.

I don't actually need any donations (yet). My freelance business goes sufficiently well to pay for all my bills and to have enough money on the side to live a good life. Nonetheless my constant stream of jobs could suddenly stop, in which case a slight reserve of money sent to me by happy readers of my site will be an asset.

I don't have the faintest idea if anyone will actually donate, and I wish to stress that making a donation is in no way required. If you don't have enough money, or if you think this site isn't worth your money, don't do anything.

On the other hand, if this site has saved you development time (hence money), you might consider sending a little bit of it my way. The more money this site makes for me, the more time I can spend on it.

6 April 2004

Mozilla 1.6 and Opera 7.50 - W3C DOM HTML

Upgraded the W3C DOM - HTML compatibility table to Mozilla 1.6 and Opera 7.50 . No changes.

5 April 2004

Mozilla 1.6 and Opera 7.50 - CSS

Upgraded the CSS contents and compatibility page to Mozilla 1.6 and Opera 7.50 . Highlights include:

4 April 2004

Mac back

Well, my Mac is back among the living, thanks to Jan Planken of Arbo-Advies.nl. The solution was so weird that I will file it for future reference.

As I said, my Mac refused to react at all when I tried to start it up. The little light on the Power button glowed when I pressed it, but dimmed when I released it, and otherwise nothing happened. We assumed a glitch in the power supply but couldn't open the box in which it is located.

Then Jan Planken scanned the motherboard and discovered a tiny, tiny button labeled "PMU Reset". Neither of us knew what PMU is, but in a spirit of scientific enquiry we pressed it, with power off, mind you. Then we reconnected the Mac, and behold, it started up fine.

Update: Readers have tried to explain what a PMU is, but they threw scores of obscure abbreviations at me (PRAM, APM/ACPI, etc.) and I don't have the foggiest notion what they're talking about. Let's keep it at "something technical".
And please don't mail me about this issue, I'm just not interested in hardware.

Jan's G4, which is newer than mine, doesn't have this button, but it does have an official Reset button. Apparently this tiny button is my Reset. But that makes no sense, for pressing a Reset button with power off shouldn't do anything.

I suspect that the tiny button has a function similar to a switch I have in my electricity system for which I don't know the English name (my dictionary doesn't have an entry for Dutch "aardlekschakelaar"). Its purpose is to protect my wiring from excesses of voltage by switching off when necessary. Simply switching it back on restores power, and the same thing happened in my Mac.

Update: The English word is probably Circuit Breaker.

Or maybe this explanation is nonsense. I have very little engineering aptitude. In any case I can now work normally.

2 April 2004


Issue 1: My bathroom light switch is broken.

The light in my bathroom didn't function. I switched off the electricity so I could poke around in the switch and found that a 25 year old spring had broken. I don't have another spring, and I don't understand how this complicated switch works anyway.

My bathroom doesn't have any windows, of course. So now it's dark.

Issue 2: I blew up my Mac.

Then I realized I'd inadvertently switched off all my computers. When I restored power and pushed the appropriate buttons, all devices started up, except for the Mac. I'd blown it up.

It is my local web and file server, so that prior to writing this entry I had to download the entire QuirksMode.org to my Windows machine. The Mac also contains some project documents, and the local copies of my projects. Both my current projects are already online in a test environment, but nonetheless I don't have access to older copies and such.

Issue 3: My overall planning for the last month has failed.

This complicates my professional position, which was complicated to start with. I'm working on two projects whose majorness I underestimated side by side, and am finding out the hard way that I can't quite handle it.

I greatly like both clients, both for themselves and for their projects, and I want to keep both happy. For the past month I followed a middle course of tinkering now here, then there, that eventually led to rough edges on both projects because I didn't have enough time for either.

Last week I firmly resolved to finish the shorter project now, and then continue full blast on the longer one. I fondly imagined the shorter would cost me only two more days. Four days later ot's almost, but not quite, finished. "Not quite" in this context means I've got to pull a lot of extra work during the weekend.

Putting the other project on hold, and keeping it on hold far longer than anticipated, makes me feel pretty bad, too.

Issue 4: I don't have money.

Working during the weekend has one advantage, though. I don't have to spend money on luxuries like pubs or dinners, which is a good thing because the grand combined total of all my bank accounts is € 51.68. Although in projected income April 2004 is one of my best months ever, the money isn't actually there yet, and is unlikely to arrive in lavish amounts until the last week of the month.

I can borrow something here and there, I won't die of hunger. But paying for something as expensive as, say, repairing a Mac, could be distinctly problematic in the near future.

Issue 5: I'm not being published.

It'd help if I could publish a new column and bask in the attention some remarks and links would give me. Besides, the coming column is an important one that took a long time to write. Unfortunately, though I submitted it weeks ago, it won't be published for a while more.

Of course I don't blame Nick Finck and his great Digital Web Magazine team. I'm very well aware of their strict editorial policy to publish all received articles in order of submission. Nonetheless this perfectly understandable lack of publication deepens my sad mood.

Issue 6: JavaScript isn't being taken seriously.

The more so since this column starts addressing the role of JavaScript in modern web development, which is consistently underestimated even by cutting edge web developers.

When Dave Shea remarked that Explorer's CSS support might leave it seriously behind times, and its users with it, I suggested that he had left JavaScript out of the equation. After he replied and I insisted, there came one of those odd silences that I can't explain.

Is it a coincidence, do people just have other things on their minds than a minor discussion? Or did my words provoke a reaction, positive or negative, that was so strong there were no words? Or did I suggest something outside the mental horizon of the participants and thus broke up an old-boys discussion all set up to follow the same old boring lines?

I could write an angry or sarcastic piece about it now, but I think I'll create a more balanced one later, when I can place this curious incident in its context. Maybe I'm reading too much in it.

Issue 7: The usual suspects.

Is it any wonder that I'm tired?

30 March 2004

Mozilla 1.6 and Opera 7.50 - W3C DOM Core

As the absence of news suggests, I have been quite busy this month. I'm working on two concurrent large projects. Fortunately they are both interesting, and I'll certainly add a few new goodies I've written to this site. That'll have to wait, though.

More than a month ago I promised to start upgrading my tables to Mozilla 1.6 and Opera 7.50. Today I can finally present the retested W3C DOM Core Compatibility Table. Highlights include:

3 March 2004

Safari 1.2

As I said before, I don't have the money to buy the Mac OS X upgrade necessary for upgrading Safari. However, reader Mark 'Tarquin' Wilton-Jones was so kind as to test the W3C DOM Compatibility Tables (Core, HTML, CSS, Events) and the CSS Table of Contents in Safari 1.2.

Therefore, thanks to him, my site now offers some Safari 1.2 information.

I'll gladly receive Safari 1.2 information about the other compatibility tables on this site, but please realize that I'm only looking for complete retests, meaning you should perform every single test a compatibility table links to.

Besides, I want to receive a simple list of test results, without extra links to other documentation, or any sort of extra information. I don't have the time to look into documentation, opinions and suggestions, so I ignore any mail that isn't a simple list.

Mark sent me a list like this:

:empty works properly

display: inline-block is supported

outline works properly

empty-cells works

border-collapse works


That's how I want to receive browser information.

25 February 2004

Blatant copy

I've often heard that imitation is the sincerest form of flattery. If so, I run the risk of being flattered to death by the Cadman & Remmer Orthodontists website.

I tried to contact them with some polite questions about their website and its resemblance to mine, but unfortunately their contact form, unlike mine, turns out to lack a Submit button.

For the moment I don't hold Dr. Kirby Cadman and Dr. Ross Remmer, orthodontists, responsible for this blatant copy; instead I assume that whoever they paid to create their website didn't have the inclination or the technical knowledge to produce something original, or indeed to add Submit buttons to contact forms, or to remove the script that calls my browser detect.

21 March update: The copycat contacted me and offered his apologies. He changed the site so that it doesn't use my entire QuirksMode interface any more.

Issue closed.

New browsers

I finally downloaded and installed Mozilla 1.6 and Opera 7.50 . The new Opera version is still a beta, but I'm tired of waiting. I'm going to slowly re-test everything on this site in these new versions, but that'll take quite a while. At the moment I don't have as much time as I'd like, and this is not liable to change in the near future.

I will not treat the new Safari 1.2 at the same time, since installing it requires me to buy the latest Mac OS X version, for which I don't have the money.
Incidentally, it's strange that when Microsoft announced the new Explorer 7 would be tied to the new OS every web developer in the world cried Shame, but when Apple does the same everyone is silent.

No free browser, no free information.

19 February 2004

Accessibility and usability

New Keep it Simple column: Accessibility and usability. How to maintain a proper balance between the two. I use the navigation of this site as a test case.

18 February 2004

Frequently Asked Questions

Added a Frequently Asked Questions page. I deliberately don't use the common abbreviation for such a page, since I feel that people won't notice it. The "Frequently Asked Questions" label commands much more attention.

13 February 2004

Conditional comments

An alert reader pointed out that conditional comments don't work correctly when you have multiple Explorers installed on one computer.

I took this opportunity to declare the use of conditional comments safe. I wrote a new page about them and I implemented one in the top frame of my site, which has long suffered from an Explorer Windows-only CSS bug.

9 February 2004

Mozilla plays its silly tricks yet again

For the 3,475,889th time in recorded history, the Mozilla Project has changed the name of its browser. Firebird clearly isn't an appropriate name for a browser, and it took the Project only a year to notice. To make up for lost time, its new name is even less appropriate.

The previous round of naming nonsense caused me to write some sarcastic remarks. Please read them, or my subsequent notes, again, but substitute Firefox for Firebird.

The fox is reputedly a cunning animal, and clearly the Project wanted this to rub off on its browser. Unfortunately the sympathetic magic failed. I am not really convinced of the existence of common sense, let alone cunning, in the marketing department (what else is new?): Firefox turns out to be the nickname of a cute but endangered panda species. Brand values, anyone?

The Project has published a Brand Name FAQ, and thus shows it recognizes the need to at least explain this latest name change:

The official name is Mozilla Firefox. We will often shorten that to Firefox.

Now what is the bloody name of the bloody browser?!

If the name is Mozilla, Firefox is unnecessary. If it isn't, don't mention Mozilla any more. It'll only confuse people.

Besides, the stated reasons for changing the name all over again add up to "We didn't do our homework last time". Homework, done or otherwise, which would have been entirely unnecessary if the browser had just kept its ancient name of power and lore.

26 January 2004 - later


The Web edition of the Singapore newspaper The Straits Times published an article Mozilla's back, which includes short interviews with Charles Upsdell and me.

26 January 2004

Minor CSS notes

box-sizing turns out not to work when combined with min- or max-width or -height.

Recently it has been discovered that you can add JavaScript to CSS files, and it will be executed in Explorer. I give my reasons not to use this technique.

16 January 2004

The behavior layer

New Keep it Simple column: The behavior layer. In this column I give some general rules for creating a modern, simple JavaScript behavior layer on top of an XHTML structure layer and next to a CSS presentation layer.

9 January 2004

Explorer Win, td widths and colspans

A brand new obscure CSS bug for your pleasure: When giving a TD a width, Explorer Windows maintains this width for the content of the TD, even when the TD has a colspan.

And another Explorer Windows bug: Setting dynamic options from a popup window may crash this browser.

8 January 2004

No more JavaScript News

My JavaScript News experiment has turned out to be short-lived. I got too few worthwhile submissions, and besides I discovered that I'm fundamentally not interested in gathering and displaying news (which, incidentally, is one of the reasons I don't have a blog). I'd rather create news myself by writing interesting scripts, so that's what I'm going to concentrate on.


See the older history.