HTML5: W3C vs WHATWG. Quale dà le specifiche più autorevoli?

Sono a metà strada con un parser html e ho trovato che html5 definisce esplicitamente le regole del pollice per analizzare l’ html male formato . (E io ero solito dedurli dai DTD, sospirare)

Adoro questo fatto, ma so bene che html5 non è ancora finalizzato (anche io mi chiedo se lo sarà mai) e che non è sviluppato dal W3C, ma dal WHATWG.

Cercando le specifiche che mi servono sono presentato con:

  • 8.2 sezione del W3C TR
    http://www.w3.org/TR/html5/syntax.html#parsing

o

  • 11.2 sezione delle web-app WHATWG / lavoro corrente
    http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html

Se non fosse per i numeri di sezione indurerei quelli sono semplicemente gli stessi. Ma la diversa numerazione mi fa meravigliare. Quale versione è, presumibilmente, la più autorevole?

WHATWG sembra avere più sezioni, e ad essere stato aggiunto da quando W3C ha caricato la sua raccomandazione del candidato.

L’aggiornamento del W3C alla versione WHATWG?
O si attaccheranno al loro attuale candidato fino a quando non raggiungerà lo stato di raccomandazione ufficiale?

Quali specifiche HTML sono noi poveri diavoli che dovremmo seguire, in caso di dubbio?

Dipende da chi chiedi. Veramente. La politica di questo è brutta. E per peggiorare le cose, le specifiche non sono ancora completamente stabili. Avrei pensato che le due specifiche sarebbero state sostanzialmente le stesse nelle sezioni di analisi, poiché la sezione 1.1.1 che elenca le differenze non menziona l’analisi. Ma poi ho fatto un web diff e ho visto che ci sono sottili differenze nel testo. Direi che se stai implementando le specifiche per parlare con i giocatori coinvolti di eventuali differenze tra le specifiche, utilizza le mailing list pubbliche. Ad ogni modo, mi dispiace di non poterti dare una risposta chiara.

Scegli sempre WHATWG su W3C, senza eccezioni.

Anne van Kesteren , (membro di WHATWG che ha contribuito in maniera determinante alle specifiche prima che le specifiche WHATWG e W3C divergessero, e che rimane uno dei principali contributori alle specifiche WHATWG) descrive la situazione attuale tra WHATWG e W3C come segue sul suo blog :

Il W3C ha forgiato lo standard HTML [WHATWG] per la prima volta. Come sempre, è piuttosto disastroso:

  • Cancellato tutta la cronologia Git del documento.
  • Non ha documentato come hanno trasformato il documento. I problemi di disallineamento sono già stati segnalati e sarà probabilmente un lungo periodo, se non mai, prima che tutti i bug dovuti a questo processo siano scoperti, poiché non era aperto.
  • Non discutere i piani con la comunità più ampia.
  • Non discutere i piani con la gente da cui stavano biforcandosi.
  • Non ha nemmeno discusso i piani con i membri del gruppo di lavoro della piattaforma Web W3C.
  • Cancellato la sezione dei riconoscimenti.
  • Cancellato il copyright e le informazioni sulla licenza e sostituito con il proprio.

Risposta distorta da un editor di WHATWG HTML qui. Speriamo che i fatti possano parlare da soli.

Lo standard vivente WHATWG dovrebbe essere considerato autorevole. È costantemente lavorato da una grande comunità di contributori, inclusi tutti i fornitori di browser. Nessun fornitore di browser implementa secondo W3C HTML; per alcuni come Firefox e Chrome questa è una questione di politica dichiarata pubblicamente.

Il WHATWG Living Standard riceve costantemente correzioni di bug e nuove funzionalità. Per ulteriori informazioni su questo modello di sviluppo delle specifiche, che si avvicina di più alle moderne pratiche di sviluppo del software, vedere Che cosa significa “Standard vivente”? .

Sfortunatamente, il W3C a volte copia e incolla il nostro lavoro sul proprio sito Web e inserisce il proprio logo su di esso e cambia i nomi degli editori e così via. Lo fanno per una serie di motivi, uno dei più grandi dei quali è volto a salvare per il bene delle loro società membro paganti ( esempio di loro affermando questo ). Quel che è peggio, a loro piace rilasciare “versioni” (come HTML “5.0”, “5.1”, ecc.) Che sono solo versioni obsolete che mancano correzioni di bug e funzionalità che intasano le pagine dei risultati di ricerca, causando confusione come questa stessa domanda. Stiamo attualmente monitorando la confusione causata da queste forcelle , di cui l’HTML è solo uno.

Puoi tenere traccia dei loro progressi sul lavoro di copia e incolla nel tracker dei problemi o in commit come questo . È un gioco divertente per individuare i bug che introducono mentre si fa questo lavoro di copia-e-incolla, poiché generalmente non leggono né comprendono il contenuto che stanno copiando, causando errori e incongruenze diffuse.

OK, alla fine sono arrivato alla mia conclusione e lo condividerò.

Seguirò la versione del W3C: ciecamente.

Politicamente parlando non è una decisione semplice. Lasciatemi spiegare.

Ero estremamente scettico riguardo w3c, e forse ho persino odiato il loro coraggio durante l’intero dibattito / debacle di XHTML . Ho visto l’ascesa di WHATWG come l’arrivo dei nostri pragmatici salvatori: persone che ammettevano apertamente che l’HTML non può essere trasformato in un linguaggio rigido e rigoroso derivato dall’XML, mentre l’intero Internet ne infastidisce.

Quindi, visto questo punto di vista, dovrei andare con le specifiche WHATWG, non dovrei?

No perchè?
WHATWG non stabilisce le versioni ufficiali . Mi piacerebbe che lo facessero, ma loro no.

Ritengono che le versioni siano troppo rigide per il loro … diciamo l’atteggiamento dell’anca .
Hanno invece solo uno standard live . (e traccia lo stato di implementazione di ogni singola funzione dai principali browser)

Ma io non sono un browser importante, sono un piccolo implementatore, non posso riferirmi ad uno standard live .
Beh, a meno che non vada pazzo per questo e rilascio costantemente , come se non ci fosse un domani.
(è una specie di cosa sta succedendo con firefox e chrome)

Quindi, per infinita follia frenetica, devo scegliere la sanità mentale. E W3C offre versioni lucide e numerate delle specifiche. E posso affermare di essere conforms a una di quelle versioni .

In caso di dubbi, cerca di far corrispondere il comportamento dei browser effettivi. Questo è tutto ciò che conta davvero.

In generale, WHATWG è probabilmente più attuale del W3C, sebbene possa includere più cose che i browser non supportano (ancora).

Puoi pensare al W3C come a scattare istantanee di WHATWG in determinati punti nel tempo, stabilizzandoli, e poi indurendoli, senza mai essere modificati.

  • W3C HTML5 è stato finalizzato il 28 ottobre 2014.
  • W3C HTML5.1 è stato finalizzato il 1 ° novembre 2016.
  • W3C HTML5.2 è attualmente in “Working Draft” e probabilmente non sarà finalizzato fino al 2019.