Desenvolvimento Web com HTML, CSS e JavaScript > Progressive Enhancement

Progressive Enhancement

Pessoas diferentes vão usar nosso site em dispositivos diferentes dos que nós usamos para desenvolver, em lugares diferentes do que estamos e em condições muito diferentes das que nos desenvolvemos o site.

Condições, opções, limitações e restrições

O que isso significa pra quem está desenvolvendo o site: definir e garantir que o site seja acessível nessas condições definidas. Como garantir isso? Testar em todas as situações e modificar o código sempre que o teste numa dada situação falhe. Se não pensarmos e testarmos em dispositivos e casos de uso em condições difrentes ou com limitações e restrições há grandes chances de que nosso site só fique utilizável pra quem se enquadre no perfil testado. E se não der para testar em todas as situações? Como tentar "reduzir" ou padronizar o esforço? Tentar seguir um fluxo de desenvolvimento (ou pensamento?) que "automaticamente" inclua a maior parte das situações:

Devemos pensar e testar primeiro na base que é igual/mínima para todas as pessoas e depois "melhorar"/ adicionar código para situações onde caibam essas melhorias. Uma ordem de desenvovlimento, o porquê de cada passo e como testar:

  1. Conteúdo. Conteúdo é o que todas as pessoas querem ver num site e começamos por ele.
  1. Semântica com HTML. Semântica é uma melhoria em cima do conteúdo sem nenhuma marcação.
  1. CSS. Estilos farão o conteúdo ser exibido de uma maneira melhor. O foco ainda é o conteúdo, então estilos são o terceiro passo, uma melhoria.

Na hora de escolher qual código HTML e CSS escrever. A W3C, o Progressive Enhancement e os navegadores desatualizados: