There has been a discussion recently (with my colleagues) on whether or not checks should be performed on client machines to check for specific software, within a web based platform, mainly because we have some requirements for certain user actions and to help diagnose certain issues we could log whether or not they actually had that software. On a users PC at an internal company this seems fairly straight forward as a lot of companies will have the same software on each machine, but this is on client machines outside of the company.
As it would be client side via a web interface (built using ASP.NET) I guess I'd use JavaScript to do the look-ups, however it occurs to me that there are potential pit-falls with this, namely:
A user may have similar software to what you say is a requirement e.g. Open Office instead of MS Office
A user may have installed the software in a different location to the default area
A huge variety of software types on multiple different operating systems (Windows, iOS, Android, etc).
Software versions can vary so that would need accounted for, especially as they can be installed in different areas (e.g. Visual Studio).
I also remember old discussions from many moons ago that checking for things like Browser version, or even Operating System, were relatively frowned upon and to me this seems semi-similar.
So my question is as follows:
Is there a best practice for, or against, checking for software on a client machine via a web browser? Be it for Adobe, or Word, or whatever other software a website may want a user to have. Ideally some reference material would be great.
To me it seems there are a lot of downsides, and it also puts a lot of onus on the webpage to ensure a user has the correct software (I’m a believer in the practice that a UI should have little to no working knowledge of its back end system or anything else).
edit just to point out, my question is not related to using JavaScript to do this, it is around best practice on whether you should attempt to do some form of check.