Better copy for browser is "too old to work on this site"

Logging in to the SDMB (and also try.discourse.org) today, I’m greeted with the following message:

Unfortunately, your browser is too old to work on this site. Please upgrade your browser to view rich content, log in and reply.

However, I’m using the most recent version of my browser, SeaMonkey 2.53.13, which was released only four days ago. Discourse may have chosen not to support it, but it’s wrong to say that it’s “too old” to work with Discourse. Indeed, if I override the browser’s User-Agent string, I find that everything seems to work fine.

The problem seems to be inaccurate User-Agent sniffing on the part of Discourse. By default, SeaMonkey’s User-Agent string advertises Firefox compatibility:

Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 SeaMonkey/2.53.13

If I change the User-Agent string as follows to hide Firefox compatibility (via Edit->Preferences->Advanced->HTTP Networking->User Agent String->Identify as SeaMonkey), then SeaMonkey can once again visit Discourse sites without any obvious problems:

Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 SeaMonkey/2.53.13

I understand that Discourse may not wish to support browsers like SeaMonkey that are no longer mainstream, but it would be nice if those browers were not proactively blocked from accessing Discourse sites. And even if these browsers are proactively blocked, it would be nice if Discourse did not report a bogus reason for doing so.

Please improve the User-Agent sniffing so that it checks all the way to the end of the string before deciding whether or not the user agent is “too old”. (I suspect that it currently just looks for the names and versions of supported browsers, irrespective of their position within the User-Agent string.) After all, you’re not blocking browsers because they report an old version of Mozilla at the beginning of the string, so why should you block browsers because they report an old version of Firefox in the middle of the string?

If it’s for some reason undesirable or impractical to change the sniffing algorithm, then please change the behaviour upon detecting a supposedly incompatible user-agent: instead of (perhaps falsely) telling the user that their browser is “too old” and blocking further access, tell the user that their browser isn’t supported and link to the list of supported browsers, but give them an option of continuing anyway using their existing browser.

It most likely has to do with the way Discourse checks the user agent, imo, seamonkey shouldn’t have a Firefox header option if it’s going to show an older version of Firefox, which is not compatible with Discourse, most likely some bad planning on Seamonkeys side, not with Discourse.

2 Likes

Normally, Duecourse tries to detect unsupported versions via feature checking rather than UA sniffing.

A recent issue with the composer in older versions of Firefox required them to use UA sniffing because if you asked certain versions of Firefox they would happily (and technically accurately) say they supported the necessary functions when they are in fact buggy and don’t work properly.

The issue here is that Seamonkey is telling sites by default that it is compatible with a much older version of Firefox rather than the version it is actually compatible with.

Discourse is doing the right thing in this case.

4 Likes

I don’t think it’s that simple. A given version of SeaMonkey advertises compatibility with a certain version of Firefox because those two browser versions share the same core codebase. It can generally be assumed that that version of SeaMonkey can do, at minimum, everything that that version of Firefox can do. In addition to this core compatibility, a given version of SeaMonkey may also support certain features that later versions of Firefox support, though not necessarily all of them. So it would not be truthful (nor generally helpful) for SeaMonkey to explicitly advertise compatibility with those later versions.

In short, just because a new browser advertises compatibility with an old browser doesn’t mean that the new browser doesn’t support newer features as well. Again, most browsers today advertise compatibility with Mozilla/5.0 but that doesn’t mean they’re strictly limited to what that ancient engine can do.

Could you try opening the composer and see whether the Bold/Italic buttons work correctly? That’s the issue we had with older Firefox versions.

1 Like

One alternative to UA sniffing that matches a close (89 → 91) Firefox version is feature detecting window.visualViewport. Maybe we can switch to that? But then we still need to add a bypass for Safari 12.5 until January :weary:

Could you try opening the composer and see whether the Bold/Italic buttons work correctly? That’s the issue we had with older Firefox versions.

I can confirm that those buttons currently don’t work correctly for me in SeaMonkey 2.53.13, but they do in Firefox 100.0.2. I hadn’t tried using them before since I always just write directly in Markdown.

Now that you mention it, the Reply button also isn’t working in SeaMonkey here on meta, though it does work over on boards.straightdope.com (running on hosted-by-discourse.com).

1 Like

So the warning we have at the top is valid then?

2 Likes

Not as worded, no, because my browser is not “old” and I don’t need to “upgrade” it. The least you could do would be to change the wording to, “You appear to be using an unsupported browser. Please switch to a supported browser to view rich content, log in and reply.”

4 Likes

Yeah I am fine to update the copy, “old” is indeed casting judgement and even lynx is still actively developed.

2 Likes

@nbianca can you update the copy?

2 Likes

I updated the copy in this PR:

2 Likes

This topic was automatically closed after 4 days. New replies are no longer allowed.