Firefox, bah humbug

commentary Firefox has been receiving a lot of press lately.

Firefox is free software  in the Stallman-sanctioned sense--released under a GPL licence and built atop technology developed for the Mozilla project. Everybody loves  Firefox. Not only is it a great browser, but it will make your teeth whiter and secure you a date with Carmen Electra.

Okay, perhaps I exaggerate, but on that note, I haven't seen anyone  criticise Firefox. To a certain extent, this is because it is the best alternative in a world dominated by Internet Explorer (cue Opera/Safari/Konqueror fans to go into a frothing rage). On the other hand, as I can personally attest, it is politically incorrect in the extreme to criticise anything stamped with the open source moniker.

In short, though Firefox is a good browser, political considerations have allowed it to escape some deserved criticism. Firefox supporters make some rather costly demands of Web sites, particularly given that it commands such a small, albeit growing, share of the browser marketplace. Recent feverish Firefox support pieces aside, I still think that ignoring IE's non-standard features will prove a large, and unnecessary, barrier to the success of the best alternative to Internet Explorer.

Support for Firefox
As a certain square-jawed actor might have said had he been abducted by aliens and forced to write software, "the experience of one programmer doesn't amount to a hill of beans in this crazy world." Even so, for a browser that touts its support for HTML standards, I was surprised to find that it had difficulty with standard HTML.

Check out this link under Internet Explorer, and then Firefox. I have created a Web page with a fixed position left, top and bottom sidebar that surrounds a scrollable area. All regions resize to completely fill the browser when its dimensions are changed.

To make this work, I have a table which lays out the basic position of the main sections (left bar, top bar, bottom bar, content). I've placed a div tag inside the "content" area of the table, setting its width and height to 100 percent and adding automatic scrollbars by setting the "overflow" CSS attribute to "auto."

None of this is rocket science. Some might object to the use of tables, which in CSS circles might seem so  1990s. I couldn't care less. Tables are easy to use, are immediately intuitive to this old HTML hand-coder, and most important, have existed since the early days of HTML. Regardless of your preferences, there is no reason they shouldn't  work.

In short, though Firefox is a good browser, political considerations have allowed it to escape some deserved criticism.

