Idealmente, avremmo diversi browser che supportano gli stessi standard e lo stesso codice producendo lo stesso risultato su tutti i browser.
Questo non è ancora successo. Quali sono i motivi per cui?
Idealmente, avremmo diversi browser che supportano gli stessi standard e lo stesso codice producendo lo stesso risultato su tutti i browser.
Questo non è ancora successo. Quali sono i motivi per cui?
No, non è realistico, perché a volte le specifiche sono confuse e tutti comprendono qualcosa di diverso dagli altri. Dopotutto siamo solo umani. Può esserci solo un vero standard quando c'è un solo fornitore con una versione di un prodotto.
Joel ha scritto un eccellente articolo su questo argomento, chiamato Auricolari marziani .
Penso che lo citerò qui, poiché questa è la migliore spiegazione sul perché non lo vedremo mai visto che sono coinvolti diversi fornitori:
Those documents are super confusing. The specs are full of statements like “If a sibling block box (that does not float and is not absolutely positioned) follows the run-in box, the run-in box becomes the first inline box of the block box. A run-in cannot run in to a block that already starts with a run-in or that itself is a run-in.” Whenever I read things like that, I wonder how anyone correctly conforms to the spec.
Inoltre, c'è concorrenza ed evoluzione sul mercato. Prendi ad esempio le caselle di completamento automatico. Tutti i principali browser li hanno già, ma non esiste uno standard definito. Il W3C è troppo lento e nel momento in cui arriva lo standard, ci sono già 5 diverse implementazioni con comportamenti diversi là fuori in the wild, che devi anche supportare, se vuoi essere competitivo. Un altro ottimo esempio di questo problema è l'incorporamento di video.
Detto questo: finché hai bisogno di supportare vari browser e ambienti diversi, preparati a fare aggiustamenti.
No, perché il W3C in molte specifiche attribuisce la responsabilità dell'implementazione da qualche parte agli implementatori di UA (implementatori di browser). Perché lo dico, perché di solito scrivo i miei articoli direttamente dalle specifiche del W3C e vedo questi casi. Ad esempio, W3C dice che i browser dovrebbero prendere il consenso dell'utente sulla condivisione della loro posizione (tramite API di geolocalizzazione ), ma non dì come dovrebbero chiederlo. Ciò potrebbe comportare diversi tipi di messaggi mostrati in modo diverso (popup, slide-down, ecc.) In diversi browser.
In generale, possiamo dire che:
Finché ci sono alcuni requisiti di implementazione pluralistici , la coerenza tra i browser è difficile da ottenere .
Possiamo vedere solo i browser coerenti quando W3C imperativamente dice agli implementatori del browser cosa fare.
Non succederà nel modulo che descrivi.
Tuttavia; se si codifica in modo conservativo, non ci vuole molto per scrivere codice che funzioni in modo affidabile e prevedibile su tutti i nuovi browser. Abbiamo già fatto molta strada negli ultimi dieci anni - anche IE implementa correttamente un ampio sottoinsieme delle raccomandazioni del W3C, abbastanza da rendere i siti web agnostici rispetto ai browser.
Ovviamente, se vuoi fare cose che non fanno parte dei consigli, o utilizzare funzioni che sono state specificate in modo vago o implementate in modo errato (o non lo sono affatto), allora sei da solo.
È estremamente improbabile che accada presto - anzi, direi che quando / se succede, è un strong segnale che il mondo è andato avanti, e semplicemente non gli importa molto del web browser più.
Il problema è abbastanza semplice: la maggior parte del limite alla scrittura di nuovi standard per le cose ancora più interessanti che i browser potrebbero fare è la mancanza (anche ragionevole) di conformità con gli standard esistenti. Guardando da una direzione leggermente diversa, i browser minuti si conformano agli standard esistenti (o addirittura ragionevolmente vicini al conforming), è quasi certo che almeno alcune persone cominceranno a pensare "Ma wouldn "Sarebbe bello se potessimo ...", e poi faranno una delle due cose: o implementeranno la loro idea in un browser, e poi lavoreranno sulla standardizzazione della loro idea (quasi inevitabilmente prima di qualsiasi altro strumento del browser it), o lavoreranno a scrivere uno standard per tale comportamento, anche se il browser no lo implementa ancora.
La linea di fondo è che l'implementazione di standard attraverso i browser quasi inevitabilmente è in ritardo rispetto all'invenzione di nuovi standard con cui conformarsi. L'unico modo in cui i browser possono raggiungerli è se le persone smettono di scrivere / progettare cose nuove da fare per i browser.
Allo stesso tempo, mi sento obbligato a sottolineare che è vero anche il contrario: si tratta di un insieme in costante crescita di standard con cui i browser si conformano sempre più da vicino. Non molto tempo fa, il punteggio migliore di qualsiasi browser ottenuto con il test Acid3 era 93/100. Come succede, è esattamente lo stesso punteggio che IE attualmente ottiene ...
Ideally, we would have different browsers supporting the same standards and same code producing the same result on all browsers.
Ciò solleva la questione del perché abbiamo bisogno di browser diversi. Se tutti fanno praticamente la stessa cosa, un browser sarà sufficiente per tutti. Sarebbe davvero l'ideale. Niente più inutili duplicati di sforzi e niente più codice specifico per il browser. Le persone finalmente potrebbero iniziare a costruire su solide fondamenta.
Leggi altre domande sui tag standards internet-explorer web-browser browser-compatibility