Validação HTML: vale a pena?

52

Quais são as vantagens e desvantagens (se houver) de garantir que todas as páginas sejam validadas em comparação com o HTML inválido que, no entanto, funciona nos principais navegadores?

Além disso, o HTML válido é válido após a execução do Javascript tão importante?

Thomas Bonini
fonte
5
Isso não responde à sua pergunta, mas ... colocar um doctype em sua página colocará o navegador no modo padrão em vez do modo peculiar. Procure o modo peculiar para entender o que quero dizer.
Evan Plaice
11
@Evan Plaice - Não é nenhum DOCTYPE. Alguns DOCTYPES realmente acionam peculiaridades ou modos quase padrão. A especificação do HTML5 explica isso com mais detalhes.
22910 luiscubal
11
@luiscubal Isso é novo no HTML 5 porque, em en.wikipedia.org/wiki/Quirks_mode , ele afirma "... se um DOCTYPE completo estiver presente, o navegador usará o modo padrão e, se estiver ausente, o navegador usará o modo quirks . "
quer
@Evan Solha Não tenho certeza sobre as versões HTML anterior, mas o HTML5 afirma especificamente o que fazer com DOCTYPES antigos: ver whatwg.org/specs/web-apps/current-work/multipage/...
luiscubal
11
@Evan Plaice Em outras palavras, "DTD HTML 2.0 Level 1" aciona o modo peculiares.
luiscubal

Respostas:

42

Eu acho que definitivamente vale a pena fazer , mas você nunca deve ser escravo da validação - é um jogo de tolos.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Valide seu HTML. Saiba o que significa ter uma marcação HTML válida. Entenda as ferramentas. Mais informações são sempre melhores que menos informações. Por que voar às cegas?

  2. Ninguém se importa se o seu HTML é válido. Exceto você. Se você quiser. Não pense por um segundo que produzir HTML perfeitamente válido é mais importante do que executar o site, fornecer recursos que encantam os usuários ou realizar o trabalho.

Jeff Atwood
fonte
3
Eu tenho que segundo isso. Tenho visto muitos problemas com bibliotecas javascript que podem ser responsabilizadas por HTML inválido. Vários formulários aninhados e tags fechados ilegalmente são os principais infratores. Como Jeff diz, não seja escravo, mas não reclame quando o jQuery não funcionar, porque sua página não é HTML válido (XHTML, HTML 5 ou o que você escolher como doctype).
precisa
@ Jeff Atwood: não posso concordar mais quando você diz "Ninguém se importa se o seu HTML é válido. Exceto você." Triste, mas verdadeiro, os clientes realmente não se importam.
Marco Demaio 23/07
@MarcoDemaio Por que é triste? Como cliente e usuário final, estou mais preocupado em saber se o site funciona ou não em todos os navegadores (a maioria dos quais não é compatível com os padrões, no início) do que em validar ou não. HTML válido realmente não importa. Google, Facebook, Twitter, este site etc. nenhum site relevante possui marcação válida. Por quê? Como o HTML válido não faz nada além de inchar a página e aumentar seus custos de largura de banda.
NullUserException
O mesmo vale para a marcação perfeitamente recuada. Isso é ainda mais inútil, é um desperdício de 100% da largura de banda e não tem nenhum uso prático.
NullUserException
@NullUserException: Eu acho triste porque descobri que sites validados geralmente são muito melhores em todos os navegadores. Veja meu comentário na resposta de Alan: webmasters.stackexchange.com/a/373/1429 A validação de um site salvo para mim e ainda me poupa uma quantidade enorme de tempo. Sobre a marcação recuada perfeita, nunca ouvi falar de especificações sobre ela. Eu gostaria de recuar em três espaços e você pode recuar em um.
Marco Demaio
32

Considero o HTML válido um objetivo que vale a pena, mas não o vejo como o todo e o fim de criar bons sites.

O truque é que sua marcação pode ser perfeitamente válida, mas pode não ser semântica - por exemplo, usando tabelas para layout ou navegação. Há uma diferença entre código válido e código semântico.

Em outra nota, se você usar scripts de publicidade ou externos, eles poderão inserir sua própria marcação, que poderá realmente atrapalhar a sua.

Grant Palin
fonte
22

Eu acho que vale a pena, pois eu pego muitos erros de marcação e lógica procurando validação. É uma daquelas coisas "necessárias, mas não suficientes". A marcação válida, como código que compila (ou efetua check-out via JSlint), livre de erros, avisos e dicas, é um bom primeiro passo para acertar.

Alan
fonte
+1 concorda totalmente com este. A validação de páginas economiza uma quantidade enorme de tempo após os erros de JS e de como as coisas são reprovadas, que parecem tão misteriosas e são apenas devido a uma tag HTML desgastada ou não fechada. Além disso, com ferramentas como o FF addon Html Validator [ addons.mozilla.org/en-US/firefox/addon/html-validator/] , é fácil validar todas as suas páginas localmente.
Marco Demaio 23/07
9

A grande vantagem do HTML válido é que sua página fica mais acessível a outros itens que não os "principais navegadores". Todos os "principais navegadores" têm soluções infinitas para lidar com todo o lixo inválido que preenche a WWW. No entanto, aderir a HTML válido ajuda, por exemplo, se alguém estiver usando um navegador para deficientes visuais ou acessando suas páginas off-line etc.


fonte
8

A validação por si só não é tão crítica, pois poucos navegadores são 100% compatíveis e as especificações não são 100% claras sobre como interpretar as regras.

No entanto, ser um HTML válido coloca você em uma posição melhor para adaptar e melhorar seu site. À medida que os padrões se movem, eles normalmente migram para a frente e, se seu novo site for válido, a atualização para dar suporte à última versão deve ser mais fácil.

Por baixo, a validade torna mais fácil permanecer no topo do jogo e ser o mais compatível possível com o público mais amplo.

MrChrister
fonte
4

A melhor abordagem é aprender qual HTML inválido é ruim e qual HTML inválido não importa.

Por exemplo, esquecer muito de fechar uma <div>tag é muito ruim , porque seu layout quase certamente estraga em um ou mais navegadores.

No entanto, o uso em <br>vez de <br />no XHTML não importa - todos os navegadores interpretarão ambos como uma quebra de linha sem problemas. O uso do targetatributo nos links é inválido, mas o pior cenário é que o navegador não abre o link em uma nova janela.

DisgruntledGoat
fonte
targeté válido em XHTML de transição e apenas masoquistas usam estrito. A omissão da barra de fechamento tornará a sua página XML inválida, o que provavelmente confundirá os raspadores de tela. Se você optar por usar XHTML, sua página deverá ser no mínimo XML válido.
Tgr 18/07/10
11
@ Tgr: Engraçado, pensei que os masoquistas preferissem o modo não-padrão. Mesmo doctypes de transição tem seus problemas (usando "quase normas" modo etc)
DisgruntledGoat
11
Eu diria que o Strict é essencial - por que optar por correr o risco de código obsoleto e modo de peculiaridades. Não há custo para usar o Strict, além de incentivá-lo a saber mais sobre sua versão de marcação preferida.
CJM
3

Ao executar o validador, você precisará examinar os erros que ele fornece caso a caso. A validação é importante? Para mim, sim, é muito importante. Mas é um requisito? Não.

Coisas como usar o mesmo ID várias vezes (em vez de uma classe), colocar elementos no nível de bloco dentro de elementos no nível inline (geralmente esses elementos também não se ajustam dessa maneira semanticamente), perdendo atributos alt nas imagens (pouca acessibilidade para os deficientes) ), são todos importantes. Coisas como atributos desconhecidos nas tags NÃO são importantes. Em absoluto. Estruturas Javascript como Dojo ou aquela terrível barra de mídia social Meebo usam atributos customizados como ganchos, e a especificação HTML declara que eles são permitidos e que qualquer atributo desconhecido deve ser ignorado. O validador não os ignora, porém, gera erros. Esses erros podem ser ignorados.

Ao validar, não basta assumir que, se houver erros, você estará fazendo errado. A semântica é muito mais importante, e acontece que o HTML válido é mais frequentemente do que o resultado natural de ter uma semântica adequada.