In IE, the page renders properly. In Firefox, the div tag refuses to size relative to its parent table (and doesn't provide scrollbars), which causes the bottom toolbar to disappear past the edge of the screen.

I managed a workaround by detecting the browser and using a fixed width for the table and div tags when the browser isn't Internet Explorer. This isn't ideal, as the page doesn't automatically adjust to fill the browser window, but it works. Even so, Opera still has problems, and the workaround makes no difference in Apple's Safari browser.

Differences in scripting environment offered a few hurdles. Client-side scripting has come a long way since 1998, when I was tasked with making a Javascript tree-view work in both IE and Netscape. Since Firefox is a successor of sorts to Netscape (well, at least spawn of Netscape), that's a good thing.

Still, there are a few gotchas. Why it would kill anyone to provide "document.all" support in scripts is beyond me, though document.GetElementByID() does the trick, if in a more verbose fashion.

In other areas, however, the replacement is not a match in terms of functionality. Like it or not, but showModalDialog is a better way to provide feature-rich user feedback windows than window.confirm (which Firefox supports, even though there is no public standard  for it). With showModalDialog, I can pop a window offering "Yes," "No," or "Cancel" buttons that requires a response before proceeding. With window.confirm, I have to craft all my questions as something to which "OK" or "Cancel" makes sense, never mind asking for three, four, or five state responses.

I'm not the only one who thinks so. Yahoo mail uses showModalDialog to generate prompts the look and feel of which matches that of the main page if the client is IE, but drops back to window.confirm for everyone else.

Unreasonable demands
A number of respondents to my last article claimed incompatibilities didn't matter, because if a site didn't provide decent Firefox support, the community would apply pressure to force them to change or else face lost customers and/or bad press.

Though that may well be the case, it's a bit like fans of a company which lays railroad tracks too narrow for most existing trains bullying engine manufacturers to alter their product to accommodate them. Would it not be so much cheaper, in the aggregate, if the tracks were the proper width in the first place?

Essentially, Firefox's (or Opera's, or Safari's) refusal to implement features found in the browser used by 95 percent of people who access the Internet means that they are insisting that hundreds of thousands of Web sites around the world tailor their sites to accommodate them. That seems an uphill battle, not to mention strange given that many who demand it are the same people who will be tasked with ensuring compatibility across all those browsers. I don't know about you, but navigating browser idiosyncrasies isn't my idea of a good time.

Besides, the resistance seems based on the mistaken notion that Web standards are a panacea for browser incompatibility. As noted in past articles, standards do not mean  that all implementations will have the same performance characteristics. My site now looks fine in Firefox (albeit fixed width), but looks less good in Opera, and doesn't work at all in Safari. Both tout themselves as champions of Web standards, yet fail the consistency test, proof positive that incompatibilities aren't dreamt up by executives bent on world domination, but are systemic to software development. As I've also said before, there are reasons why one company or product regularly manages to dominate a particular software market.

Implementing IE's non-standard features would make it easy for developers to target alternative browsers. It would enable developers to tap the reams of documentation which exist for Microsoft products. Ximian's Miguel de Icaza has noted that Mono (an open source implementation of .NET) benefit from Microsoft marketing and documentation efforts. Microsoft provides extremely good documentation, a fact noted by many developers less enamoured of Microsoft technology than myself.

Few have the money to create comparable documentation that is so centralised. Microsoft does. For a group whose biggest lament has been the lack of funds to market their products or pay for things that few volunteers want to do, the obvious  solution would seem to be to ride the wave formed by larger competitors.

Does it matter?
Firefox is certainly the best alternative browser I've come across. It makes Opera, its ally of convenience in a war against the common enemy Microsoft, seem downright lobotomised (cue Opera fans to burn me in effigy).

It must be admitted, though, that Firefox does have more support for "official" standards, as this link shows. I can't say that all the missing features are equally important, and some I doubt I'd use at all. On the other hand, development environments are a bit like toolboxes -- 15 percent of them you probably only use 0.2 percent of the time, but when that 0.2 percent comes up, it sure is great to have them.

So, as a middle ground, I'll say Microsoft should implement more of the standard CSS attributes it lacks. As my example from the start of this article shows, though, there are areas where Firefox (and Opera and Safari, as neither browser handles my example well) could improve its treatment of workhorse CSS elements (the stuff most developers use 99 percent of the time). So, both have work to do.

Some in forums I've visited defend Firefox quirks by attacking the quality of the code it attempts to render (though, as you'll note, my example was 100 percent valid HTML). In other words, "sloppy" code has no right to render properly.

Some in forums I've visited defend Firefox quirks by attacking the quality of the code it attempts to render.

That's not only counter-productive, but ignores the reason people write HTML code in the first place. HTML is supposed  to be easier to write than traditional user interfaces. HTML pages often have short lifespans, and thus HTML is supposed to be a forgiving environment which lends itself to rapid application development.

Most here would admit that IE does a better job of inferring proper behaviour from incomplete or improperly-used HTML. That's a good thing, and Firefox would do well to learn the same lesson.

