A lot of ink has already been spilled over the reasons why the infamous useragent string should not be used for browser parsing, and giving a message to the user that they have to upgrade their browser or the site will not work. The main arguments are:
- Browsers can spoof the string, so it is not trusthworthy.
- The string is a total mess with no good defined structure
- It's lazy to deny features or access to your site because you don't want to support/test on browsers other than chrome.
- You can't change people's behaviour, they will not upgrade because you say you.
Good. Now I'm in a situation where I might think the use of the useragent string is more legit, and I'd like some input. We're a small company that offers a software product. That product requires a web application to do certain stuff. We currently only support recent versions of the major browsers. That means IE9 or opera are not fully supported. When a user of our product logs in on our web application, they will get a warning (not a pop-up, just a message) saying their browser might not support all features. The reasons why I believe this warning does not suffer from the problems stated above and is in fact a "nice to have" warning right before you log in, is:
- In corporate environments, people usually stick to default non hacky settings. Spoofing a useragentstring has no gain, only pain? so the string will almost always be correct.
- Parsing of the useragent string is very easy if you want to know if its a recent version of a major browser. I don't need to check the device or special browsers.
- This is not a question of being lazy. We only have the time to develop the application for platform x and Y, and if you use another platform, we cannot sell our product to you. We want to be 100% confident that what you buy is usable and tested.
- Companies know the requirements of our product before they buy it.
Are there any serious flaws in my reasoning? Or maybe other reasons why using the useragent string will cause the message to appear (or not appear) inappropiately? Will this damage the credibility of our product if it is deemed "unprofessional" or "insulting" if we reject someone's browser?