Compatibilidade retroativa com navegadores mais antigos

Eu ajudo a administrar um fórum para pessoas afetadas por uma doença neurodegenerativa que é alimentado pelo Discourse. Mantenho o software atualizado seguindo a lista de segurança em Commit search results · GitHub e atualizando sempre que há um problema de segurança. No entanto, isso tem o efeito colateral não intencional de bloquear um número crescente de usuários que possuem máquinas mais antigas.

Ele bloqueou uma usuária que é cuidadora de seu marido e só tinha acesso ao fórum através de um iPad que não recebe mais atualizações do iOS/Safari e, mais recentemente, outro com um Chromebook mais antigo que não pode atualizar o Chrome para uma versão compatível. Entendo ter uma política de apenas suportar as versões mais recentes de navegadores, mas quando dispositivos feitos há apenas alguns anos não recebem mais atualizações, mas estão totalmente funcionais, impedem o acesso ao que é, para muitos, uma linha de vida vital, é extremamente frustrante.

O cabeçalho no fórum informa a esses usuários que existe uma versão com menos recursos que eles podem usar, mas como o fórum é apenas para login (devido a problemas de invasão de privacidade que tivemos no passado) e a versão com menos recursos não permite logins, isso não é utilizável.

Idealmente, suponho que haveria um fluxo de atualização de segurança que não fizesse com que navegadores antigos parassem de funcionar ou, pelo menos, um aviso ao atualizar que certos navegadores pararão de funcionar para que eu possa avisar os usuários antes de aplicar a atualização.

Aqui estão algumas citações de nossos usuários sobre isso:

“Eu fico lá para apoiar outra esposa por meio de mensagens privadas - é tão angustiante que você nunca saberá o caos que isso causa… Eu seriamente estou… quebrada😢”

“Desculpe, pareço tão brava… Não posto desde que perdi meu marido há 17 meses, mas ainda entro diariamente e estou cheia de desespero”

“Acho que posso acessar o fórum na biblioteca local, mas é muito frustrante não ter acesso em casa”

“Quero dizer, posso acessar todos os outros sites e bancos, etc., não há problema lá e eles atualizam constantemente”

“Então, tentei sua sugestão de baixar o aplicativo e, infelizmente, ele não instala. Ele afirma que não é compatível com meu iPad. Sem dúvida, isso se deve à versão do iOS (novamente).”

“Isso é realmente frustrante! Não posso me dar ao luxo de substituir meu iPad e é a única coisa que me mantém em contato com esta comunidade”

“o mb é uma linha de vida… eles a tiraram de mim e suspeito que de muitos outros”

15 curtidas

Isso é bastante trágico. Infelizmente, o desenvolvimento do Discourse parece ser sempre para frente, e algumas vezes por ano (parece para mim) há algum tipo de mudança que desqualifica outra onda de dispositivos ou navegadores mais antigos.

Seu caso pode ser um desses em que usar a versão estável ajudaria, um pouco. Mas qualquer tipo de política de atualização deixa você vulnerável ao problema que você vê. E uma política de não atualizar deixa você vulnerável a usar o software mais antigo.

Não vejo uma resposta, além de se afastar do Discourse para algum outro software com uma política muito mais generosa de suporte a dispositivos mais antigos e navegadores mais antigos. Não sei o que poderia ser.

Há também a probabilidade de que esses dispositivos e navegadores mais antigos sejam inseguros. Mas isso pode importar pouco se forem usados apenas como dispositivos de comunicação.

6 curtidas

É talvez possível instalar um navegador de terceiros? No iPad ou Chromebook?

Encontrei isto para um iPad antigo. Você também pode ser capaz de instalar outros navegadores.

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

Aqui está um link para Chromebook que pode ajudar.

Top 5 Chromebook Web Browsers 2024 [Ranked & Reviewed] - Alvaro Trigo's Blog.

Mas concordo que é lamentável não ter retrocompatibilidade adequada com dispositivos mais antigos. Pergunto-me se talvez um plugin pudesse ser feito para resolver isso com casos de uso especiais como o seu.

