2012-08-02 9 views
10

Qual è la differenza tra i termini "obsoleto" e "deprecato" per quanto riguarda l'HTML? Mi sembra di vedere molti elementi contrassegnati come "obsoleti" in HTML5 ...HTML obsoleto e deprecato

+0

Volevo solo dire che ho creato un bookmarklet per rimuovere gli attributi obsoleti dal markup al volo e sputa la sorgente 'generata' in modo da poter vedere di cosa hai bisogno per liberarti del tuo codice. Sentiti libero di usarlo. http://keithwyland.github.com/attrebuke/ – keithwyland

risposta

10

Nella specifica HTML 4.01, la clausola 4.1 Definitions definisce "deprecato" e "obsoleto" come termini tecnici. In breve, una funzionalità deprecata è qualcosa che non dovresti usare, ma i browser dovrebbero continuare a supportarlo. Una funzionalità obsoleta è qualcosa che viene elencata solo per scopi storici, non definiti, e non è richiesto il supporto del browser (sebbene in pratica esista ancora in genere). HTML 4.01 dichiara la maggior parte dei vecchi elementi e attributi di presentazione come deprecati. Solo alcuni elementi di poca importanza sono dichiarati obsoleti lì.

Nella bozza HTML5 W3C, la terminologia è diversa. Non usa affatto la parola "deprecato" (tranne quando si fa riferimento all'uso di questa parola in HTML 4.01). Non definisce "obsoleto" come termine tecnico (applicabile alle caratteristiche dell'HTML), ma usa molto la parola. La parola è definita in modo implicito nella sezione . La bozza dice, con toni e specialità leggermente variabili a seconda delle caratteristiche, gli autori non usano funzionalità obsolete ma si aspetta che i browser continuino a supportarli. Contiene anche descrizioni dettagliate della loro sintassi e semantica, in parte anche più dettagliate rispetto alle specifiche precedenti.

Nella bozza HTML5, la maggior parte delle funzionalità obsolete sono anche classificate come "non conformi", con la dichiarazione che "non devono essere utilizzate dagli autori". Queste funzionalità coprono la maggior parte delle funzionalità deprecate in HTML 4.01 e altre ancora, incluse funzionalità che non erano affatto in HTML 4.01.

Ad esempio, l'elemento font è obsoleto in HTML 4.01, obsoleto in HTML5. Quindi, in linea di principio, HTML 4.01 che non dovresti usare, HTML5 dice che non devi usarlo (e ai validatori HTML5 viene detto di emettere un messaggio di errore, non solo un avvertimento). In pratica, la differenza è più piccola, principalmente solo una questione di principio.I browser devono ancora analizzare l'elemento e aggiungerlo nell'albero del documento, e sono tenuti a implementarlo come prima.

+0

Grazie! E 'stato incredibilmente utile! –

+0

Qualsiasi riferimento all'ultima frase "I browser sono ancora necessari per supportare l'elemento."? – Pacerier

+0

@Pacerier, clausola [11.3.4 Altri elementi, attributi e API] (http://www.w3.org/TR/html5/obsolete.html#other-elements,-attributes-and-apis) dice: "The l'elemento font deve implementare l'interfaccia HTMLFontElement. "Questo include i vecchi attributi. Clausola [10.3.4 Phrasing content] (http://www.w3.org/TR/html5/rendering.html#phrasing-content-0) descrive l'effetto visivo. Certo, questo è solo "suggerimento di rendering", quindi modifico il testo; non è formalmente un requisito ma una raccomandazione forte. –

0

Obsoleto generalmente significa che è stato sostituito con qualcos'altro.

Deprecarsi significa che gli sviluppi futuri potrebbero non supportarlo.

8

Il dizionario racconta la storia abbastanza bene:

Deprecated: Express disapprovazione.

Obsolete: non più prodotto o utilizzato; obsoleto.

È raccomandato che non si usa deprecated elements, perché sarà probabilmente non essere supportate in futuro, mentre obsolete elementi sono già stati interrotti da un uso.

+0

Mi piace [questa definizione] (http://computer.yourdictionary.com/deprecate) per deprecare meglio. * Per rendere non valido o obsoleto rimuovendo o segnalando l'oggetto. Quando i comandi o le istruzioni in una lingua sono pianificati per l'eliminazione nelle versioni future del compilatore o del motore di rendering, si dice che siano deprecati. I programmatori dovrebbero iniziare a rimuoverli dal codice sorgente nelle successive revisioni dei loro programmi. * –

0

Nella domanda si fa riferimento a un post del blog che successivamente collega alla specifica W3 per quanto riguarda gli elementi obsoleti.

http://www.w3.org/TR/html5/obsolete.html#obsolete

Così come il blog si è collegato al sfugge elementi obsoleti non dovrebbe mai essere utilizzato, non ci sono alternative disponibili. Per gli elementi deprecati, i browser in genere continueranno a supportarli e li renderanno compatibili con le versioni precedenti, ma la tua pagina non supererà la convalida della conformità.

Problemi correlati