Pergunta

Parece que o HTML 5 será suportado (parcialmente) pelo Firefox 3.1 e outros navegadores.Ele está adicionando suporte para vídeo e áudio como tags, mas essas são novas tags que o XHTML 1.0 Transitional não reconhece.Qual será o comportamento se eu usar uma nova tag HTML 5 em uma versão futura do Firefox, mas usar o DTD para XHTML?E se eu misturar a marcação HTML 5 com XHTML 1.0 Trans?

Isso está ficando confuso.Por que eles simplesmente não adicionaram essas tags ao XHTML?Como oferecemos suporte a XHTML e HTML 5?

Vídeo em HTML 5: http://www.youtube.com/watch?v=xIxDJof7xxQ

Foi útil?

Solução

Bem, em geral, o HTML é SGML e XHTML é expresso em XML. Por causa disso, a criação de XHTML está conectada com mais restrições (na forma de marcação) do que o HTML. (HTML baseado em SGML versus baseado em XML)

Como mencionado Wikipedia, HTML 5 também terá uma variante XHTML (XHTML 5).

Regra geral: você sempre deve usar a marcação válida. Isso também significa que você não deve usar o mencionado <video> ou <audio> Tags na transição XHTML 1.0, pois não são um elemento dessa especificação. Se você realmente preciso Para usar essas tags (que eu duvido muito), você deve usar o html 5/xhtml 5 dtd para especificar que seu documento está nesse doctype.

Usando o HTML 5 ou XHTML 5 no estado especificado da implementação (Afaik, o padrão ainda não está resolvido, ainda correto?) Poderia ser contraproducente, pois quase todos os usuários podem não ver o site renderizado Correclty de qualquer maneira.

EDIT 2013: Devido aos recentes votos e, como essa resposta aceita não pode ser excluída (por mim), gostaria de acrescentar que o processo de suporte e padronização do HTML5 é hoje em dia totalmente diferente do que era quando escrevi essa resposta cinco anos atrás . Como a maioria dos principais navegadores suporta a maioria das partes do rascunho do HTML5 e como muitas coisas podem ser corrigidas com poli -preenchimentos em navegadores mais antigos, uso principalmente o HTML5 agora.

Outras dicas

HTML5 é muito mais fácil de escrever do que o XHTML 1.0.

  1. Você não precisa declarar manualmente o "http://www.w3.org/1999/xhtml"Espaço para nome.

  2. Você não precisa adicionar atributos de tipo aos elementos de script e estilo (eles padrão ao texto/javascript e texto/css).

  3. Você não precisa usar um longo doctype, onde o navegador simplesmente ignora a maior parte. Você deve usaru003C!DOCTYPE html> , o que é fácil de lembrar.

  4. Você não tem a opção de incluir ou não incluir um DTD URI no doctype e não tem escolha entre transição e rigoroso. Você só tem um documentador rigoroso que chama o modo de padrões completos. Dessa forma, você não precisa se preocupar em estar acidentalmente no modo de quase padrões ou no modo de peculiaridades.

  5. A declaração de charset é muito mais simples. É apenasu003Cmeta charset="utf-8"> .

  6. Se você achar confuso escrever elementos vazios comou003Cname> , você pode usaru003Cname/> , Se você quiser.

  7. HTML5 tem um validador muito bom em http://validator.nu/. O validador não está vinculado por um DTD ruim que não pode expressar todas as regras.

  8. Você não precisa adicionar //

  9. Você pode usar o incorporação, se necessário.

Apenas em termos de sintaxe, quando você usa o HTML5, você acaba com mais limpo, mais fácil de ler a marcação que sempre chama o modo de padrões. Quando você usa o XHTML 1.0 (servido como texto/html), está especificando um monte de CRUD (para validar contra um DTD ruim) que o navegador fará automaticamente.