1 curtida

E, no entanto, esses são Safaris, AFAIK. Mas, de qualquer forma, esses não podem contornar o teste do Discourse porque esse resultado vem do iOS.

3 curtidas

Então instalo um navegador de terceiros como Chrome ou Firefox e o uso em vez do Safari? Não?

2 curtidas

Esses não são navegadores reais com seus motores. Pode ser descrito como se fossem apenas skins.

3 curtidas

Não entendi. Peço desculpas, você está dizendo que Google Chrome ou Firefox, etc., não são as versões legítimas desses navegadores no iOS? Apenas um navegador Safari com outra aparência?

2 curtidas

Mais como um motor reestilizado da Apple, mas o resultado final é muito o mesmo. A Apple está limitando muito seu ambiente.

4 curtidas

Isso é realmente lamentável, mas com a Apple não é surpreendente. Lembro-me que a Microsoft tentou algo semelhante de volta no Windows 95, limitando o desempenho de navegadores de terceiros (bem, talvez não exatamente o mesmo) na época do Netscape (agora conhecido como Mozilla Firefox). A Microsoft foi duramente penalizada por isso nos tribunais e por desenvolvedores web.

2 curtidas

Não seria o ideal. Mas uma ideia como usar algum tipo de navegador de internet poderia ser usada como intermediário? Algo como as pessoas usam o Tor?

Talvez como uma camada de compatibilidade neste caso?

1 curtida

A Apple exige que todos os navegadores no iOS usem o Apple WebKit.

Eu imagino que o código-fonte do Discourse poderia ser ajustado para permitir o login, mas ainda assim torná-lo somente leitura (já que isso parece ser necessário para evitar que apareçam no navegador coisas que ele não conseguiria lidar).

5 curtidas

É uma pena que a Apple tenha planos de forçar seus clientes a fazer upgrade. O Android pode ser complicado às vezes, mas existem opções disponíveis.

Ainda bem que nunca fui sugado para o ecossistema de dispositivos da Apple. E provavelmente é muito complicado para os usuários, neste caso, tentar instalar um sistema operacional Linux em seus dispositivos antigos. Como a Apple não é realmente tão amigável ao usuário.

3 curtidas

Bem, a questão da retrocompatibilidade é frequentemente discutida e não é viável. Somente leitura com funcionalidade limitada é o que o Discourse oferece quando navegadores/sistemas operacionais atingem o fim de vida/suporte.

Se alguém puder codificar tal camada, tudo bem, mas tenho total certeza de que a CDCK não a suporta. É um pouco como fazer jailbreak em celulares da Apple :wink:

2 curtidas

@codev quais são os requisitos mínimos de navegador para “recursos completos”, atualmente? (Desculpe, não tenho certeza de onde isso está postado/publicado)

3 curtidas

Bem, agora que temos a parte oficial de ‘criticar a Apple’ e de ‘eles são os piores’ do tópico ilustrada, estou curioso sobre qual é a política para compatibilidade retroativa suportada. A maioria, se não todas, as equipes de produto publicam sua política de compatibilidade retroativa, e algumas são mais generosas do que outras. Felizmente, a tecnologia avança e, infelizmente, isso coloca uma data de validade na vida útil da maioria das tecnologias.

Em relação à questão levantada por @codev, também estou curioso, pois estava prestes a implantar o Discourse, no entanto, tenho a possibilidade de alguns usuários com dispositivos antigos. Como @Ed_S insinuou, pode ser algo que preciso considerar, para procurar em outro lugar.

Pessoalmente, uso algumas tecnologias com mais de 5 anos e tenho familiares com dispositivos um pouco mais antigos. Acho que não estou sozinho nisso. Para o crédito da Apple, seu hardware é sólido (o que significa que geralmente continua funcionando bem além do software que é suportado) e, em geral, eles fornecem uma cobertura generosa para compatibilidade retroativa.