Bryson
fonte
Concordo - validar a sua página web, mas em algumas circunstâncias, você pode optar por ignorar os avisos, contanto que você sabe por que eles estão lá
Casebash
3

Uma razão para testar seu site quanto a HTML válido é que ele garante que os spiders do mecanismo de pesquisa possam indexar e determinar completamente o significado de suas páginas. Se eles não puderem fazer isso devido ao HTML malformado (que os principais navegadores podem solucionar por razões históricas), você está potencialmente limitando a classificação do seu mecanismo de pesquisa.

Também houve especulações de que, embora os principais mecanismos de pesquisa façam um bom trabalho ao lidar com HTML malformado, eles também podem atribuir "pontos" à qualidade da página para validade, afetando ainda mais sua capacidade de classificar tão alto quanto seu conteúdo merece.

JasonBirch
fonte
2
O Google declarou categoricamente que o HTML inválido não afeta os rankings. No entanto, posso ver o caso em que o HTML está tão malformado que o conteúdo real na página não pode ser lido por aranhas - embora nesse caso seja quase certo que os navegadores começarão a exibir problemas de renderização.
usar o seguinte
@DisgruntledGoat Você está certo, aqui está uma referência para isso: youtube.com/watch?v=FPBACTS-tyg
JasonBirch
@DisgruntledGoat Obviamente ... o próprio Google está cheio de HTML inválido, e lembro-me de que eles disseram que realmente não se importam e que é bom ter HTML inválido se isso significar tempos de carregamento mais rápidos.
NullUserException
3

Eu realmente acho que não importa mais. Eu era escravo da validação, agora raramente verifico. Talvez tenha me cansado de garantir que meu site seja válido, ou talvez não me importe mais porque ninguém mais o fará. Posso garantir que 99,9% dos nossos visitantes nem sabem o que é e também se importam se soubessem. Futuro software de navegador pode, mas quando esse dia chegar, vou me preocupar com isso.


fonte
2

A validação é útil porque pode ajudá-lo a detectar alguns erros difíceis de detectar, como

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); ?> />

ou comportamento imprevisível do navegador (por exemplo, colocar elementos de bloco em aalgumas vezes pode quebrar de maneira feia no Firefox).

Tgr
fonte
2

Um ponto que ninguém mencionou ainda é que o HTML inválido pode causar tempos de renderização mais lentos, enquanto o navegador tenta entender o HTML não padrão ao exibir.

BradB
fonte
Eu rebaixaria isso se pudesse. Eu altamente duvido que isso tenha qualquer efeito observável; Eu me preocuparia mais com a marcação válida que incha a página e exigia mais tempo para carregar (especialmente em conexões mais lentas / móveis).
NullUserException
@NullUserExceptions: Não acho que o argumento de BradB mereça -1. Talvez seja difícil de provar, mas um navegador que precise resolver e corrigir dentro de uma bagunça HTML pode demorar um pouco mais do que uma página HTML válida e bem formatada, sem erros. Por que você não fornece uma resposta a esta pergunta, mostrando um bom exemplo de página sobrecarregada devido a abuso de validação de HTML. Não consigo pensar em como uma página HTML válida poderia ser exagerada em comparação com a mesma página com código HTML inválido.
Marco Demaio
1

não há desvantagem de ter html válido. há uma razão pela qual há uma especificação em primeiro lugar e por que um grande esforço está sendo colocado na especificação para definir como as coisas devem funcionar.

basicamente, tudo o que você ganha é atender às especificações. o que, por sua vez, significa que os programas escritos para ler html (navegadores, bots) não podem culpá-lo por não atender às especificações se algo der errado. e alguns desses programas oferecem pontos extras (classificação mais alta nos mecanismos de pesquisa se o relatório de bot "atender às especificações"). se você atender às especificações, será surpreendido muito menos se alguns navegadores não apresentarem html quebrado da maneira que você acha que deveria.

portanto, atender às especificações e escrever html válido é bom para você, sem nenhuma desvantagem.

akira
fonte
Hum, em quais mecanismos de pesquisa você obtém classificações mais altas se atender às especificações?
2
A desvantagem seria o tempo de desenvolvimento adicional gasto, garantindo que todo o seu código atenda às especificações. Embora esse custo seja geralmente mínimo, ele ainda deve ser tratado como uma desvantagem.
21910 chatchau
@kinopiko: Se houver, não é um dos principais (Google, Yahoo, Bing, Ask). Ter uma bagunça completa de código que mesmo um desenvolvedor web experiente (humano) não pode ler provavelmente o atrapalha, mas o uso de alguns atributos "ilegais" tem efeito absolutamente nulo nas classificações.
usar o seguinte
Esse é o problema com a terminologia de validação. Você é válido ou não. Não há graus. HTML quebrado (por exemplo, tags não fechadas, tags estruturais perdidos / perdidos etc.) é inválido e prejudica o SEO, mas a maioria das pessoas não fala sobre isso quando diz "validação". Um iniciante pode querer usar um validador para garantir que não cometeu nenhum desses erros de iniciante, mas um desenvolvedor profissional não precisa, pois o código já é "válido o suficiente", por assim dizer, em termos de SEO.
Lèse majesté 17/10/10
1

Alguns erros de validação de HTML podem causar problemas de layout não óbvios (por exemplo, tags aninhadas / não fechadas incorretamente), erros de JavaScript (por exemplo, usando idmais de uma vez) e problemas para alguns usuários (por exemplo, não incluindo um altatributo em branco ou significativo nas imagens).

Se todas as nossas páginas forem validadas, é uma boa verificação automatizada que você pode fazer para descartar fontes de erros. Se você deixar alguns erros de validação porque sabe que eles não estão causando nenhum dano, sua verificação não será mais automatizada: você deve observar cada erro e lembrar que está tudo bem. Pessoalmente, prefiro quando os computadores reduzem a quantidade de trabalho que tenho que fazer, em vez de aumentá-la.

Paul D. Waite
fonte
1

Um ponto que ninguém mencionou são os desenvolvimentos futuros do navegador. Embora todos os navegadores de hoje lidem com marcações inválidas relativamente bem, isso nem sempre é o caso.

Os fabricantes de navegadores no futuro garantirão que seus navegadores funcionem de acordo com os padrões HTML / XHTML; portanto, é isso que os desenvolvedores da web também devem ter. Só porque um pouco de marcação inválida funciona agora não garante que funcione em navegadores futuros.

Loftx
fonte
Eu tenho que dizer que me pergunto se isso é verdade.
2
Sim, eu não consigo ver nenhum navegador descartando o suporte para a <font>tag ou seu tipo.
usar o seguinte
Não vejo qual é o problema - o suporte a marcações obsoletas ou obsoletas pode mudar no futuro. Ao negligenciar a implementação imperfeita do (X) HTML na maioria dos navegadores, certamente você estará mais seguro aderindo à marcação válida. Não há custo associado à marcação válida, além de simplesmente saber o que você está fazendo.
CJM
1

A validade ajuda a evitar incompatibilidades e mantém o código com manutenção. Os navegadores se recuperam de erros de marcação, mas às vezes de maneiras muito pouco intuitivas.


  • Baseado em DTD (HTML4, XHTML1 @ W3C) - Pode não valer a pena. DTD é primitivo e, por exemplo, não pode verificar a validade da maioria dos atributos. Você dificilmente entenderá erros sobre entidades e aninhamento.

  • Validador HTML5 - Sim . Definitivamente. O HTML5 é mais pragmático e permite algumas construções inofensivas que costumavam ser erros. O validador da OTOH Henri é muito mais completo e melhor na descoberta de problemas reais.


A validade do código gerado por JS pode ser importante, pois os navegadores operam no DOM, independentemente de como ele foi criado. Se você usa document.write(), você precisa ter o cuidado de obter a sintaxe correta (ela passa pelo mesmo analisador que a fonte da página).

Kornel
fonte
0

O Google e o Bing não usam, nunca usaram e nunca usarão a validação CSS ou HTML como fator de classificação.

A maioria dos sites tem entre dezenas e centenas de erros e você não precisa se preocupar com eles, porque todos os mecanismos de pesquisa se preocupam com a forma como a página é processada. Apenas verifique se o seu site é renderizado corretamente nos principais navegadores e na Pesquisa do Google .

Simon Hayter
fonte