Lastly, as others have noted, Firefox is probably a safer security bet than IE. Don't be lulled, however, into a false sense of complacency. Firefox certainly doesn't use Browser Helper Objects, a technology misused by "spyware" vendors to monitor where a user goes on the Internet (or, as I found on a friend's computer, hijack it to strange locations). On the other hand, it's not true that Firefox isn't extensible. Binary installers (the standard way Browser Helper Objects find their way onto a Windows system) can install Firefox extensions just as easily as they install IE extensions.

In other words, the reason Firefox doesn't face the threats IE faces is that they aren't the browser used by 95 percent of consumers. That's a bit like avoiding the threat of terrorism by moving to Pitcairn Island. It works for awhile, but if everyone has the same idea, your safety is compromised.

I like the fact that IE, and Microsoft, face real competition. What I don't like is the insistence that Web sites adapt to the upstart browser, not vice-versa. Remember, Microsoft has been down this path before, facing down a Netscape browser with a market share almost equal to that held by IE today.

They chose to make IE fit the code developers produced, however non-standard, so that compatibility with IE involved little extra work. I see no reason why we shouldn't expect the same of alternative browsers such as Firefox.

Advertisement

Talkback 16 comments

    RE: criticsm of Firefox's standards compliance: "height=100%" is not in the CSS spec, which is probably why you couldn't get Firefox to do it.Anonymous -- 11/11/04

    RE: criticsm of Firefox's standards compliance:
    "height=100%" is not in the CSS spec, which is probably why you couldn't get Firefox to do it.

    Thank you! You're the only person right now who's telling the whole truth about Firefox. I would use the bloody thing if it had a faster startup speed and rendered web pages correctly. But Firefox still garbles most news and blog sites, and that's just unAnonymous -- 11/11/04

    Thank you! You're the only person right now who's telling the whole truth about Firefox. I would use the bloody thing if it had a faster startup speed and rendered web pages correctly. But Firefox still garbles most news and blog sites, and that's just unacceptable.

    John Carroll states he has never seen any criticism of Firefox. Maybe he is not as interested as I am in observing Firefox development but I have seen a lot of criticism. When I see reviews like this, I can't help think it is only written to inAnonymous -- 11/11/04

    John Carroll states he has never seen any criticism of Firefox. Maybe he is not as interested as I am in observing Firefox development but I have seen a lot of criticism.

    When I see reviews like this, I can't help think it is only written to inflame and hopefully enhance Mr. Carroll's image.

    Although he might not like it, I find Firefox (overall) a vastly superior surfing experience. I accept that it does not do Windows Update and does not handle ASP-oriented web sites. I also accept its attempt to comply with standards. To say that every non-IE browser just has to comply with IE is fairly draconian. Actually, there are users out there who use non-Windows operating systems where IE is not an option. I use Windows, unix and even OS X so I am all for any attempt to comply with an open standard.

    And at the end of the day, IE has really been pretty static as far as a surfing experience goes. Sorry John, being polemical maybe good for your journalism career but it is not constructive.

    Ofcourse, since Firefox is GPL you *could* fix the inconsistancies yourself post a patch to the relevant mailing list. Do that with IE. Checkmate.Anonymous -- 11/11/04

    Ofcourse, since Firefox is GPL you *could* fix the inconsistancies yourself post a patch to the relevant mailing list.

    Do that with IE. Checkmate.

    > Check out this link under Internet Explorer, and > then Firefox. I have created a Web page with a > fixed position left, top and bottom sidebar that > surrounds a scrollable area. All regions resize to > completely Anonymous -- 11/11/04

    > Check out this link under Internet Explorer, and
    > then Firefox. I have created a Web page with a
    > fixed position left, top and bottom sidebar that
    > surrounds a scrollable area. All regions resize to
    > completely fill the browser when its dimensions
    > are changed.

    As (Non-)Bug 268134 points out (https://bugzilla.mozilla.org/show_bug.cgi?id=268134), your page is flawed. The table cell has
    no specified height, so the "ScrollRegion" expands to the entire page height without the use of scrollbars. A more detailed explaination of your problem is above. It's not a bug; it's a strict implementation of W3C standards.

    IE is infamous for supporting buggy and bad HTML/CSS code, and intepreting (or sometimes breaking) these standards in the loosest fashion possible. This was done on purpose to try (and succeed) in getting shotty webmasters to blame Netscape for problems with their own code. The old axiom of "Well, it works in IE, so it should work on your browser" is heard around the world, even as faulty a statement that it is.

    Their continued practice of supporting buggy code is continued for the sole purpose of keeping the competition down, and it has worked for years.

    Hey, garbage in, garbage out. Why should Firefox be any different?

    > Why it would kill anyone to provide
    > "document.all" support in scripts is beyond me,
    > though document.GetElementByID() does the trick,
    > if in a more verbose fashion.

    There's a very simple answer for that: document.all was NEVER PART OF THE STANDARDS! It was a creation by Microsoft, and it's mostly bloat because IE has to waste memory filling it up. The second trick does work because it's right there in the DOM standards. The Firefox coders have been very reluctant to port non-standard items, but it's very very rare, and it's solely because so many yahoos decided to use it for IE. (Hey, even FRAMEs was non-standard for a while, but who's to say that it was even a good idea?)

    Microsoft is part of the W3C group to implement these standards, so if they want it in the official standards so badly, they can do it through the proper channels. Otherwise, they should leave out the "innovation", and leave the standards-implementation to the pros. Given that it took them close to 10 years to (partly) implement CSS1/2 (yes, the standard is that old), Microsoft doesn't have a good track record of even implementing the already existing standards, must less adding new crap to their DOM.

    > A number of respondents to my last article
    > claimed incompatibilities didn’t matter, because
    > if a site didn’t provide decent Firefox support,
    > the community would apply pressure to force them
    > to change or else face lost customers and/or bad
    > press.

    That is certainly a warped way of saying "Web developers should stick to the standards."

    > Essentially, Firefox’s (or Opera’s, or Safari’s)
    > refusal to implement features found in the
    > browser used by 95 percent of people who access
    > the Internet means that they are insisting that
    > hundreds of thousands of Web sites around the
    > world tailor their sites to accommodate them.
    > That seems an uphill battle, not to mention
    > strange given that many who demand it are the
    > same people who will be tasked with ensuring
    > compatibility across all those browsers. I don’t
    > know about you, but navigating browser
    > idiosyncrasies isn’t my idea of a good time.

    Again, blame Microsoft. They are the guys in charge of breaking compatibility across browsers. Nobody cares that IE is used by 95% of the world. Being popular does not automatically make it the standard. It's on par with creating laws, with the lawmakers who created those laws breaking them and encouraging everybody else to break them.

    The standards are put in place to ensure compatibility acress browsers, not break them. That's why they are called S-T-A-N-D-A-R-D-S. Man, I just feel like I'm repeating myself over and over again...

    Ok so I am not an HTML programmer, merely a user but I have used IE, Mozilla, Firefox, Konqueror, and a handful of others besides. Having become accustomed to tabbed browsing, which is in just about everything else apart from IE, I find IE clumsy and itsAnonymous -- 12/11/04

    Ok so I am not an HTML programmer, merely a user but I have used IE, Mozilla, Firefox, Konqueror, and a handful of others besides. Having become accustomed to tabbed browsing, which is in just about everything else apart from IE, I find IE clumsy and its interface awkward. I use the tabs, the customisable icons etc. They are worthwhile.

    Yes it is true that there are sites which don't render or work well in 'other' browsers, for whatever reason but then there are some which I have found that actually (and not deliberately) render better in Firefox.

    Apart from that I find that printout from IE is often lousy and simply looses part of the page, usually the important text. In my opinion almost all the other browsers usually give better hard copy.

    Firefox is not perfect but overall in my opinion it is a better product than IE.

    If you take time to look there are some good shareware browsers that will give you tabs, pop-up blocking and other features and bolt on the top of the IE rendering engine. The point here is choice. Monopolies do not benefit consumers and never have. Moreover, they tend to stifle change and development. Most of the choice in software nowadays is as a result of the hard work by open source developers. If you choose to call them zealots, so be it !, but they are writing some very good programs and Firefox is a good example.

    So what if height="100%" isn't part of the spec? It obviously should be. Common sense, useability, and efficiency - the TRUE arbiters of good software - dictate that it be included. The same applies for: * Lack of CSS formatting oAnonymous -- 12/11/04

    So what if height="100%" isn't part of the spec? It obviously should be. Common sense, useability, and efficiency - the TRUE arbiters of good software - dictate that it be included.

    The same applies for:
    * Lack of CSS formatting options for lists
    * Lack of CSS true table-like div attributes
    * Psychosis in Standards World that people be able to turn off JavaScript (or images or whatever) and still enjoy exactly the same experience.

    Why impose this artificial purity on the internet? It works because it's anarchical. People who want purity can have it, and those who like it rough can enjoy that, too.

    The thing is you have only picked one example that works in IE and not in Firefox. I could name 100 that are the case the other way round, if you are a real world web developer then IE is slowing down the creation of standards compliant websites with theiAnonymous -- 12/11/04

    The thing is you have only picked one example that works in IE and not in Firefox. I could name 100 that are the case the other way round, if you are a real world web developer then IE is slowing down the creation of standards compliant websites with their poor lack of css support I can vouch for that. And as the previous comment states you aren't even using the standards properly yourself so how can you complain. I could write the duffest code that was 100 percent valid HTML but it doesn't make it right.

    Why should the web be the only place where coders get away with writing the worst code, if you have ever taken over a website that wasn't standards compliant (or written so it works in IE which is basically anything) then may be you would understand, otherwise keep living in a dream world.

    The reason your page displays differently in IE to other browsers, is that you are using a DTD that triggers "Quirks Mode" in most browsers, where they emulate the bugs from previous versions. Use a DTD that triggers "Standards Mode", Anonymous -- 12/11/04

    The reason your page displays differently in IE to other browsers, is that you are using a DTD that triggers "Quirks Mode" in most browsers, where they emulate the bugs from previous versions. Use a DTD that triggers "Standards Mode", and IE displays the page the same as all the other browsers do. E.g. http://www.clarkecomputers.com.au/bah-humbug.htm

    All I have done on that page is add the URL for the DTD (the second line in the source). I haven't touched the rest of it.

    This indicates that it is not the other browsers that have it wrong, but IE and your understanding of what the CSS you used should do.

    If IE displays a page the way you intend it, and no other browser does, chances are IE happens to be (incorrectly) interpreting your code the way you intended it, whereas the other browsers are actually doing what you tell them to.

    About your example page bah-humbug.htm, you say : "In IE, the page renders properly." Sorry, but this is FALSE : maybe IE does what you were expecting, but it is once more an IE NON-STANDARD-COMPLYING idiosyncrasy. The Firefox renderiAnonymous -- 12/11/04

    About your example page bah-humbug.htm, you say :
    "In IE, the page renders properly."
    Sorry, but this is FALSE : maybe IE does what you were expecting, but it is once more an IE NON-STANDARD-COMPLYING idiosyncrasy. The Firefox rendering is the proper one in that case.
    You could for instance have a look on the CSS2 standard §9.6.1. and note the comment : /* Required for percentage heights below */
    What does it mean ? Simply that your assumption that the BODY should have the height of the viewport is false (even if you had a height: 100% on the BODY).
    According to the specs height: 100% means: "give the element a height of 100% of the containing block's height." the top of your containing blocks hierarchy are the BODY and HTML elements (NOT the viewport).
    The natural height of the body and html elements is (should be) auto, which means: as much as it needs.
    So you may blame the CSS standard to be impractical, but please do not praise IE for its non-standard rendering or blame FireFox for following properly the published standard.
    Thank you.

    To Anoymous from Queanbeyan it's not the 'height:100%' line that causes Firefox to not display the page the same way as IE. There is no table height set, so Firefox assumes it's anonymous. To make it work simply add height=??? to the td tag and the site wAnonymous -- 14/11/04

    To Anoymous from Queanbeyan it's not the 'height:100%' line that causes Firefox to not display the page the same way as IE. There is no table height set, so Firefox assumes it's anonymous. To make it work simply add height=??? to the td tag and the site will display fine

    I think the author of this article is missing the point about these standards. We don't rally websites to get them to support Firefox, we rally to get them to support the w3s standards so that we (someday) might be able to code websites in css wAnonymous -- 17/11/04

    I think the author of this article is missing the point about these standards.

    We don't rally websites to get them to support Firefox, we rally to get them to support the w3s standards so that we (someday) might be able to code websites in css without having to worry about Internet Explorers shoddy code.

    Also, the author makes the point that Firefox supports some non-standard features found in Internet Explorer. Sadly he fails to consider that the Gecko devs felt that they needed these things because they are widly used and because it would hinder getting more market share not to include them.

    The point is, while it supports some non-standard features, it also does a great job at supporting the standards.

    The comments about IE being bigger than everything else, therefore all browsers should support what IE supports is EXACTLY the bullying tactic you described Firefox users are employing. IE is not the "Bubba" in the metaphorical browser prison, aAnonymous -- 17/11/04

    The comments about IE being bigger than everything else, therefore all browsers should support what IE supports is EXACTLY the bullying tactic you described Firefox users are employing. IE is not the "Bubba" in the metaphorical browser prison, and other browsers are not its "****".

    Not only is what you're saying hypocritical, it is a complete mockery of what the W3C stands for: Open Browser-Independant Standards. Sure Firefox might not render every page 100% correctly, neither does IE. I as a web-developer have seen just as many pages broken in IE and not in Safari or Firefox as the other way around. Microsoft's solution isn't to fix these, but to implement "new" and "better" support, making the other browsers seem lacking.

    I tested your experiement page os IE for Mac, and guess what: it's broken there too. IE is not exempt from all the scorn you are throwing at every other browser on the market. Just because it works on one browser does not mean it should work on all others. It's a fact of life. Get over it.

    Firefox *does* support document.all for sites that use it without checking for its existence. (See https://bugzilla.mozilla.org/show_bug.cgi?id=248549)Anonymous -- 24/11/04

    Firefox *does* support document.all for sites that use it without checking for its existence. (See https://bugzilla.mozilla.org/show_bug.cgi?id=248549)

    This "height:100%" think is bugging me as well, not because it doesn't work in Firefox, but because it does not work in Internet Explorer either! I am converting all my pages to use "standards compliance" rendering (because otherwAnonymous -- 30/11/04

    This "height:100%" think is bugging me as well, not because it doesn't work in Firefox, but because it does not work in Internet Explorer either!
    I am converting all my pages to use "standards compliance" rendering (because otherwise my pages come out bigger on Internet Explorer than every other Browser), and pages where I used height:100% are now all broken.
    I have to say that I think height:100% darn well should be a standard. It is a completely reasonable thing to want to do to resize content to fit the browser window, and without height:100% it is almost impossible, because it is very hard to find out how big the window actually is.
    I use DOM as far as possible, but if the DOM doesn't provide basic functionality like this what use is it?
    It should be easy to do things that will be most commonly required. Something like this should not require me to descend into abstruse Javascript.

    Use frames! It will work on all the browsers mentionned above. Long live the standards!Anonymous -- 17/12/04

    Use frames! It will work on all the browsers mentionned above. Long live the standards!

Add your opinion


Latest Videos

Blogs

  • Renai LeMay Datacentre disaster lessons
    As a system administrator, the health and status of your datacentre is at the forefront of your mind. But how often do you think about the needs beyond server status and bandwidth?
  • Array E-health too unsexy for COAG
    There will always be something more politically sexy than e-health for state governments, meaning the National E-Health Transition Authority's business case for a national electronic medical record might just sit on the shelf gathering dust forever.
  • Array TelstraUnClear
    Telstra's New Zealand arm TelstraClear is one strange company ...
  • More blogs »

Tags

Back to top

Featured