O software e os frameworks de segurança avançam constantemente, e cada vez mais hoje em dia, exigindo atualizações, pois muitas coisas são interdependentes. Eu concordo com o argumento de atualizar por segurança, no entanto, não suportar mais uma determinada versão de algo porque não está mais “sendo lançado” não significa que não haja usuários que ainda usam a tecnologia.

Se alguém for argumentar: “ei, preciso dar suporte a clientes com navegadores não-SSL de 1993”, concordo que isso é absurdo. No entanto, se estivermos dizendo que você só pode usar algo que foi lançado como N-1 (digamos, lançado apenas nos últimos 18 meses), bem, nem todo mundo está atualizando a cada 6 meses.

O Firefox, por exemplo, fornece ESR (lançamentos com suporte estendido) para plataformas mais antigas. Isso é ótimo para o Firefox e para as pessoas que precisam do ESR. Embora se torne irrelevante se os fornecedores, por exemplo, o Discourse, não suportarem algo por causa de um número de versão de navegador bobo que não corresponde à sua string de versão mínima predefinida / codificada. Se houver frameworks necessários, isso é uma coisa - se for simplesmente “versão 1 não é igual a 2”, mas de outra forma funciona, então isso é realmente lamentável. Tenho visto cada vez mais essa falta de interesse em suportar coisas anteriores. É uma tendência decepcionante. Engenheiros de hoje nascidos no final dos anos 80 e ao longo dos anos 90 cresceram em uma cultura onde “sempre se deve atualizar”.

Sei que me desviei aqui, obrigado pela licença artística. Não quero perder de vista a consulta original de @codev. É importante, especialmente onde o Discourse fornece um propósito tão significativo na comunicação e na comunidade.

4 curtidas

Provavelmente você pode codificar uma versão muito simplificada da UI que permite login, DMs e provavelmente responder via API do Discourse e servi-la de um subdomínio diferente (ou da mesma instalação, com algumas regras inteligentes de nginx?)

Dessa forma, você ainda terá funcionalidade básica para dispositivos antigos e se manterá atualizado com o backend do Discourse.

3 curtidas

Ok, encontrei isto (em relação à minha pergunta)

“O Discourse foi projetado para os próximos 10 anos da Internet, por isso os requisitos mínimos do navegador são altos.”

Não tenho a certeza se entendi a mensagem, a menos que o Discourse esteja a desenvolver-se dentro de uma máquina do tempo. Eu esperaria que a maioria dos utilizadores em 2030 não estivesse a usar o produto hoje. Talvez eu esteja a perder o ponto.

EDIT:
@Canapin qual é a política de suporte do navegador? Estável atual - 2 (N-2), ou N-1, ou apenas “o mais recente”?

Preocupações de segurança destacadas aqui (mais preocupação por parte do utilizador do que especificamente para o uso do Discourse, tenho a certeza), realmente não pode haver algo que o Discourse exija que não seja suportado nas bibliotecas JS principais que não mudaram muito em 6 anos. Mesmo o Gmail através do navegador nestes dispositivos mais antigos funciona bem, sem problemas. Preocupações de segurança à parte, já notadas aqui.

4 curtidas

Olá @codev,

Gostaria de poder recebê-lo em nossa comunidade em circunstâncias melhores.

Receio que minhas palavras soem um tanto vazias em resposta, mas entendo a frustração que você está sentindo.

Existe um problema inerente ao processo de evolução do software, e as pessoas costumam dizer: “Seu software não suporta mais meu telefone, mas este software semelhante suporta; por quê?”. Infelizmente, não há uma resposta fácil.

Agradecemos que sua comunidade esteja sofrendo. Podemos ver claramente o sofrimento e a angústia de seus membros com a perspectiva de serem cortados de seu sistema de suporte.

Ter que ir à biblioteca para usar o computador não é um substituto para acessar sua rede de suporte quando e como precisar, bem como a diferença entre usar um espaço público e compartilhar e contribuir do conforto e privacidade de sua própria casa.

