Domanda

Sembra che HTML 5 sarà supportato (parzialmente) da Firefox 3.1 e altri browser. Sta aggiungendo il supporto per video e audio come tag, ma questi sono nuovi tag che XHTML 1.0 Transitional non riconosce. Quale dovrebbe essere il comportamento se uso un nuovo tag HTML 5 in una versione futura di Firefox ma utilizzo DTD per XHTML? E se mescolassi il markup HTML 5 con XHTML 1.0 Trans?

Questo sta diventando confuso. Perché non hanno semplicemente aggiunto questi tag a XHTML? Come supportiamo sia XHTML che HTML 5?

Video su HTML 5: http://www.youtube.com/watch?v=xIxDJof7xxQ

È stato utile?

Soluzione

Bene, generalmente HTML è SGML e XHTML è espresso in XML. Per questo motivo, la creazione di XHTML è connessa con più restrizioni (sotto forma di markup) rispetto a HTML. ( Basato su SGML e HTML basato su XML )

Come menzionato Wikipedia , HTML 5 avrà anche una variante XHTML (XHTML 5).

Regola empirica: dovresti sempre usare un markup valido. Ciò significa anche che non è necessario utilizzare i tag <video> o <audio> menzionati in XHTML 1.0 Transitional, poiché questi non sono un elemento di tale specifica. Se hai davvero bisogno di usare quei tag (di cui dubito fortemente), allora dovresti assicurarti di usare il DTD HTML 5 / XHTML 5 per specificare che il tuo documento è in quel DOCTYPE.

L'uso di HTML 5 o XHTML 5 nel dato stato dell'implementazione (AFAIK, lo standard non è nemmeno definito, tuttavia, corretto?) potrebbe essere controproducente, poiché quasi tutti gli utenti potrebbero non vedere comunque il sito Web reso corretti.

Modifica 2013: A causa dei recenti voti negativi e poiché questa risposta accettata non può essere eliminata (da me), vorrei aggiungere che il processo di supporto e standardizzazione di HTML5 è oggi totalmente diverso da quello che era quando ho scritto questa risposta cinque anni fa. Poiché la maggior parte dei browser principali supporta la maggior parte delle bozze di HTML5 e poiché molte cose possono essere riparate con i polyfill nei browser più vecchi, ora uso principalmente HTML5.

Altri suggerimenti

HTML5 è molto più facile da scrivere rispetto a XHTML 1.0.

  1. Non è necessario dichiarare manualmente il " http: // www .w3.org / 1999 / xhtml quot &; namespace.

  2. Non è necessario aggiungere attributi di tipo a script e elementi di stile (per impostazione predefinita sono text / javascript e text / css).

  3. Non è necessario utilizzare un lungo tipo di documento in cui il browser ne ignora la maggior parte. Devi usare & Lt;! DOCTYPE html & Gt ;, che è facile da ricordare.

  4. Non hai la possibilità di includere o meno un dtd uri nel tipo di documento e non puoi scegliere tra transitorio e rigoroso. Hai solo un tipo di documento rigoroso che invoca la modalità standard completa. In questo modo, non devi preoccuparti di essere accidentalmente in modalità Quasi standard o Quirks.

  5. La dichiarazione del set di caratteri è molto più semplice. È solo & Lt; meta charset = & Quot; utf-8 & Quot; & Gt ;.

  6. Se trovi confuso scrivere elementi vuoti come < nome > ;, puoi usare < nome / > ;, se vuoi.

  7. HTML5 ha un validatore davvero valido su http://validator.nu/ . Il validatore non è vincolato da un DTD schifoso che non può esprimere tutte le regole.

  8. Non è necessario aggiungere // <! [CDATA ecc. negli script incorporati o nei fogli di stile (in determinate situazioni) per convalidare.

  9. Puoi usare embed se necessario.

Solo in termini di sintassi, quando si utilizza HTML5, si ottiene un markup più pulito e più facile da leggere che invoca sempre la modalità standard. Quando usi XHTML 1.0 (servito come text / html), stai specificando un sacco di greggio (al fine di convalidare contro un dtd scadente) che il browser farà automaticamente.

