WebAIM Blog

History of the browser user-agent string

September 3, 2008

In the beginning there was NCSA Mosaic, and Mosaic called itself NCSA_Mosaic/2.0 (Windows 3.1), and Mosaic displayed pictures along with text, and there was much rejoicing.

And behold, then came a new web browser known as “Mozilla”, being short for “Mosaic Killer,” but Mosaic was not amused, so the public name was changed to Netscape, and Netscape called itself Mozilla/1.0 (Win3.1), and there was more rejoicing. And Netscape supported frames, and frames became popular among the people, but Mosaic did not support frames, and so came “user agent sniffing” and to “Mozilla” webmasters sent frames, but to other browsers they sent not frames.

And Netscape said, let us make fun of Microsoft and refer to Windows as “poorly debugged device drivers,” and Microsoft was angry. And so Microsoft made their own web browser, which they called Internet Explorer, hoping for it to be a “Netscape Killer”. And Internet Explorer supported frames, and yet was not Mozilla, and so was not given frames. And Microsoft grew impatient, and did not wish to wait for webmasters to learn of IE and begin to send it frames, and so Internet Explorer declared that it was “Mozilla compatible” and began to impersonate Netscape, and called itself Mozilla/1.22 (compatible; MSIE 2.0; Windows 95), and Internet Explorer received frames, and all of Microsoft was happy, but webmasters were confused.

And Microsoft sold IE with Windows, and made it better than Netscape, and the first browser war raged upon the face of the land. And behold, Netscape was killed, and there was much rejoicing at Microsoft. But Netscape was reborn as Mozilla, and Mozilla built Gecko, and called itself Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1) Gecko/20020826, and Gecko was the rendering engine, and Gecko was good. And Mozilla became Firefox, and called itself Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0, and Firefox was very good. And Gecko began to multiply, and other browsers were born that used its code, and they called themselves Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 the one, and Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0 another, each pretending to be Mozilla, and all of them powered by Gecko.

And Gecko was good, and IE was not, and sniffing was reborn, and Gecko was given good web code, and other browsers were not. And the followers of Linux were much sorrowed, because they had built Konqueror, whose engine was KHTML, which they thought was as good as Gecko, but it was not Gecko, and so was not given the good pages, and so Konquerer began to pretend to be “like Gecko” to get the good pages, and called itself Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko) and there was much confusion.

Then cometh Opera and said, “surely we should allow our users to decide which browser we should impersonate,” and so Opera created a menu item, and Opera called itself Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51, or Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51, or Opera/9.51 (Windows NT 5.1; U; en) depending on which option the user selected.

And Apple built Safari, and used KHTML, but added many features, and forked the project, and called it WebKit, but wanted pages written for KHTML, and so Safari called itself Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, and it got worse.

And Microsoft feared Firefox greatly, and Internet Explorer returned, and called itself Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) and it rendered good code, but only if webmasters commanded it to do so.

And then Google built Chrome, and Chrome used Webkit, and it was like Safari, and wanted pages built for Safari, and so pretended to be Safari. And thus Chrome used WebKit, and pretended to be Safari, and WebKit pretended to be KHTML, and KHTML pretended to be Gecko, and all browsers pretended to be Mozilla, and Chrome called itself Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13, and the user agent string was a complete mess, and near useless, and everyone pretended to be everyone else, and confusion abounded.

132 Responses to “History of the browser user-agent string”

  1. Natalie Says:

    1this is Hilarious!! Thanks

  2. Yura Says:

    ROFLMAO. Absolutely brilliant!

  3. Gemma Says:

    Is that Genesis by way of Monty Python? It’s just great. Thank you; I’m glad the Web world can Google Chrome with humour :)

  4. Boricevich Says:

    BRAVO, BRAVO!!!!!!

  5. Joshue O Connor Says:

    lol, good stuff. I await more as the saga continues, will Chrome smote Mozilla, or will Mozilla bruise the heel of Chrome and crush each other with enmity?

  6. operagal Says:

    …and so it is written!

    good stuff there. This is my all-time favorite line:
    And Microsoft feared Firefox greatly, and Internet Explorer returned, and called itself Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) and it rendered good code, but only if webmasters commanded it to do so.

    thank you for this.

  7. permial Says:

    I’ve been a contributor (to the mozilla project) for over 15 years.

    All I can say is WOW!!! Our new prophet for platypus is in the house (just kidding). But, dude, you hit it on the head and made if fun. I’d pop some code here but it wouldn’t be published if I did. Major attaboy for you. Please continue to write and publish. Add me to anything fun that you do.

  8. permial Says:

    One note: If I have to support many more browsers:

    The CPU said to the OS, one is good, two is better, but give it a rest already!

  9. Mubbashir Says:

    Thanks Aaron, This is simply hilarious..

  10. ksmith Says:

    Amen.

  11. junglist313 Says:

    Here good sir, take all of thy internets, I am not worthy of their stead, for you on this glorious day have vanquished the haze and brought forth the light.

  12. Julia Says:

    Amazing! Imagine Rowan Atkinson performing a sketch with this text. Like this one: http://www.youtube.com/watch?v=fTzXJMU1sLc

    I would love to hear it:)

  13. Anthony Cargile Says:

    LMFAO!!! what a bad history I am linking to this

  14. Fosnez Says:

    This needs an intro like:

    From the Book of Mozilla 31:1

  15. Scott Says:

    Very witty and educational.

    I was going to bookmark this to my delicious account, but alas, I am rendering your page with Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 which lacks delicious extension support.

  16. Ryan Smith Says:

    Classic.

    Easily the best thing I have read all day.

  17. Alex Says:

    You, sir, made my day. Great article! Thanks for the entertainment and good historical info.

  18. Kalyan Says:

    Very nice post, very funny.

  19. nevermore781 Says:

    ROFL…you forgot Lynx browser strings though :P Seriously, this is funny and some good info.

  20. Jiffy lube Says:

    Wow dude, FireFox 3 rocks. best browser of ALL time

    Jiff
    http://www.anonymize.us.tc

  21. Saulo Says:

    Thanks for the entertaining, great read :)

  22. Joe Says:

    I love it. Please forgive one small quibble–Microsoft did not create its own web browser. It bought a browser created @ the University of Illinois.
    http://www.nndb.com/people/442/000022376/
    It is much the same story as Microsoft buying the initial version of DOS which it turned around and licensed to IBM.

  23. bob Says:

    Easily the best thing I’ve read since Fake Steve was laid to rest. Conceived, no doubt, in frustration but executed with brilliance.

    Thanks so much.

  24. Steve Firth Says:

    If all history was written thusly, there would indeed be much rejoicing.

  25. Noses Says:

    And yea though the Mobile Device was borne down from the mountain and it too had a host of UAProfs and darkness descended across the land as though a great plague of frogs hath sprung forth of the Sky. ;) Thus winketh tha Lord, and he saideth “Thou Shalt Make It WAP Compatible” and he gave unto Moses the many MIME-types ——

  26. sabat Says:

    It did not stand for Mosaic Killer. It was just a play on Mosaic vs. Godzilla. Where did you get the ‘killer’ idea? It just sounded right to you and so you presumed it was fact?

  27. Blues_Time Says:

    Hilarious and sadly true!

    This is probably the story of many other industries, read the story of VHS vs Beta, HD-DVD vs Blu-ray and so on.

    Does this kind of war contribute in advancing in technologies, and good to us (users)?

    Any way your story was informative and fun.

    Keep on writing Aaron …

  28. Squozen Says:

    Sterling! Laughed out loud.

  29. Steve Says:

    Fun article! Just a couple of things:

    The first version of the commercial browser was Mosaic Netscape, by Mosaic Communications, later renamed “Netscape Navigator” and Netscape, respectively.

    Also, the original IE was code licensed from Spyglass, and contained a message about NCSA in the About dialog.

  30. sabazilla Says:

    Sabat, type “mosaic killer” into Google and you’ll find a long list of references. As to whether or not the etymology is correct, probably only Jamie Zawinski could say.

  31. awesome guy Says:

    Sigh, waste of time

  32. JalanSutera.com™ Says:

    And God Blessed Google Chrome. Amen!

  33. Alex in Toronto, ON CANADA Says:

    Funny, but I expected an ending worthy of the original account of creation at least.

  34. Youfan Says:

    And I am totally lost… So I should pretend to be whom? :lol:

  35. Henri Sivonen Says:

    Safari was the first to put “KHTML” in the UA string. Konqueror 3.2 came after the first Safari beta and public source drop.

    See: http://www.useragentstring.com/pages/useragentstring.php?name=Konqueror

  36. Mattias Says:

    And soon Android and iPhone will pretend to be able to do what the other phone do, and that will be interesting.

  37. Smift Says:

    what about phoenix and firebird etc..?!

  38. Vassilis (Greece) Says:

    Excellent article. Extremely funny. Thanks

  39. Rob Says:

    Very funny. Thanks for a good laugh :)

  40. Dave Says:

    A superb history of the User Agent String. Thank you!

  41. WPJunkie Says:

    lol Thanks for the great morning laugh! Great article.

  42. Adam Says:

    Best. Browser article. Ever.

  43. Gloogle Chrome e a história do user-agent « DeCo Says:

    [...] que surge o Google Chrome e os desenvolvedores se perguntam “mais um?”. Leia o artigo History of the browser user-agent string e descubra um pouco da história dessa palhaçada [...]

  44. Brian King Says:

    The only conclusion I can reach from this is that all browsers want to be Mozilla (Firefox), even before it existed!

  45. Great (and funny) insight on browsers’ user agent string « nocivus Says:

    [...] http://www.webaim.org/blog/user-agent-string-history/ [...]

  46. glandium Says:

    You missed the newest Camino user-agent, which includes “Firefox”, now…

  47. mocona Says:

    History written in an easy to understand way. And very funny too… i love it… great job

  48. Karl Fogel Says:

    Oh thank you thank you thank you!

    My day is already not wasted now.

  49. Patrick Says:

    Imagine writing one of these for the mobile web… it would be a long and dark tome with many dragons…

  50. Michael Says:

    The lesson of this is, “as a web developer, test for the features you want rather than sniffing for a browser that you think might be the one that has them.”

    Problem solved by better code design.

  51. Bob Holness Says:

    If only they had included a list of feature codes rather than a browser identifier then all this would never have happened (actually, it probably would because different implementations behave differently, but the sentiment is what counts…).

  52. Shawn Says:

    “as a web developer, test for the features you want rather than sniffing for a browser that you think might be the one that has them.”
    If only browsers broadcast their features in the headers, instead of having to rely on JS sniffing…

  53. John W Says:

    I am just curious when the flood is coming to wash away all the impure

  54. htom Says:

    Through my laughter I’ve got to point out that Opera (with its user selectable User Agent strings) came along before Firefox. I think it was Opera 3.0 that had the selection, but that was long ago.

  55. Mo Says:

    And then there was Cello. Wait. There was never Cello, there is only Mosaic and it’s profane, inbred offspring.

  56. Ben Simo Says:

    Brilliant!

  57. Jacques Says:

    I miss the old Mosaic days. Everything was so simple.

  58. Shagburn Says:

    The days of Mosaic were better. My old motto: “If you can’t write your own web browser, you shouldn’t be on the internet”.

  59. Tales Says:

    hahahahaha mto bom! mto bom mesmo!

  60. Booyah Says:

    Funny stuff! The only thing missing is a few instances of ‘this begat that’…

  61. Ingo Says:

    Opera was MUCH earlier (6 years) than Firefox.

  62. zakopane Says:

    Funny

  63. GeroZ Says:

    Aaaaaaawesooooome! :)

  64. Xof Says:

    Bis …

  65. wullon Says:

    “based on a true story”

  66. Mark Says:

    Wuh! Funny! If only Chrome had the ability to run Firefox add-ons until they get their own, I’d use a lot more.

  67. Siegfried Says:

    Great! I can only hope that UA sniffing some day will be obsolete. But, yes, i know, paradise is lost since ages.

  68. links for 2008-09-10 « My Weblog Says:

    [...] WebAIM: Blog - History of the browser user-agent string (tags: mozilla humor) [...]

  69. Carl Says:

    And the story is probably not over… (unfortunately)

  70. Madcap Says:

    I know who I am!
    I’m the dude playin the dude disguised as another dude!

    http://www.imdb.com/title/tt0942385/

  71. Rob Speed Says:

    Hey, Camino (Camaro) came before Firefox (Firebird).

  72. Dave Says:

    Quote:
    “And Apple built Safari, and used KHTML, but added many features, and forked the project, and called it WebKit, but wanted pages written for KHTML, and so Safari called itself Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5, and it got worse.”

    I would change the phrase “…and it got worse” to the following:
    “…and, lo, there was much weeping and gnashing of teeth.”

    Otherwise, this is a fantastic post. Thanks for the laugh!

  73. Alex Muller Says:

    This is absolutely fantastic! :)

  74. Paul Says:

    In the distant harmonious future all browsers will unite as one and the User Agent will be Teh Intarwebnets Browser (1.0).

  75. torossian Says:

    If this is the New Testament of user-agent strings, shouldn’t the conclusion assume there will be a messiah which ushers in a 1000-year kingdom on the web?

    Like Jesuser-agent string that forgives the sins of Internet Explorer and redeems bad rendering engines.

  76. dfbills Says:

    Awesome!

  77. james Says:

    LOL!
    This is really funny.
    It seems that, there will be forever no ending problem when comes to cross browser compatible. All the browser seems to claim to have compatibility of all the rest, but there are still differences which make it a headache for developer.

    And, developer would have to check compatibility from the latest browser down to the core browser that those browser was trying to be compatible with… bah ..

  78. Andrew Says:

    Here endeth the lesson.

  79. adit Says:

    LoL briliant

    i wonder how user-agent next 10 years, maybe it will consume 1 paragraph :D

  80. Antoine Says:

    Ok, that’s all folks ^^

  81. Kad Says:

    Excellent!

  82. Bogdan Says:

    Such an humorous article! Thanks for sharing this “biblical revelation” Aaron!

  83. Jasper Says:

    Wat if we (webmaster and browser builders) would all agree that we start to use the user agent string for a supported browser feature list starting from today?

  84. Mark Alan Thomas Says:

    Actually, in the beginning Tim Berners-Lee created the web and the browser, and they were called “World Wide Web,” and they were good.

  85. sam Says:

    Educational and entertaining. I always wondered why all the UA strings had “Mozilla” in them and now I know.

    I will pass this on to my children, and them to theirs.

  86. мозила Says:

    Sorry…
    I have some problems with mozila.
    It doesn’t support continuation download after interruption, start from beginning.
    Is there some decision of this problem?

  87. links for 2008-09-11 « Polezny Messels Says:

    [...] WebAIM: Blog - History of the browser user-agent string Funny history of the user-agent string used by browsers. (tags: humor browser geek user-agent) [...]

  88. flashcrobat Says:

    cheers for that one. brightened up my day, and convinced one of our developers to get rid of his

  89. flashcrobat Says:

    sorry< prt II:
    user-agent-string.

  90. Luciano Says:

    Genius!!

  91. Oliver Smith Says:

    Let it not be forgotten that Mozilla was developed by members of the Mosaic team who lusted after mammon, and that the anger of Mosaic was the anger of Moses upon finding the Israelites worshipping the golden calf. Those who stayed true to Mosaic eventually joined the root of all mammon-related-evil when Microsoft had said “let there be IE” and lo and saw that it was bad, and said “OK, let there be IE 3.0 and let it be developed by those guys who made Mosaic” and lo, it was better than Mozilla and it did not partake of the blink.

  92. Steve Says:

    And yea the servers are known as towers, and they are located in Babylon…

  93. Steve Says:

    Verily I say unto you, this is the word. Know thy word as you seek to dwell in the world and you will not be led astray. For the path hath many versions. And versions begat acronyms. Place your trust in the word and rejoice.

  94. links for 2008-09-11 « draft13 Says:

    [...] WebAIM: Blog - History of the browser user-agent string (tags: useragent browser humor mozilla browsers standards user-agent) [...]

  95. Mario Says:

    Funniest thing I’ve read all week. XD

  96. Chuck Williams Says:

    Hey - if you’re using firefox - type “about:mozilla” in your address bar.

    Great stuff, man…truly. ROTFLMAO.

  97. user agent string « 1 divided by 0 Says:

    [...] browsers, mess, web History of the browser user-agent string « [...]

  98. Kamal Says:

    Well said, finally all want to be Mozilla, but with a different name.

    Nice article.

  99. Ferienwohnung Ostsee Nienhagen Says:

    NIC! Nice article!

  100. suit Says:

    very nice, thx for that much fun ;)

  101. Ngoc Van Says:

    Excellent and hilarious!

  102. Cybaer Says:

    And God^W Marc Andreessen said: If you use FRAMES, use NOFRAMES too - so there is no need for sniffing. But if you really have to know the browser, use window.opera, navigator.appName, navigator.product, navigator.vendor and other navigator attributes. And it was good.

    But people ate apples and used user-agent strings, so they were banished from web developers paradise …

  103. anonym Says:

    Very Good :-)

    The new versions of Opera include the rendering-engine as well:
    > Opera/9.60 (X11; Linux x86_64; U; en) Presto/2.1.1

    But it’s still rather short compared to other monster-strings.

  104. Steve Kinney Says:

    Very good - the history of web browsers in one brief entertaining essay. Bravo!

    However, I must nit pick a few small details…

    Microsoft did not make its own web browser. It licensed Mosaic’s code, and reworked it to make it look different from Mosaic. The beauty part: Under the terms of the agreement, Microsoft was to pay Mosaic’s owners a percentage of the income from sales of Internet Explorer. Microsoft knew, of course, that they would be “giving Internet Explorer away for free”, and they did include it with every operating system they have since distributed. Mosaic received no payment. The proud tradition of lying, cheating, and stealing as the foundation of success in the software and IT industries could be said to begin with this swindle.

    Whether Internet Explorer was better than Netscape is open to question. Would that be better in the sense of having more, and worse security defects, causing more real damage to users’ computer related assets? Better in the sense of breaking more web standards, having more rendering bugs, and trying harder to hijack open components like Java with Microsoft-only clones? Or just better in the sense of being dumped on the market “for free” with every copy of any Windows operating system, while Netscape still depended on income from sales to survive?

    Oh, and I seem to remember using Opera, and being very impressed, when it was still payware/adware, before Firefox was released.

    :o)

  105. Mark Aplet Says:

    This is hilarious! It is even better when you read it like your the narrator for a Dr. Suess book! Awesome!

  106. rgbeast Says:

    Thank you for the article. I made Russian translation: http://webew.ru/articles/1251.webew

  107. p fasholi Says:

    funny if your a virgling.

  108. sepercar Says:

    AGGRESS AutoPost Test

  109. Quand les navigateurs se réveillent « Discutons au comptoir du x86 bar Says:

    [...] patienter, si ce n’est déjà fait, lisez la folle histoire des User Agent Strings (via [...]

  110. Lightkey Says:

    I have a little correction as well, though I guess it is not an error but your ignorance in this matter. So here are two revised sentences:

    And Gecko began to multiply, and other browsers were born that used its code, and they called themselves /Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1/ the one, and /Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0/ another, each pretending to be Mozilla, and all of them powered by Gecko. And Mozilla became SeaMonkey, and called itself /Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0/, and SeaMonkey was very good.

  111. tonza Says:

    And here’s the UA string for OmniWeb 5.7 on the Mac, which also tries to be Safari:

    Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/523 (KHTML, like Gecko, Safari/523.10) [%@]

    where [%@] is replaced with “OmniWeb/v621.0.99313″ or some other version number, and is actually configurably OPTIONAL! Or… you can get OmniWeb to pose as any other browser you choose (you can enter the UA string by hand if you really want to!).

    Which in itself proves your little, remarkably funny story to be closer to the ultimate truth that the UA string (and the User-Agent HTTP header) is a redundant feature of the HTTP[S] protocol and should be ignored.

    Carry on laughing. Go on!

  112. Gökhan Says:

    E-X-C-E-L-L-E-N-T !

  113. useragent007 Says:

    Funny as hell ! will add ..

    And then Google ..
    #doing no evil
    .. built Chrome, and Chrome used Webkit …..

  114. Es war einmal… « Knorkebrots Zerbloggung Says:

    [...] Wollt ihr es sehen? ~Geheimnisvoller Link~ [...]

  115. Olga Ritchie Says:

    Digged you. The article deserves it definitely.

  116. Das Ding mit dem String | Blog 8 Says:

    [...] » Die nackte Wahrheit hinter dem String Autor: Ekkard Bäuerle · Datum: 12. September 2008 [...]

  117. Only failure makes us experts » Following standards. Says:

    [...] Just read about the user-agent. [...]

  118. Is There Any Dedicated CSS Hacks For Safari or Opera? - CSS-Tricks Says:

    [...] string. There are a lot of problems with this, for a great primer, read a quick history of the user-agent string. For one thing, it’s spoofable. For another, it often makes use of technologies like [...]

  119. And lo, the Internets are a confusing place - stillbreathing.co.uk - website design and development Says:

    [...] You may think it’s easy writing website. But just knowing what your sites are being viewed in is a nightmare: see this tale of old for details. [...]

  120. User agent, a bit of history with WebAIM | Your Site is Valid Blog Says:

    [...] a bit more about the story behind some of the user agent string today’s browser use read this article from WebAIM. Funny and [...]

  121. blog.desainz.de | Newsblog der Mainzer Design Fachschaften... Says:

    [...] würde sagen, das hier ist mit ein Grund, warum ich nicht so gerne Web [...]

  122. Is There Any Dedicated CSS Hacks For Safari or Opera? | Proba Says:

    [...] string. There are a lot of problems with this, for a great primer, read a quick history of the user-agent string. For one thing, it’s spoofable. For another, it often makes use of technologies like [...]

  123. Opera and Safari | Branding Studio Serghei Tiutiunic Says:

    [...] “user-agent” string. There are a lot of problems with this, for a great primer, read a quick history of the user-agent string. For one thing, it’s spoofable. For another, it often makes use of technologies like JavaScript, [...]

  124. mauzer Says:

    http://Sindygirl.narod.ru

  125. Serghei Says:

    great article FireFox the best ;)

  126. kurt Says:

    Maybe web designers should eventually stop browser sniffing? Just use XHTML 1.1 according to the W3C definition! Then it will render nicely in any browser supporting that standard.

    This entire mess only emerged because in HTML, unlike e.g. Direct3D, there is no proper way to enumerate all available features, such as “This browser supports frames”. Otherwise, web designers could have relied on feature listings rather than user agent strings implying certain sets of features.

    Since all recent browsers on the market now support nearly all important features in its entirety, it is time to get rid of user agent strings once and for all. They should be used for creating nice statistics rather than selecting what kind of code is assigned to the renderer. Choose your favorite W3C standard, then stick to it. Internet Explorer, Firefox, Opera, Chrome, Safari and Konqueror in their recent versions are all able to render XHTML 1.1 in a proper way. Don’t make compromises for legacy browsers such as IE6 or Netscape 6, or you will only find yourself trapped in the hell of user agent detection and you might end up supporting 10 different versions of your webpage, one for each exotic browser.

  127. Unsorted | Browser-Marktanteile und User-Agent Strings | macfidelity Says:

    [...] und daher muss man eigentlich noch auf User-Agent-Strings zu sprechen kommen. Besser wie hier kann man das Thema eigentlich nicht verwursten Share on Social [...]

  128. web.dev » Blog Archive » The History of the User Agent String Says:

    [...] The User Agent String - an internet phenomenon. Internet Explorer 7 claims to be “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)”, for example. Learn about the history of the user agent string in this brilliant post [...]

  129. History of the Browser User-Agent String at hocuspokus Says:

    [...] only done user-agent string sniffing once and I remember it gave me a headache… This post explains why it gave me a [...]

  130. P Says:

    Ah, the irony…

    This page renders fine on Firefox 3.0.3 with its default UA string, but not so with UA string “foo”. The CSS seems missing.

  131. Roger Wilco Says:

    [...] Brilliant. http://www.webaim.org/blog/user-agent-string-history/ [...]

  132. WyriHaximus Says:

    Thanks for the good laugh :D!

Leave a Reply

WebAIM is an initiative of:
Center for Persons with Disabilities (CPD) Utah State University