Pergunta

Esta questão foi inspirado um pouco por este questão, em que o mais upvoted resposta recomendou a utilização de um recurso de HTML 5. ele certamente parecia ser um método bom para mim, mas fez-me curioso sobre o uso de recursos de uma futura especificação em geral.

HTML 5 oferece uma série de melhorias agradáveis, muitos dos quais podem ser usados ??sem causar problemas nos navegadores atuais.

Alguns exemplos:

// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>

Muitos desses novos recursos são projetados para torná-lo possível para navegadores aos formulários automaticamente validar, bem como dar-lhes melhores entradas (por exemplo, um selecionador de data). Alguns são apenas conveniente e parece ser uma boa maneira de se preparar para o futuro.

Atualmente, eles não quebrar nada (tanto quanto eu posso dizer) nos navegadores atuais e permitem código clientside limpo, genérico.

No entanto, embora todos eles são válidos em HTML 5, eles não são válidos para HTML 4, e HTML 5 ainda é um projecto neste momento.

É uma boa idéia para ir em frente e usar esses recursos cedo?

Existem questões de implementação navegador com eles que eu não percebi?

deveríamos estar desenvolvendo páginas da web agora que fazem uso de HTML 5 projectos de recursos?

Foi útil?

Solução

Há várias coisas a considerar:

  1. Em primeiro lugar, a validação não significa que muito, porque uma página HTML pode muito bem ser válido, mas mal autoria, inacessível, etc. Consulte Say não para "HTML válido" ícones e Enviando XHTML como texto / html Considerado nocivo (em referência aos ensaios hobo-web mencionados numa outra resposta)
  2. Perante isto, eu recomendo usar o novo DOCTYPE: a única razão para tê-lo em HTML5 é que é a menor coisa que modo normas gatilhos em navegadores, então se você quiser modo de padrões, ir com ele; você tem pouca ou nenhuma razão para usar outro, detalhado, DOCTYPE propenso a erros
  3. Como para as melhorias de formulários, você pode usar webforms2 JS biblioteca de Weston Ruter para trazer -lo para navegadores não-conscientes
  4. e, finalmente, sobre os atributos data-*, ele a) funciona em todos os navegadores (contanto que você usar getAttribute()), b) ainda é melhor do que abusar os atributos title ou class e c) não se preocupar com a validação como dissemos anteriormente que a validação não é que importante (é claro que é, mas não importa que sua página é inválido se os erros de validade são teimosos, e você já pode usar HTML5 validação no W3C validador, então ...); então não há nenhuma razão real para não usá-los também.

Outras dicas

Boa pergunta!

Em resumo: isso depende do seu contexto e tolerância ao risco:)

Um pouco mais:

  • I pensar é sempre bom para empurrar o envelope sobre a adoção precoce da tecnologia. Ele lhe dá uma vantagem sobre os retardatários no mundo comercial, e também lhe dá muito mais força para influenciar a tecnologia como ele emerge.

  • Se você não quer ter de código re-escrever ou atualizar sua fonte, então a adoção antecipada pode não ser para você. É perfeitamente respeitável querer escrever código sólida e estável que nunca tem que mudar, mas é inteiramente até você (e seu contexto de negócios)

Se a sua página depende muito do motor de busca posicionamento, pode valer a pena considerar que alguns motores de dar prioridade ao validar HTML (Fonte: http://www.hobo-web.co.uk/seo-blog/index.php/official- google-prefere-valid-html-css / ).

Além disso, vale a pena considerar que contando com os novos elementos de entrada data (como aqueles em Opera, possivelmente outros) permite mais conveniência por parte do desenvolvedor, que normalmente se opõe incluindo controles mais complexos Javascript que melhor servidor navegadores mais antigos (normalmente cair para um campo de entrada de texto simples).

É claro que e como sempre, não dependem de cheques lado do navegador e validar lado todos os servidores de entrada.

Por favor, não use os novos recursos antes que você possa testá-los em pelo menos um browser. Por exemplo, se você usar os agora formam funcionalidades, certifique-se de teste no Opera. Caso contrário, você provavelmente vai fazer mais mal do que bem, contribuindo para um legado envenenado lá fora.

Quando um recurso já está implementado em navegadores e você está testando com esses navegadores, com certeza, por favor usar os novos recursos.

Veja também um mais velhos resposta .

Consulte Robustez princípio :

No RFC 761 (Transmission Control Protocolo de 1980) computador americano cientista Jon Postel resumidos comunicações anteriores do desejado critérios de interoperabilidade para o Internet Protocol (cf. IEN 111 1 , RFC 760) como se segue:

implementações TCP deve seguir um princípio geral de robustez: ser conservador no que você fizer isso, liberal no que você aceitar a partir de outros .

Assim, imho, não.

Não vou implementar novos recursos de HTML, pelo menos até que eles têm o apoio de todos os principais navegadores.

Os clientes não se importam se sua página é válido, eles se preocupam muito mais se ele funciona cross browser. Mesmo se nós lutamos para implementar as mais recentes normas, haverá ainda clientes e empresas que nunca derramaram seu IE6, e IE6 será em sua lista de requisitos do navegador para ainda um tempo.

Os novos tipos de formulários são bem-vindas, no entanto, as formas devem ser verificados no lado do servidor.

Passando para HTML5 documentos existentes exigirá um grande esforço e adaptação e na minha estimativa não vai acontecer durante a noite. Espere pelo menos 3 anos, até que ele vai bater o mainstream.

Gostaria de usar HTML 5 apenas por diversão e aprendizagem, mas definitivamente eu não tocar em qualquer parte do meu código de produção (código existente) com esta nova norma, pelo menos por agora e até que eu tenha uma razão válida para apoiar este movimento .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top