W3C home > Mailing lists > Public > public-html@w3.org > February 2014

RE: Navigator standard change proposal

From: Predrag Stojadinovic <predrags@nvidia.com>
Date: Wed, 12 Feb 2014 18:06:58 +0100
To: Adrian Roselli <Roselli@algonquinstudios.com>, "public-html@w3.org" <public-html@w3.org>
Message-ID: <7DC9167CA73B39468DFA1D07FF67A6A851D4FFD3C8@DEMAIL01.nvidia.com>
> o What is gained by not allowing web developers to detect the browser which their code is going to be executed in?

History suggests it will be mis-used. Some developers equate browsers and versions with certain capabilities, and so far evidence has shown that is repeatedly wrong. That's how we moved to feature detection instead of browser sniffing in general as an industry.

Heck, we've seen it pop up in the relatively new world of trying to detect mobile browsers by UA, and it fails consistently. [1]

Browsers have moved to supporting standards better than ever before, so coding for one browser is mostly unnecessary. Doing so can lead to the same mess we are seeing with cleaning up CSS browser-specific prefixes.

- So, it is up to the standard to prevent the users from misusing it? As I explained already, how the developers use the information provided is on them. My proposal deals with the simple fact that the Navigator object does not do what it is supposed to do, that is to provide the information about the browser and engine used.

Also, the point about trying to detect mobile browsers by UA is exactly the reason why the Navigator object should be improved, so that the UA does not have to be parsed.

Thank you for proving my point.

> o What is gained by protecting browsers that do not provide established standards?

I don't understand. There aren't established standards and no one is protecting anything. Unless you can point me to something that says otherwise (although IE has standards for its UA string [2], if that's your beef).

- My only “beef” is with the Navigator object standard errors. My other “beef” was with a Microfost employee coming into this discussion to promote his browsers agenda, instead of objectively addressing the issue. Either way, this is going off on a tangent…

And as above with [1], the [2] simply proves my point: UA sniffing is wrong.

And why did UA sniffing come about? Because the appName and appVersion were poorly defined and thus unusable.

So, the question is, should the Navigator object be properly defined to eliminate the need for UA sniffing or not?

> The Navigator object standard is, to put it mildly, a complete mess and really has to be fixed.

I agree on the first point and disagree on the second point. It should be made obsolete.

- I disagree with its removal as it is not up to anyone to hide valuable and useful information from developers.

Nowhere did I disagree that libraries like Modernizr and others should be used.

Nowhere did I argue that browser name/version is better than feature detection.

Of course feature detection is better than browser detection, in those cases.

But the feature detection issue is a Red herring here.

The feature detection is not the issue, the issue is the Navigator object, it’s purpose and definition.

The fact remains that many developers simply want to know the browser & version information and they should be allowed to know it, no matter how they want to use it, no matter what they want to use it for.

This is not and should not be our concern here.

> And as I stated in my original suggestion, the most sought after information is completely obfuscated and hidden for no security or any other objective reason.

What you see is the vestigial remnant of browsers needing to support poorly-coded sites that relied on UA detection. It's probably the best argument for why it should be made obsolete.

Poorly coded sites?
You do realize that there are issues with browsers that are simply not detectable with feature detection?

For example, the handling of the hash url redirect is one of them.

Another example is the Compatibility view and the fact that certain thing simply do not work as expected even if detected to be available.

But again, this is all a Red herring.

What developers decide to do with the information obtained is up to them.

And after all, the fact still remains that the Navigator object is very poorly defined and that this is a problem.

[1] http://blog.adrianroselli.com/2011/10/detecting-mobile-devices.html

[2] http://blogs.msdn.com/b/ieinternals/archive/2013/09/21/internet-explorer-11-user-agent-string-ua-string-sniffing-compatibility-with-gecko-webkit.aspx

NVIDIA GmbH, Wuerselen, Germany, Amtsgericht Aachen, HRB 8361
Managing Director: Karen Theresa Burns

This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
Received on Wednesday, 12 February 2014 17:07:34 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 29 October 2015 10:16:37 UTC