Artigo: Progressive Enhancement, melhoria necessária na web

Artigo de Luiz Tiago
Particularmente noto que designers e desenvolvedores gostam de exagerar na defesa de alguns pontos de usabilidade em meio a alguma discussão sobre determinada teoria.
Termos como “pular na cara do usuário”, “frustrar”, “gritar”, entre outros são comuns nestas conversas, aumentando bastante o problema apresentado apenas para melhorar a sua defesa. Apesar de eu estar neste meio, este não é o ponto principal deste artigo.
É realmente frustrante quando não conseguimos acessar determinada funcionalidade de um site por causa de um navegador ou sistema operacional que está sendo utilizado. Penso que isto não é uma opinião pessoal, e sim da maioria dos humanos. Com isto, irei explicar rapidamente um conceito meio antigo, porém pouco utilizado na realidade do nosso mundo virtual. Para entender melhor o que significa o Progressive Enhancement, ou Melhoria Progressiva, é preciso conhecer também o conceito de Graceful Degradation, ou Degradação Graciosa.
Os desenvolvedores, na sua maioria, estão acostumados a criar páginas para os navegadores atuais que não funcionam completamente em versões antigas de alguns navegadores (como grande exemplo, o IE6). Como sempre tento defender, é preciso analisar bastante o público-alvo do projeto em que está sendo desenvolvido antes de tomar qualquer decisão precipitada. Se em determinado caso, é esperado um grande público formado pelos navegadores antigos, é loucura deixar esta parcela de lado. Esta atitude é tomada, na maioria das vezes, pela falta de tempo, orçamento e – algumas vezes – pelo conhecimento limitado do próprio profissional. Além disso, é observado também o aumento no uso de dispositivos móveis, em que – em alguns casos – a ausência de determinadas tecnologias (Javascript, Flash etc.) pode frustrar o usuário.
A técnica do Graceful Degradation defende a teoria em que determinadas funcionalidades não devam funcionar em algumas plataformas. Pensam que se o navegador do cliente não tem suporta à Javascript ou está sem o Flash instalado é problema dele. O pensamento egoísta obriga o cliente a fazer o update de seus aplicativos, caso ele queira ver perfeitamente o “grande projeto desenvolvido”. Às vezes, levo na brincadeira e apoio estas ideias pela raiva particular, principalmente do IE6, mas todos nós devemos ter em mente que isto pode ser decréscimo significante no resultado do projeto.
Baseada no pensamento colaborativo, a estratégia do Progressive Enhancement foi criada onde o conceito principal é justamente o inverso da Graceful Degradation. O projeto é feito de baixo para cima, pensando no menor denominador comum entre as funcionalidades dos browsers (sempre me lembro das aulas de matemática do colégio), para em seguida o profissional adicionar funcionalidades e melhorias para o comportamento e apresentação do site que só serão possíveis nos navegadores mais atuais.
Dessa forma, em nenhum caso o cliente perde as funcionalidades principais do site devido à falta de upgrade de seu browser, que muitas vezes é de responsabilidade do “carinha de TI” da empresa. Se vai ser feito um simples formulário, tendo o submit com Ajax, pensando na beleza da resposta a ser dada sem a necessidade de atualizar a página, este mesmo formulário pode ter um “sistema defensivo” que funcione independentemente da presença do Javascript na máquina do cliente.
O uso de linguagens de back-end (PHP, ASP, ASP.NET etc.) independe do navegador do cliente e garante a funcionalidade principal do caso, mesmo se a apresentação dela não for a melhor possível. Tem que ter em mente em que o ponto fundamental é a funcionalidade. É muito mais difícil você perder um usuário por não ter visto a resposta deste formulário aparecendo com um “fadeIn” em jQuery do que um que não conseguiu fazer a ação principal desejada.
É preciso colocar na cabeça algumas coisas, estudar um pouco mais estes conceitos e se imaginar na posição do usuário. Ele é sua platéia e tem que estar em primeiro lugar! Por isso, não frustre-o.
Por Luiz Tiago
Graduado em Webdesign na Faculdade Marista Recife, sócio e gerente de projetos da Agitz Web, além de ministrar palestras e cursos pela iMedia Brasil. Atua na área de desenvolvimento web desde 2001, foi o vencedor do Júri Popular do Concurso Peixe Grande 2007 e adora o que faz. Parte do seu trabalho pode ser visualizada em seu site pessoal.