Miti e idee sbagliate abbondano in questa discussione.

  1. XHTML 1.0 è più vecchio di HTML 5. Non può usare nessun nuovo vocabolario. In effetti, il suo principale punto di forza era che utilizzava esattamente lo stesso vocabolario di HTML 4.01.

  2. Non ci sarà XHTML 1.2 - molto probabilmente. E non è necessario. XHTML 5 è la serializzazione XML di HTML 5. Vocabolario identico, regole di analisi diverse.

  3. HTML non è mai stato trattato come vero SGML nei browser. Nessun browser ha mai implementato un parser conforme a SGML. HTML 5 trasformerà questo fatto in una regola e la serializzazione HTML seguirà di fatto lo standard attuale. Si potrebbe forse dire che è "SGML-ish".

  4. Come è stato affermato, il DTD ha esattamente uno scopo nei BROWSERS, ovvero distinguere tra la modalità di conformità agli standard e la modalità delle stranezze. Quindi influenza solo lo stile e lo scripting. Se stai usando i frame su una pagina con doctype astrict, verranno visualizzati bene. Come sarà & Lt; embed & Gt; e anche < tendone > - anche se quest'ultimo è un abominio e il primo non è in alcuno standard attuale. Fa parte di HTML 5, tuttavia.

  5. È possibile utilizzare video e audio indipendentemente dalla serializzazione, da XML o HTML. fanno parte sia di HTML 5 che di XHTML 5. Una volta terminata la fase di analisi, un browser avrà creato un DOM interno del documento. Tale DOM sarà per tutti gli scopi pratici lo stesso indipendentemente dalla serializzazione. E sì, XHTML inviato con text / html è ancora HTML normale, indipendentemente dal tipo di documento.

Potresti guardare il problema nel modo sbagliato perché relazione con la sezione XHTML 1.x , HTML 5 afferma:

  

" Questa specifica intende sostituire XHTML 1.0 come definizione normativa della serializzazione XML del vocabolario HTML. "

Ora quel linguaggio è controverso (il WG XHTML 2 lo ha contestato e il WG HTML sta cercando di risolvere le differenze ...) ma è qui che ci troviamo adesso.

Un paio di note:

Tieni presente che i doctypes hanno solo uno scopo nei browser: passare da una stranezza, quasi standard a modalità standard. Pertanto, l'utilizzo di <video> e <audio> funzionerà con qualsiasi dichiarazione di tipo di documento. IMO, l'utilizzo di un doctype XHTML è abbastanza inutile, poiché ogni pagina che invii con il tipo MIME text/html viene comunque analizzata come HTML (tag-soup). Suggerisco di usare il doctype HTML5 (<!doctype html>), poiché è più facile da ricordare e non ti costringe nella sintassi XML senza motivo.

  

Perché non hanno semplicemente aggiunto questi tag a   XHTML?

Lo hanno effettivamente fatto, c'è una serializzazione XML di HTML 5 (XHTML5). Per usarlo, devi inviare le tue pagine con un tipo MIME XML, come application/xhtml+xml. Questo non è (ancora) supportato da IE, tuttavia.

  

Quale dovrebbe essere il comportamento se   Uso un nuovo tag HTML 5 in futuro   versione di Firefox ma utilizzare il DTD per   XHTML?

     

E se mescolassi il markup HTML 5 con   XHTML 1.0 Trans?

Se il markup non è implementato come parte del DTD scelto, quindi logicamente non è necessario seguirlo. Ma le implementazioni del browser non sono sempre strettamente logiche.

  

Perché non hanno semplicemente aggiunto questi tag a   XHTML? Come supportiamo entrambi XHTML   e HTML 5?

xHTML non è migliore dell'HTML, ma è più adatto ad alcune applicazioni. Uno dei principali vantaggi di xHTML è che può essere trasformato in diversi formati utilizzando XSLT. Ad esempio, è possibile utilizzare XSLT per trasformare automaticamente xHTML in un feed RSS o in un altro formato XML.

Non è necessario supportare entrambi i formati: soppesare i vantaggi / gli svantaggi di ciascuno con i requisiti del progetto. HTML 5 probabilmente non sarà standard per un bel po 'di tempo.

(X) HTML5 è solo la versione successiva. Dovresti usare XHTML1.1 fino a quando XHTML5 non è ben supportato.

Probabilmente non dovresti usare il profilo SGML di retrocompatibilità di HTML5. Rende le cose più difficili per raschietti e piccoli parser.

Il tuo doctype indicherà al browser se stai utilizzando HTML5 o XHTML. Non puoi semplicemente inserire un tag da un tipo di documento in un documento di un altro tipo e aspettarti che funzioni. Senza un doctype, è comunque solo tag soup.

Non usare cose come i tag video / audio quando il 99% delle persone non sarà in grado di vederlo correttamente sul proprio browser. Per uno di questi due esempi suggerirei di utilizzare FLV.

Per quanto riguarda il motivo per cui non lo aggiungono a XHTML ... in primo luogo 1.0 non è la versione più recente, 1.1 è stato rilasciato qualche tempo fa.

Alla fine le cose vengono standardizzate e vedremo questi tipi di tag in entrambi gli standard, ma per ora fai solo quello che puoi per garantire che la maggior parte delle persone possano visualizzare i tuoi contenuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top