Como construir um frontend robusto: aprimoramento progressivo
-
Comece com HTML
- Os serviços governamentais devem funcionar apenas com HTML
- A camada de HTML é tolerante a falhas, então pode funcionar até em navegadores antigos
- É preciso usar marcação semântica correta e estruturar o documento de forma lógica
-
Uso de CSS
- É possível estilizar o serviço com CSS
- A camada de CSS é tolerante a falhas, pois pode ignorar declarações individuais
- Deve-se evitar tecnologias como
CSS-in-JS
-
Uso de JavaScript
- JavaScript é usado para adicionar elementos interativos
- A camada de JavaScript não é tolerante a falhas e pode gerar erros
- É possível melhorar a compatibilidade com detecção de recursos das APIs do navegador, inclusão de polyfills, transpiling etc.
- O JavaScript deve complementar o HTML e o CSS
-
Alternativas ao JavaScript
- Deve-se considerar soluções simples que atendam às necessidades do usuário mesmo sem JavaScript
- Algumas alternativas são exibir tabelas de dados, exportar dados e pré-renderizar gráficos como imagens
-
Uso de frameworks JavaScript do lado do cliente
- Deve-se evitar o uso de frameworks quando a interface não for complexa
- Ao usar frameworks, podem surgir problemas como aumento do tamanho da base de código, problemas de desempenho e dependência de código de terceiros
- Ao usar frameworks, cada interface de usuário deve ser projetada como um componente separado
-
Motivos pelos quais CSS ou JavaScript podem não carregar ou não executar
- As causas podem incluir erro de rede, extensões do navegador, indisponibilidade de fornecedores terceirizados, falha na resolução de DNS e bugs causados por atualizações do navegador
- Alguns usuários podem desativar intencionalmente recursos do navegador
-
Aplicações de página única (SPA)
- Não se deve construir serviços como aplicações de página única
- SPAs podem prejudicar a acessibilidade e causar problemas como gerenciamento de foco na navegação entre páginas e impossibilidade de usar os botões voltar/avançar
-
Teste do serviço
- Componentes que dependem fortemente de JavaScript ou de frameworks JavaScript devem funcionar em vários navegadores e dispositivos
- Também é preciso testar a acessibilidade
-
Estudos de caso e guias relacionados
- Por que usar aprimoramento progressivo
- Design para diversos dispositivos
- Como testar o desempenho do frontend
- Entendendo a WCAG 2.2
Resumo do GN⁺
- O aprimoramento progressivo é uma forma de construir sites na ordem HTML, CSS e JavaScript
- Esse método aumenta a tolerância a falhas do serviço e permite que ele funcione em diferentes navegadores e dispositivos
- O JavaScript deve ter um papel complementar, e soluções alternativas devem ser consideradas
- Aplicações de página única devem ser evitadas devido a problemas de acessibilidade
- Os testes do serviço devem garantir acessibilidade em diferentes ambientes
1 comentários
Comentários no Hacker News
Ao usar frameworks JavaScript, é preciso conseguir demonstrar qual benefício isso traz para o usuário
Pontos apontados como desvantagens das SPAs
Seria bom se toda a internet seguisse esse conselho
Soluções simples devem ser priorizadas
Fico curioso sobre por que Linux não está na lista
Parece que muita gente gosta dessa abordagem
Usa HTML e dados previamente buscados no servidor, e processa no cliente o que pode ser feito no cliente
Muitas SPAs têm problemas, mas nem todas são problemáticas
Renderização no lado do servidor também não é boa em todos os casos