Excelente artigo Tiago,
Que este seja o primeiro de vários que estão por vir no blog.
Comentário por @davidsonfellipe — 30/10/09 @ 15:39
Massa!
Comentário por Larissa — 30/10/09 @ 16:10
Parabéns Tiago. Você tem uma visão muito ampla e atualizada do tema. Essa interação, através de artigos, é um caminho que amplia e direciona conhecimentos para um melhor desempenho e eficiência do profissional de sua área. Continue assim brilhando, com esse espírito colaborador.
Comentário por Elizabeth — 30/10/09 @ 17:04
Excelente comentário sobre o artigo!!! Parabéns Tiago!!!
Comentário por Rafaella — 30/10/09 @ 18:23
Tiago,
Desculpe, cara, mas Graceful Degradation não é o que vc diz.
Veja: http://www.css3.info/graceful-degradation/
“Graceful degradation means that your Web site continues to operate even when viewed with less-than-optimal software in which advanced effects don’t work.”
O que ele diz é que a visualização do layout pode até ficar comprometida sim, mas as funcionalidades não.
[]s!
Comentário por Carol — 30/10/09 @ 20:34
[...] This post was mentioned on Twitter by BETHOLIVEIRA, BETHOLIVEIRA. BETHOLIVEIRA said: @luiztiago em seu blog. Tb na revista. http://bit.ly/1BufMJ [...]
Pingback por Tweets that mention Revista Webdesign » Artigo: Progressive Enhancement, melhoria necessária na web -- Topsy.com — 31/10/09 @ 12:02
Parabens!
Muitos desenvolvedores pensam mais no seu sucesso em ter um site “bonito”, moderno, atual no ar que funcional, conforme exemplificou com o caso do formulário. A primeira pergunta a ser respondida após concluir o site é: está funcional? Cumpriu os requisitos do briefing?
Comentário por Luiz Felipe Alves — 31/10/09 @ 13:42
Parabéns Luiz Tiago, o usuário vem em primeiro lugar.
Muito bom.
Comentário por Murphy — 01/11/09 @ 16:41
Carol,
O artigo que você postou, traz esta definição de outra fonte (http://www.digital-web.com/articles/fluid_thinking/)
Neste mesmo site, existe um resumo que explica bem a Graceful Degradation.
“Graceful degradation has two basic rules:
1. Any browser must be able to view the content of the site.
2. Any browser must be able to navigate the site.”
O site precisa ficar navegável e o conteúdo ser visível. Com isto, a aparência e as funcionalidades não necessariamente precisam estar ativas na página. Algumas funcionalidades e efeitos (que no site são chamados de Efeitos Avançados) podem ter o uso afetado dependendo do navegador do cliente.
Grato pelo comentário. Qualquer dúvida, estamos por aqui.
Comentário por Luiz Tiago Oliveira — 03/11/09 @ 11:47
Tiago,
Vocês estão falando a mesma coisa (e ainda acho que o conceito de Grateful degradation neste seu artigo está enganado).
Explico:
“Must be able to” tem também o significado não-impositivo, assim com em português. “A Carol deve ser capaz de passar 2 dias sem café”. Isso significa tanto a imposição de que eu preciso beber menos café quanto o idealismo de que o Universo deve me dar condições para que eu seja capaz de passar 2 dias sem café.
A degradação elegante (em uma tradução muito nas coxas) significa exatamente a mesma coisa na prática que o Progressive Enhancement. Ou seja, o site precisa ser feito para que possa ser visto em qualquer navegador, com qualquer recurso. Se algum recurso (avançado, plus, vitaminado, o nome que for) não puder ser visto, a navegação e o conteúdo do site não são afetados.
O método também ganha o nome de Fault-tolerance, ou seja, tolerante a erros. Veja: http://en.wikipedia.org/wiki/Fault-tolerant_system
Desculpe, cara, mas vc está enganado sobre o graceful degradation. Por outro lado, coberto de razão sobre o objetivo final e a meta que deveria ser máxima para todo desenvolvedor web: acessibilidade e funcionabilidade. Minha implicância está apenas com uma compreensão errada do termo.
Outra referência interessante: http://accessites.org/site/2007/02/graceful-degradation-progressive-enhancement/ de onde cito, literalmente: “Graceful degradation and progressive enhancement are two sides of the same coin.” (… são dois lados da mesma moeda).
Apesar do artigo estar ótimo e com conteúdo interessantíssimo, por favor reveja a definição do conceito Graceful degradation.
Abraços,
Carolina.
Comentário por Carolina Vigna-Marú — 03/11/09 @ 12:55
Olá,
A descrição de “Graceful degradation” neste artigo está incorreta. Tendo a Arteccom posição de grande veículo de informações para o público brasileiro e de língua portuguesa em geral, sendo uma referência, consideraria um fato importante que este conteúdo em questão fosse revisado.
“…Graceful Degradation defende a teoria em que determinadas funcionalidades não devam funcionar em algumas plataformas…”
Uma das primordiais lógicas de um site é que ele funcione, seja na teoria ou na prática. E o que a tal técnica prega é de que por mais que o site fique feio pra burro por algum problema, ele tem que funcionar. Funcionar no sentido de passar a informação e permanecer navegável.
Descordando de tal passagem no artigo, e tentando explicar corretamente, apresento um exemplo: Se você tem uma caixa de diálogo e essa só aparece em um determinado navegador, isso não é “Graceful degradation”, isso é falta de acessibilidade.
“Graceful degradation” seria se essa caixa aparece em todos os browser, legível, funcional, por mais que em cada browser ela esteja sendo mostrada com uma fonte diferente. (seja lá como raios o criador do CSS conseguiu isso. rs)
Acabei de ler sobre isso e foi isso que entendi. Diria que “Graceful degradation” seriam as “linhas tortas”, que por mais que estejam tortas, ligam um ponto a outro e são visíveis.
Acima de qualquer conhecimento, por favor, a lógica.
Abraços,
Guilherme.
Comentário por Guilherme Araújo — 04/11/09 @ 13:06
Verifiquei os links que vocês passaram. Os comparativos e conceitos possuem divergências em algumas fontes. Em algumas fontes, defendem que apenas a navegação e conteúdo são os fatores determinantes. Em outras, possuem outra definição, quando afirmam que ambas são os dois lados da mesma moeda.
Uma coisa é fato: o mais importante é que o site seja acessível e funcional para todos!
Comentário por Luiz Tiago Oliveira — 05/11/09 @ 0:47
Nossa, Tiago! Deixa de ser cabeça dura, rapaz! rs.
O conceito de “Graceful degradation” está errado.
http://www.tableless.com.br/graceful-degradation-e-tudo-sobre-acessibilidade
Referências é o que não falta. Não é uma questão de sintaxe. É um erro.
“Os homens erram, os grandes homens confessam que erraram” – Voltaire
Conserta aí e tudo legal. Ficar teimando é que não vai resolver.
Comentário por Carolina Vigna-Marú — 05/11/09 @ 9:02
Aff… desde quando isso é Graceful degradation???????
Comentário por Renato — 11/11/09 @ 10:36
Bom artigo,
Geralmente os desenvolvedores estão preoculpados somentes com a estética da página excluindo de todas as formas usuários desprovidos de recursos tanto de banda larga quanto de aplicativos que dêem suporte a tais aplicações “flash, java”, dentre todos estes fatores que culminam no mal funcionamento de um página estão estes percaucios.
vlw.
Comentário por Danilo Umbelino — 13/11/09 @ 12:08
Bom galera, estava vendo os comentários de todos , e estar maior confusão, quem ta certo quem ta errado e por ai vai.
Na minha opinião, tudo isso é valido sim , acho que o usuário tem que achar o que procura,mas por outro lado , pensando assim não há sentido em novas tecnologias se ninguém quer se atualizar , o que temos hoje serve para corrigir os erros do passado, e isso é muito bom,pelo menos pra mim, chega de ie6, chegar de coisas velhas, o nosso país estar crescendo, evoluindo, os desenvolvedores estão estudando para aprimorar novos conhecimentos , e sempre vem alguém querendo defender as coisas velhas, uma tese de que, o que vale e só a informação. Como falei acima preso por isso, mas preso muito mais por informação e tecnologia, já ta na hora de vermos a nossa realidade, estão chegando novas empresas com preço muito mas em conta com banda larga, já temos a 3g que ainda e cara , mas isso deve ser por pouco tempo, já temos navegadores muito mas seguro como o ie8 , e é tudo free que que custa se atualizar? Vamos olhar para frente.
Essa e minha opinião!
Comentário por andre — 19/11/09 @ 0:49