there will be bugs…

…in all browsers at all times.

The major browser vendors release new “support lists” for every new browser version/​upgrade. Problem is of course that there are often quite wide gaps between what they claim to “support” and what they actually “support complete and flawless”, and the more we challenge them the more of their countless bugs crawl up to the surface and bite.

The main problem for a web developer/designer is not that a browser has bugs, but to find ways around bugs in one browser without messing up anything in other browsers. Having to monitor behavior and rendering in latest versions of the major four browser engines while debugging one, is time-consuming.

browser bugs by design.

One type of rendering bugs, that can't really be classified as bugs in the normal sense since they are not in direct conflict with any standards, are the idiosyncrasies with which each layout engine seems to handle certain things its own way — different from all other.

It often looks like the people behind a layout engine are so happy with their own solutions and unwilling to even contemplate changing anything, that they simply sit down and wait for users to get used to all the irritating deviations. So, this is the kind of bugs that are likely to last for years, and even decades.

People are including “CSS reset” fixes for some of these idiosyncrasies, and code in certain ways to leverage browsers for more equal rendering. That way they can at least only blame themselves for most rendering problems when something does not turn out right. There still are many rendering differences that cannot be leveraged this way.

I declare what I want without “resetting” anything beforehand, which in most cases work fine. Not unusual that a layout engine throws in some “designed-in surprises” of its own and needs extra fixes though, and that is a bit irritating.

new vs. old browser versions.

For this web site, where everything is coded for the latest browser versions and what happens in older versions is not much of an issue – to me, the debugging process is manageable. What older browser versions do not support, quite often do not cause major problems in them.

Of course, there are disastrous exceptions. Some older browser versions claim support for parts of standards, but either they support older versions of standards, or they can't really live up to their claims. In both cases the result may look horrible.

A pity that people use older browser versions when new ones are available, but on this site I can only offer minimal assistance and workarounds for old and obsolete browsers. That will have to do for those who can't/won't upgrade to latest browser versions for whatever reason.

human bugs multiplies.

Whether it is my own “designer bugs” or the quite common “human induced browser bugs” that disturbs rendering in one or more browsers, they tend to multiply over time.

No doubt I can introduce at least as many “designer bugs” as browsers have bugs, so I don't start blaming browsers until all my own bugs are mapped and cleared. That takes time even for a simple layout like this, as the CSS behind it has become quite complex over time.

Once I have found the final, practical, workaround for a bug or non-standard behavior, I usually go back and clean up my act – remove all temporary code/solutions. Failing to perform such clean-up operations will soon lead to loads of superfluous and unreadable code, which in turn inevitably leads to more “designer bugs” because I can't sort out my own code.

a less buggy future?

One may hope for a less buggy future and better standards support across browser-land, but it will in my opinion be many years till we can relax and stop debugging browsers.

One reason is that web standards are expanded from time to time, and for every new property/value a browser adds support for, it will take time to ensure flawless operation.

Many web designers/coders will also in the future tend to rely on “expected behavior” and bugs in preferred browsers, without checking results across browser-land. So, “designer bugs” will always be with us.

Teaching web designers/coders to adhere to new web standards and quit using old and outdated methods, is probably the best way to go if we want a less buggy web future. I'll start with myself, as there are still many areas to improve on in what comes out of my design studio.

sincerely  georg; sign

Hageland 05.jun.2012
08.jun.2012 - light revision
03.aug.2012 - added points to bug lists in addendum
last rev: 03.aug.2012

side notes.

the main four in 2012…

The following four layout engines are powering nearly all browsers in use today.

  • Trident (Internet Explorer)
  • Gecko (Firefox & Seamonkey)
  • Webkit (Safari & Chrome)
  • Presto (Opera)

Although it can be difficult to target specific layout engines at times, an engine and its version can in most cases be detected as simply being “none of the others” based on its standards support and behavior.

browser targeting test

This little test-​image tells me nearly all I as web developer need to know about your browser, no matter what name it is released under.

The image itself is of course more like a joke, as I can't see what you see. But, the method behind it, that makes it possible to target specific layout engines to get around specific bugs, is put to serious use on this site.

cross-browser design, with hacks.

I do design for all major browsers, not for a limited few. Thus, the number and type of browser-​specific hacks used is minimal. Nothing much will change if I left out most hacks.

Most hacks are there to make IE8 and older IE versions behave and render somewhat intelligent, despite the fact that these old versions lack support for the standards used on this site. Other browsers are also hacked, but not for anything serious.

The single most problematic hack on this site at the moment, is the one that feeds regular dark headlines to IE8/9, as these versions don't support text-shadow. Once IE10 is released it may also pick up the IE8/9 hack, adding dark text-​shadows to dark text and complicate things. Time will tell.

new browsers arriving.

Apart from IE10 – which isn't ready yet but looks good on paper, other browser vendors release new versions with improved standards support and fewer bugs quite often. A quick check on Browser News now and then keeps me updated.

First impression of Firefox 14 is one of disappointment, as its text-​rendering reminds me of how it behaved 6 years ago. Can't they ever make that thing break words like other browsers do?

First impression of Opera 12 is good. Its rendering causes no problems on my sites, and tests show increased standards support and fewer bugs compared to the already quite good 11.64 version.

Google Chrome updates are released quite often, but otherwise not much that matters to me seems to be happening in the WebKit world.

Always good to check up on CSS support across browser-land before starting a new project. I for one do not spend much time on testing to keep track of where browsers are in their standards support compared to each other today, so having reasonably well updated overviews is good. advice upgrade advice upgrade navigation