The whole privacy-through-UA thing maybe gone too far though. Safari on M1 Mac identifies itself as Intel Safari. A web server knowing whether you use an older or newer Mac is not going hurt anyone, but the lack of it does hurt the UX of distributing Mac apps. For download size reasons you really want to give the user a build for the right CPU architecture, but due to this lie you have to either ship a fat app to Saf…
You can’t even tell iPadOS from macOS anymore, which was a major problem for us. Our mobile website is full of essentially “Do this in the mobile app” buttons that only show up on mobile devices. Suddenly we had to rewrite it all to be done with JS rather than server side because there’s no way to detect iPads server side anymore. Even then our JS test for iPad is essentially “Is a Mac” && “Supports Multitouch” which…
UA Gotta Be Kidding
61–70 of 93 posts
Re: UA Gotta Be Kidding
#62Earlier quoted context omitted.
> you really want to give the user a build for the right CPU architecture, but due to this lie you have to either ship a fat app to Safari users (much slower downloads), or give up and ask the user which to pick. But the computer they download the application on isn't necessarily the computer they'll run it on anyway, so you still need to give the user the option to pick.
Fine, but 99% of the time the user does want the locally compatible version, and this is especially true for naive users who don't understand the differences and need more help to make a good choice. So they benefit from a well-chosen prominent default.
In the most egregious case, companies that don’t even support your platform will throw up a message like: “we’re still working on [platform] support, sign up for our mailing list to get notified when we launch!” The only way to download anything is to fake your browser’s user agent.
This is bad. There should always be an override link.
Re: UA Gotta Be Kidding
#63I feel like the 90% use case could be fixed with a clean js feature detection API from browsers. Basically caniuse.com, but programmatically accessible. Any new feature must have a name, and sub-names for granularity. Any difference of implementation between major UAs must be given names. It does not need to be in headers, anyone wanting that could take the latency hit of a pre-detection js page. My 2cts.
If there were some way to assure that this data wouldn't be used against me in some way, I would happily embrace simple solutions such as this. Unfortunately, there is no shortage of hackers/companies/governments that will gobble this data up and attempt to extract as much money from it as possible, without even the slightest consideration as to the impact it will have on end-users.
Re: UA Gotta Be Kidding
#64Earlier quoted context omitted.
> Really there's nothing wrong with having a UA header but it gets abused because HTTP never had any standardized way to communicate feature sets. It should have had both. A way to identify specific apps for bug workarounds etc, and a way to communicate what versions and parts of the specs are implemented. The problems with this is that it's an adversarial market. It's not quite as bad as it used to be, now that ther…
> incentive for browser to lie about capabilities Such as?
Re: UA Gotta Be Kidding
#65Earlier quoted context omitted.
You can’t even tell iPadOS from macOS anymore, which was a major problem for us. Our mobile website is full of essentially “Do this in the mobile app” buttons that only show up on mobile devices. Suddenly we had to rewrite it all to be done with JS rather than server side because there’s no way to detect iPads server side anymore. Even then our JS test for iPad is essentially “Is a Mac” && “Supports Multitouch” which…
The ARM Macs are pretty decent at running iPad apps. I think there's less and less valid reasons to distinguish the two.
Re: UA Gotta Be Kidding
#66The whole privacy-through-UA thing maybe gone too far though. Safari on M1 Mac identifies itself as Intel Safari. A web server knowing whether you use an older or newer Mac is not going hurt anyone, but the lack of it does hurt the UX of distributing Mac apps. For download size reasons you really want to give the user a build for the right CPU architecture, but due to this lie you have to either ship a fat app to Saf…
You can’t even tell iPadOS from macOS anymore, which was a major problem for us. Our mobile website is full of essentially “Do this in the mobile app” buttons that only show up on mobile devices. Suddenly we had to rewrite it all to be done with JS rather than server side because there’s no way to detect iPads server side anymore. Even then our JS test for iPad is essentially “Is a Mac” && “Supports Multitouch” which…
Re: UA Gotta Be Kidding
#67Earlier quoted context omitted.
You can’t even tell iPadOS from macOS anymore, which was a major problem for us. Our mobile website is full of essentially “Do this in the mobile app” buttons that only show up on mobile devices. Suddenly we had to rewrite it all to be done with JS rather than server side because there’s no way to detect iPads server side anymore. Even then our JS test for iPad is essentially “Is a Mac” && “Supports Multitouch” which…
Why not show/hide those buttons with a window width css media query?
Re: UA Gotta Be Kidding
#68I feel like the 90% use case could be fixed with a clean js feature detection API from browsers. Basically caniuse.com, but programmatically accessible. Any new feature must have a name, and sub-names for granularity. Any difference of implementation between major UAs must be given names. It does not need to be in headers, anyone wanting that could take the latency hit of a pre-detection js page. My 2cts.
There is some portion of the population that has an aversion to providing additional metadata about their browser, as it will be incorporated into your "browser fingerprint", increasing the likelihood that your browser can be (effectively) uniquely identified[0]. If there were some way to assure that this data wouldn't be used against me in some way, I would happily embrace simple solutions such as this. Unfortunatel…
Basically, the same information is there, just in a more accessible way. And if you disable a feature in your browser's settings, isXAvailable() will now return false while UA checking says you still have it.
Re: UA Gotta Be Kidding
#69I feel like the 90% use case could be fixed with a clean js feature detection API from browsers. Basically caniuse.com, but programmatically accessible. Any new feature must have a name, and sub-names for granularity. Any difference of implementation between major UAs must be given names. It does not need to be in headers, anyone wanting that could take the latency hit of a pre-detection js page. My 2cts.
There is some portion of the population that has an aversion to providing additional metadata about their browser, as it will be incorporated into your "browser fingerprint", increasing the likelihood that your browser can be (effectively) uniquely identified[0]. If there were some way to assure that this data wouldn't be used against me in some way, I would happily embrace simple solutions such as this. Unfortunatel…
Re: UA Gotta Be Kidding
#70I feel like the 90% use case could be fixed with a clean js feature detection API from browsers. Basically caniuse.com, but programmatically accessible. Any new feature must have a name, and sub-names for granularity. Any difference of implementation between major UAs must be given names. It does not need to be in headers, anyone wanting that could take the latency hit of a pre-detection js page. My 2cts.