Isso nos preocupa, pois nossa missão é facilitar a discussão online para todos e preservar essa discussão a longo prazo.

Nós também, assim como você, ficamos frustrados que as pessoas não possam usar dispositivos até que eles literalmente se desfaçam. No entanto, dispositivos de caixa preta como iPhones devem continuar a ser suportados e atualizados pelo fornecedor, ou eles são ativamente perigosos de usar. Observamos que a Apple está fornecendo apenas atualizações muito limitadas para as vulnerabilidades mais sérias do iOS 12 neste momento e o Safari está desatualizado há anos.

Discutimos essas escolhas críticas longamente internamente. Fazemos o nosso melhor para apoiá-los o máximo possível até que se torne um desafio tecnológico que seria imensamente complicado de manter ao longo do tempo. Não é fácil equilibrar essas escolhas para garantir que funcionem melhor para a maioria das comunidades sem sacrificar nossos padrões de segurança ou facilidade de uso.

Infelizmente, qualquer escolha como essa tem desvantagens, e sua mensagem é um exemplo doloroso e honesto dos problemas que esperamos evitar o máximo possível.

Não podemos simplesmente refazer nossos passos, mas continuaremos a discutir isso internamente. O Discourse não funcionará mais em alguns dispositivos, e isso acontecerá novamente com o passar do tempo. Observe que estendemos nosso suporte para o IOS 12 por um ano e fizemos o nosso melhor para avisar os usuários que o suporte seria removido em breve.
A questão permanece: Como podemos ajudar a resolver esse problema para seus membros que precisam acessar e participar do seu fórum?

Você pode começar nos ajudando a entender a distribuição de uso de dispositivos (com informações específicas do modelo) em sua comunidade, o melhor que puder?

9 curtidas

Oficialmente,

O Discourse suporta as versões estáveis mais recentes de todos os principais navegadores e plataformas:

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

Adicionalmente, visamos suportar o Safari no iOS 15.7+.

De What is Discourse? | Discourse - Civilized Discussion

Para expandir estas palavras, acrescento que “O Discourse suporta esta versão do navegador ou superior” não significa necessariamente que uma versão mais antiga deste navegador não funcionará. Simplesmente não é garantido e pode parar de funcionar em algum momento.

6 curtidas

A última linha:

Além disso, pretendemos oferecer suporte ao Safari no iOS 15.7+.

Implica então pelo menos N-1, ou até N-2 (no caso do iOS), já que o mais recente é 16.3.x.

O problema com essa declaração de suporte é que ela potencialmente aliena toda uma classe de usuários que possuem clientes “tecnicamente compatíveis”, no entanto, o Discourse não se compromete a testar. Como @Canapin observa, “Simplesmente não é garantido e pode parar de funcionar em algum momento”, essa é uma maneira de dizer, use por sua conta e risco. Isso também é diferente do aplicativo da web verificar a versão do cliente e usar um elemento de interface do usuário para comunicar que ele não é compatível. Ou, pior ainda, limitar a funcionalidade que, de outra forma, “simplesmente funcionaria”, exceto que não está mais recebendo testes de QA ou de regressão e está sendo descontinuada em nome de “ninguém está testando isso agora ou tem largura de banda para fazê-lo”.

Se fosse possível dar suporte a N-2 na maioria dos casos aplicáveis, haveria uma boa chance de dar suporte a quase 80% da base de usuários potencial do “cliente web”. Para N-2, no caso do iOS, isso significaria dar suporte ao Safari 14 / iOS 14.

Se a palavra “suporte” for uma palavra gatilho, então, se fosse possível permitir N-2 com a ressalva “se estiver enfrentando algum problema, atualize para um cliente compatível”, muitas coisas ainda “simplesmente funcionariam”, talvez não dentro da experiência mais preferida (renderização de UI, etc.), mas pelo menos não seria bloqueado de usar algo. É um quadro de avisos, afinal, não o Microsoft Office 365. (nenhuma ofensa pretendida equipe Discourse!)

3 curtidas