Idealmente, avremmo browser diversi che supportano gli stessi standard e lo stesso codice producendo lo stesso risultato su tutti i browser.
Non è ancora successo. Quali sono le ragioni?
gopher
.
Idealmente, avremmo browser diversi che supportano gli stessi standard e lo stesso codice producendo lo stesso risultato su tutti i browser.
Non è ancora successo. Quali sono le ragioni?
gopher
.
Risposte:
No, non è realistico, perché a volte le specifiche sono confuse e tutti capiscono qualcosa di diverso rispetto ad altri. Dopotutto siamo solo umani. Ci può essere l'unico vero standard quando esiste un solo fornitore con una versione di un prodotto.
Joel ha scritto un eccellente articolo su questo argomento, chiamato Martian Headsets .
Penso che lo citerò qui, poiché questa è la migliore spiegazione sul perché non lo vedremo mai finché saranno coinvolti diversi fornitori:
Quei documenti sono molto confusi. Le specifiche sono piene di istruzioni come “Se una casella di blocco fratelli (che non galleggia e non è posizionata in modo assoluto) segue la casella di run-in, la casella di run-in diventa la prima casella in-line della casella di blocco. Un run-in non può essere eseguito in un blocco che inizia già con un run-in o che è esso stesso un run-in. " Ogni volta che leggo cose del genere, mi chiedo come qualcuno si conformi correttamente alle specifiche.
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 quando arriva lo standard, ci sono già 5 diverse implementazioni con comportamenti diversi in circolazione, che devi supportare anche se vuoi essere competitivo. Un altro ottimo esempio di questo problema è l'incorporamento dei video.
Detto questo: fintanto che è necessario supportare vari browser e ambienti diversi, prepararsi ad apportare modifiche.
No, perché il W3C in molte specifiche attribuisce la responsabilità dell'implementazione da qualche parte agli implementatori UA (browser implementers). Perché lo dico, perché di solito scrivo i miei articoli direttamente dalle specifiche del W3C e vedo questi casi. Ad esempio, W3C afferma che i browser dovrebbero prendere il consenso dell'utente sulla condivisione della loro posizione (tramite l' API di geolocalizzazione ), ma non dice come dovrebbero richiederlo. 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 alcune implementazioni di requisiti pluralistici , la coerenza tra i browser è difficile da raggiungere .
Possiamo vedere browser coerenti solo quando il W3C dice imperativamente cosa fare.
Non succederà nella forma che descrivi.
Tuttavia; se codifichi 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 attualmente implementa correttamente un ampio sottoinsieme delle raccomandazioni del W3C, abbastanza per creare effettivamente siti Web indipendenti dal browser.
Ovviamente, se vuoi fare cose che non sono nei consigli o utilizzare funzionalità che sono vagamente speculate o che sono ancora implementate in modo errato (o per niente), allora sei da solo.
È estremamente improbabile che accada presto - in effetti, arriverei al punto di dire che quando / se succede, è un forte segno che il mondo è passato e semplicemente non si preoccupa più dei browser Web .
Il problema è abbastanza semplice: la maggior parte del limite per la scrittura di nuovi standard per cose ancora più interessanti che i browser potrebbero fare è la mancanza (anche ragionevole) di conformità con gli standard esistenti. Guardandolo da una direzione leggermente diversa, i minuti browser si conformano agli standard esistenti (o addirittura si avvicinano ragionevolmente alla conformazione), è quasi certo che almeno alcune persone inizieranno a pensare "Ma non sarebbe bello se noi potrebbero ... ", 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 che qualsiasi altro browser la implementi), o lo faranno lavorare per scrivere uno standard per quel comportamento, anche se nessun browser 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 tutti i browser possono recuperare è se le persone smettono di scrivere / progettare nuove cose da fare per i browser.
Allo stesso tempo, mi sento in dovere di sottolineare che più o meno è vero anche il contrario: si tratta di un insieme di standard in costante crescita a cui i browser si conformano sempre più da vicino. Non molto tempo fa, il miglior punteggio ottenuto da qualsiasi browser nel test Acid3 era 93/100. In effetti, è esattamente lo stesso punteggio che IE attualmente ottiene ...
Idealmente, avremmo browser diversi che supportano gli stessi standard e lo stesso codice producendo lo stesso risultato su tutti i browser.
Ciò solleva la questione del perché abbiamo bisogno di browser diversi. Se tutti fanno sostanzialmente la stessa cosa, un browser sarà sufficiente per tutti. Sarebbe davvero l'ideale. Niente più inutili duplicazioni di sforzi e niente più codice specifico del browser. Alla fine le persone potevano iniziare a costruire su solide basi.