Mitos e equívocos abundam neste tópico.

  1. XHTML 1.0 é mais antigo que HTML 5.Não pode usar nenhum vocabulário novo.Na verdade, seu principal ponto de venda é que ele usa exatamente o mesmo vocabulário do HTML 4.01.

  2. Não haverá XHTML 1.2 – muito provavelmente.E não é necessário.XHTML 5 é a serialização XML do HTML 5.Vocabulário idêntico, regras de análise diferentes.

  3. HTML nunca foi tratado como verdadeiro SGML nos navegadores.Nenhum navegador jamais implementou um analisador compatível com SGML.O HTML 5 tornará esse fato uma regra e a serialização do HTML seguirá o padrão de fato atual.Talvez se possa dizer que é "SGML-ish".

  4. Como foi afirmado, o DTD serve exatamente a um propósito NOS NAVEGADORES: distinguir entre o modo de conformidade com os padrões e o modo de peculiaridades.Portanto, afeta apenas o estilo e o script.Se você estiver usando frames em uma página com um tipo de documento estrito, eles serão renderizados perfeitamente.Assim como <embed> e até mesmo <marquee> - embora o último seja uma abominação e o primeiro não esteja em nenhum padrão atual.No entanto, faz parte do HTML 5.

  5. Vídeo e áudio podem ser usados ​​independentemente da serialização, XML ou HTML.eles fazem parte do HTML 5 e do XHTML 5.Assim que o estágio de análise terminar, um navegador terá construído um DOM interno do documento.Esse DOM será o mesmo para todos os efeitos práticos, independentemente da serialização.E sim, o XHTML enviado com text/html ainda é html normal, independentemente do tipo de documento.

Você pode estar olhando para o problema da maneira errada, porque o relação com xhtml 1.x Seção, HTML 5 estados:

"Esta especificação visa substituir o XHTML 1.0 como a definição normativa da serialização XML do vocabulário HTML".

Agora que a linguagem é controversa (o XHTML 2 WG o contestou e o HTML WG está tentando resolver as diferenças ...), mas é aí que estamos agora.

Algumas anotações:

Lembre -se de que os Doctypes servem apenas um propósito nos navegadores: alterne entre peculiaridades, quase padrões e modo de padrões. Portanto, usando <video> e <audio> trabalhará com qualquer declaração Doctype. IMO, usando um xhtml doctype é bastante inútil, pois todas as páginas você envia text/html O tipo MIME é analisado como HTML (tag-soup) de qualquer maneira. Eu sugiro usar o html5 doctype (<!doctype html>), pois é mais fácil lembrar e não o forçará na sintaxe XML sem um motivo.

Por que eles não apenas adicionaram essas tags ao XHTML?

Eles realmente fizeram, há uma serialização XML de HTML 5 (XHTML5). Para usar isso, você deve enviar suas páginas com um tipo MIME XML, como application/xhtml+xml. Isso ainda não é (ainda) apoiado pelo IE, no entanto.

Qual deve ser o comportamento se eu usar uma nova tag HTML 5 em uma versão futura do Firefox, mas use o DTD para XHTML?

E se eu misturar a marcação HTML 5 com o XHTML 1.0 trans?

Se sua marcação não for implementada como parte do seu DTD escolhido - então logicamente, essa marcação não deve ser seguida. Mas as implementações do navegador nem sempre são estritamente lógicas.

Por que eles não apenas adicionaram essas tags ao XHTML? Como apoiamos o XHTML e o HTML 5?

O XHTML não é melhor que o HTML, mas é mais adequado para alguns aplicativos. Um dos principais benefícios do XHTML é que ele pode ser transformado em diferentes formatos usando o XSLT. Por exemplo, você pode usar o XSLT para transformar automaticamente o XHTML em um feed RSS ou outro formato XML.

Você não precisa suportar os dois formatos - pesa os benefícios/desvantagens para cada um com os requisitos do seu projeto. O HTML 5 provavelmente não será padrão por algum tempo.

(X) HTML5 é apenas a próxima versão. Você deve usar o XHTML1.1 até que o XHTML5 seja bem suportado.

Você provavelmente não deve usar o perfil SGML de compatibilidade com compatibilidade com o HTML5. Isso torna as coisas mais difíceis para raspadores e pequenos analisadores.

Sua Doctype dirá ao navegador se você estiver usando HTML5 ou XHTML. Você não pode simplesmente empurrar uma etiqueta de um doctype em um documento de outro doctype e espera que funcione. Sem um doctype, é tudo apenas uma sopa de etiqueta de qualquer maneira.

Não use coisas como tags de vídeo/áudio quando 99% das pessoas não conseguirem visualizá -lo corretamente em seu navegador. Para qualquer um desses dois exemplos, sugiro usar o FLV.

Quanto ao motivo pelo qual eles não o adicionam ao XHTML ... primeiro 1,0 não é a versão mais recente, o 1.1 foi lançado há um tempo.

Eventualmente, as coisas são padronizadas e veremos esses tipos de tags nos dois padrões, mas, por enquanto, basta fazer o possível para garantir que a maior quantidade de pessoas possa visualizar seu conteúdo.

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