I don’t think any of those standards do versions anymore. They just add modules, and then browsers implement them in whatever order.
They could list the individual features, but of course, now you’ve exposed a huge fingerprinting vector. And that wouldn’t even help for bugs, where the browsers would say they implement a feature, but then a bug would still require a browser-specific workaround. And you’d have to have access to it already via the HTTP request headers, because you might need to serve different content in response to it.
UA strings are not pretty, but it’s not a simple problem to solve.
User agent strings are an outdated discriminatory concept. Browsers should be specifying supported JavaScript, HTML, and CSS versions instead.
There is a JavaScript API to describe what features it supports
I don’t think any of those standards do versions anymore. They just add modules, and then browsers implement them in whatever order.
They could list the individual features, but of course, now you’ve exposed a huge fingerprinting vector. And that wouldn’t even help for bugs, where the browsers would say they implement a feature, but then a bug would still require a browser-specific workaround. And you’d have to have access to it already via the HTTP request headers, because you might need to serve different content in response to it.
UA strings are not pretty, but it’s not a simple problem to solve.