Backwards compatibility with older browsers

I help run a messageboard for people affected by a neurodegenerative disease that is powered by Discourse. I keep the software up to date by following the security list at Search · SECURITY · GitHub and updating whenever there is security issue. However this has the unintended side effect of locking out increasing number of users who have older machines.

It has locked out one user who is a carer for her husband and only had access to the messageboard through an iPad that no longer receives iOS/Safari updates and more recently another with an older Chromebook that cannot update Chrome to a version that is compatible. I understand having a policy of only supporting the latest versions of browsers but when devices made only a few years ago are no longer receiving updates but are otherwise fully functional prevent access to what is, for many, a vital lifeline it is extremely frustrating.

The header on the messageboard tells these users there is a lower feature version they can use but as the messageboard is login only (due to problems with privacy invasion we have had in the past) and the lower feature version does not allow logins this is not usable.

Ideally I suppose there would be a security update stream that did not cause old browsers to stop working or at least a warning when updating that certain browsers will stop working so I can warn users before I apply the update.

Here are some quotes from our users about it:

“I stay on there to support another wife via private messages- it is so distressing you’ll never know the havoc it causes… I seriously am …broken😢”

“Sorry I sound so mad…I don’t post since losing my husband 17 months ago but I still log on daily and am full of despair”

“I think I can access the message board at the local library but it very frustrating to have no access at home”

“I mean I can get into every other site and banks etc there’s no issue there and they constantly update”

“So, I have tried your suggestion of downloading the app and, unfortunately, it will not install. It states that it is not compatible with my iPad. No doubt this is due to the iOS version (again).”

“This is really frustrating! I can’t afford to replace my iPad and it is the only thing keeping me in touch with this community”

“the mb is a life line…they’ve snatched it away from me and I suspect many others”

13 Likes

This is pretty tragic. Unfortunately, Discourse development seems to be about always moving forwards, and a couple of times a year (it seems to me) there’s some kind of change which disenfranchises another wave of older devices or browsers.

You case might be one of those cases where using the stable version would help, a bit. But any kind of update policy leaves you vulnerable to the problem you see. And a policy of not updating leaves you vulnerable to running the older software.

I don’t see an answer, other than moving away from Discourse to some other software with a much more generous policy of supporting older devices and older browsers. I don’t know what that might be.

There’s also the likelihood of these older devices and browsers themselves being insecure. But that might matter little if they are used only as communication devices.

5 Likes

Is ot maybe possible to install a 3rdparty browser? On the ipad or Chromebook?

Found this for old ipad. You may also be able to install other browsers.

Download & install Google Chrome - iPhone & iPad - Google Chrome Help.

Here is a link for Chromebook that may help.

https://alvarotrigo.com/blog/chromebook-browsers/#:~:text=Yes.,enable%20Linux%20on%20your%20Chromebook.

But agreed it us unfortunate to not have proper backwards compatibility with older devices. Wonder if maybe a plugin could be made to address this with special use cases like yours.

1 Like

And yet those are Safaris, AFAIK. But anyway, those can’t bypass the test of Discourse because that result comes from iOS.

2 Likes

So install a 3rdparty browser like chrome or firefox and use it instead of Safari? No?

1 Like

Those aren’t real browsers with theirs engines. It can be describing like those are more just skins.

2 Likes

I don’t understand. My apologies are you saying Google Chrome or Firefix etc… are not the legit versions of those browsers on iOS? Just reskinned Safari browser?

1 Like

More like reskinned engine of Apple, but the end result is very much same. Apple is limiting its environment very hard.

2 Likes

That really is unfortunate then but with Apple not surprising. I recall Microsoft tried something similar back in Windows 95 by limiting 3rdparty browser performance(well maybe not quite the same) back during Netscape€Now known as Mozilla Firefox). MS was slapped hard for it in courts and by web developers.

1 Like

It wouldn’t be ideal. but could an idea like using some kind if Website browser be used as a go between? Kind of like how ppl use Tor?

As maybe a compatibility layer in this case?

1 Like

Apple require all browsers on iOS to use Apple WebKit.

I would guess that Discourse source could be adjusted to allow login yet still make it read only (since that appears to be required to prevent things appearing in the browser that it would not be able to handle).

4 Likes

Really too bad Apple has designs to force there customers to upgrade. Android can be a pain at times but there are options available.

Glad I never got sucked into i device eco system. And likely too much hassle for users in this case to try snd install a linux os on there aging devices. As Apple is not really that fully user friendly.

2 Likes

Well, the backward compatibility issue is quite often discussed and and is no go. Read only with limited functionality is only what Discourse offers when browsers/OS is passed end of life/support.

If someone can code such layer that’s fine but I’m totally sure CDCK doesn’t support it. It is a bit like jail breaking on Apple’s mobiles :wink:

2 Likes

@codev what are the minimum browser requirements for “full featured,” currently? (Sorry I’m not sure where this is posted/published)

2 Likes

Well, now that we have the official ‘bag on Apple’ and how ‘they’re the worst’ portion of the thread illustrated, I’m curious about what the policy is for supported backward compatibility. Most if not all product teams publish their policy for backward compatibility, and some are more generous than others. Fortunately technology moves forward and unfortunately this puts an expiration date for useful life on most technology.

Regarding the issue @codev raised, I’m also curious as I was about to deploy Discourse however I have the possibility of some users with aging devices. As @Ed_S hinted, it may be something I need to consider, for looking elsewhere.

Personally I use some technology that is more than 5 years old and I have family with devices which are a bit older. I don’t think I’m alone in that. To Apple’s credit, their hardware is solid (which means it typically just continues working well beyond the software which is supported), and generally they do provide a generous coverage for backward compatibility.

Software and security frameworks move forward constantly, and ever more so these days, requiring upgrades as so much is interdependent. I buy the argument of upgrading for security, however no longer supporting a particular version of something because it is no longer “shipping” doesn’t mean there are not users who still use the technology.

If someone is going to argue, “hey, I need to support clients with non-SSL browsers from 1993,” I agree that’s absurd. However if we’re saying you only can use something that was released as N-1 (say, only shipped in the last 18 months), well not everyone is upgrading every 6 months.

Firefox for example, provides ESR (extended supported releases) for older platforms. That’s great for Firefox and folks who need ESR. Though it becomes moot if vendors, e.g. Discourse, won’t support something because of a silly browser version number not matching their predefined / hardcoded minimum version string. If there are required frameworks, that’s one thing – if it’s simply “version 1 does not equal 2,” but otherwise it works then that’s really unfortunate. I’ve been seeing more and more of this lack of interest in supporting earlier things. It’s a disappointing trend. Engineers today born in the late 80s and through the 90s have come up in a culture where “one always must upgrade.”

I know I’ve taken tangents here, thanks for the artistic license. I don’t want to lose sight of @codev’s original query. It’s important, specially where Discourse provides such meaningful purpose in communication and community.

2 Likes

Probably you can code a very dumbed down version of ui that allows log in, DMs and probably replying via discourse API and serve that from a different subdomain (or from the same finding, with some clever nginx rules?)

This way you still have very basic functionality for old devices and stay up to date with the discourse background.

2 Likes

Ok I found this (regarding my question)

“Discourse is designed for the next 10 years of the Internet, so the minimum browser requirements are high.”

I’m not sure I understand the message, unless Discourse is developing inside a time machine. I would expect the majority of users in 2030 are not using the product today. Maybe I’m missing the point.

EDIT:
@Canapin what is the browser support policy? Current stable - 2 (N-2), or N-1, or only “latest”?

Security concerns highlighted here (more concern on the user’s behalf rather than specific to Discourse use I’m sure), there really can’t be something Discourse requires that isn’t supported in core JS libraries that haven’t changed much in 6 years. Even Gmail via the web browser on these older devices work well, without issues. Security concerns aside, already noted here.

2 Likes

Hi @codev,

I wish I could welcome you to our community under better circumstances.

I’m afraid my words are going to sound rather hollow in response, but I do understand the frustration you’re feeling.

There is a problem inherent to the process of software evolution, and people often say “Your software doesn’t support my phone anymore, but this similar software does; why?”. Unfortunately, there’s no easy answer.

We appreciate that your community is hurting. We can plainly see distress and anguish from your members at the prospect of being cut off from their support system.

Having to go to the library to use the computer is no substitute at all for accessing your support network as and when you need it, as well as the difference between using a public space and sharing and contributing from the comfort and privacy of your own home.

This troubles us given that our mission is to make online discussion easier for everyone and preserve that discussion long-term.

We are, like you, frustrated that people can’t use devices until they literally fall apart. Black box devices like iPhones, however, must continue to be supported and updated by the vendor or they are actively dangerous to use . We note that Apple is only providing very limited updates for the most serious iOS 12 vulnerabilities at this point and Safari is years out of date at this point.

We discuss these critical choices at length internally. We do our best to support them as long as possible until it becomes a technological challenge that would be immensely complicated to maintain over time. It’s not easy to balance these choices to make sure they work best for most communities without sacrificing our security standards or ease of use.

Unfortunately, any choice like this has drawbacks, and your message is a painful and honest example of the problems we hope to avoid as much as possible.

We can’t outright retrace our steps, but we will continue to discuss this internally. Discourse won’t work on some devices anymore, and this will happen again as time moves on. Please note that we have already extended our support for IOS 12 by a year and did our best to warn users support would soon be removed.

The question remains: How do we help solve this problem for your members who need to access and participate in your forum?

Can you start by helping us understand the device usage breakdown (with specific model information) in your community as best you can?

7 Likes

Officially,

Discourse supports the latest, stable releases of all major browsers and platforms:

  • Microsoft Edge
  • Google Chrome
  • Mozilla Firefox
  • Apple Safari

Additionally, we aim to support Safari on iOS 15.7+.

From What is Discourse? | Discourse - Civilized Discussion

To extend these words, I add that “Discourse supports this browser version or above” doesn’t necessarily mean that an older version of this browser won’t work. It’s just not guaranteed and it may stop working at some point.

5 Likes

The last line:

Additionally, we aim to support Safari on iOS 15.7+.

Would then imply at least N-1, or even N-2 (in the case of iOS) since latest is 16.3.x

The issue with this support statement, is that it potentially alienates a whole class of users who have “technically compatible” clients, however Discourse is not committing to testing. As @Canapin notes, “It’s just not guaranteed and it may stop working at some point,” that’s one way to say, use at your own risk. That is also different than the web app checking the version of the client and using a UI element to communicate it is not compatible. Or even worse, limiting functionality that would otherwise “just work,” except that it is no longer receiving QA or regression testing and is being deprecated in the name of “nobody is testing this now or has bandwidth to do so.”

If it were possible to support N-2 is most cases where applicable, there’s a good chance at supporting near 80% of the potential “web client” user base. For N-2, in the iOS case this would mean supporting Safari 14 / iOS 14.

If the word “support” is a trigger word, then if it were possible to permit N-2 with the caveat if experiencing any issues please upgrade to a supported client, probably a lot things would still “just work,” maybe not within the most preferred experience (UI rendering, etc.) but at least not blocked from using something. It’s a bulletin board after all, not Microsoft Office 365. (no offense intended Discourse team!)

3 Likes