Domanda

Questa domanda è stata leggermente ispirata da questa domanda , in cui la più votata risposta raccomandata utilizzando una funzionalità di HTML 5. Mi è sembrato sicuramente un buon metodo, ma mi ha incuriosito l'utilizzo delle funzionalità di una specifica futura in generale.

HTML 5 offre molti miglioramenti, molti dei quali possono essere utilizzati senza causare problemi nei browser attuali.

Alcuni esempi:

// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>

Molte di queste nuove funzionalità sono progettate per consentire ai browser di convalidare automaticamente i moduli e fornire loro input migliori (ad esempio un selettore di date). Alcuni sono solo convenienti e sembrano un buon modo per prepararsi al futuro.

Attualmente non infrangono nulla (per quanto posso dire) nei browser attuali e consentono un codice client pulito e generico.

Tuttavia, anche se sono tutti validi in HTML 5, NON sono validi per HTML 4 e HTML 5 è ancora una bozza a questo punto.

È una buona idea andare avanti e utilizzare queste funzionalità in anticipo?

Ci sono problemi di implementazione del browser che non ho realizzato?

Ora dovremmo sviluppare pagine Web che utilizzano funzionalità di bozza HTML 5?

È stato utile?

Soluzione

Ci sono diverse cose da considerare:

  1. In primo luogo, la convalida non significa molto, perché una pagina HTML può benissimo essere valida ma mal creata, inaccessibile, ecc. Vedi Pronuncia no in " HTML valido " icone e Invio di XHTML come testo / html considerato dannoso (in riferimento a hobo-web test menzionati in un'altra risposta)
  2. Detto questo, consiglio vivamente di usare il nuovo DOCTYPE: l'unica ragione per averlo in HTML5 è che è la cosa più piccola che attiva la modalità standard nei browser, quindi se vuoi la modalità standard, segui; hai poco o nessun motivo per usare un altro DOCTYPE, dettagliato, soggetto a errori
  3. Per quanto riguarda i miglioramenti dei moduli, è possibile utilizzare la libreria JS webforms2 di Weston Ruter ai browser non consapevoli
  4. e infine, per quanto riguarda gli attributi data- * , a) funziona in tutti i browser (fintanto che usi getAttribute () ), b) è ancora meglio che abusare degli attributi title o class ec) non ti disturberà con la convalida come abbiamo detto in precedenza che la convalida non è così importante ( certo che lo è, ma non importa che la tua pagina non sia valida se gli errori di validità sono intenzionali; e puoi già usare la validazione HTML5 nel validatore W3C, quindi ...); quindi non c'è alcun motivo reale per non usarli neanche.

Altri suggerimenti

Buona domanda!

In breve: dipende dal contesto e dalla tolleranza al rischio :)

Leggermente più lungo:

  • Io penso è sempre bene spingere l'inviluppo sulla rapida adozione della tecnologia. Ti dà un vantaggio rispetto ai ritardatari nel mondo commerciale e ti dà anche molta più influenza sull'influenza della tecnologia man mano che emerge.

  • Se non si desidera riscrivere il codice o aggiornare l'origine, l'adozione anticipata potrebbe non essere adatta a te. È assolutamente rispettabile voler scrivere codice solido e stabile che non debba mai cambiare, ma dipende interamente da te (e dal tuo contesto aziendale)

Se la tua pagina si basa fortemente sul posizionamento dei motori di ricerca, può valere la pena considerare che alcuni motori danno priorità alla convalida dell'HTML (Fonte: http://www.hobo-web.co.uk/seo-blog/index.php/official- google-preferisce-valid-html-css / ).

Inoltre, vale la pena considerare che basarsi sui nuovi elementi di input della data (come quelli di Opera, forse altri) consente una maggiore comodità da parte dello sviluppatore, in genere preclude l'inclusione di controlli Javascript più complessi che migliorerebbero il server browser meno recenti (in genere ricadono in un semplice campo di inserimento testo).

Ovviamente e come sempre, non fare affidamento sui controlli lato browser e convalidare tutto il lato server di input.

Non utilizzare le nuove funzionalità prima di poterle testare in almeno un browser. Ad esempio, se si utilizzano le funzionalità del modulo ora, assicurarsi di provare in Opera. Altrimenti, probabilmente farai più danni che benefici contribuendo a un'eredità avvelenata là fuori.

Quando una funzionalità è già implementata nei browser e si sta testando con tali browser, si prega di utilizzare le nuove funzionalità.

Vedi anche una risposta precedente .

Vedi Principio di robustezza :

  

In RFC 761 (controllo della trasmissione   Protocollo, 1980) Computer americano   lo scienziato Jon Postel ha riassunto   precedenti comunicazioni di desiderato   criteri di interoperabilità per il   Protocollo Internet (cfr. IEN 111 1 , RFC   760) come segue:

     

Le implementazioni TCP dovrebbero seguire a   principio generale di robustezza: essere   conservatore in quello che fai, sii   liberale in ciò che accetti   altri .

Quindi, imho, no.

Non implementerò nuove funzionalità dall'HTML fino a quando almeno non avranno il supporto da tutti i principali browser.

Ai clienti non importa se la tua pagina è valida, a loro importa molto di più se funziona su più browser. Anche se lottiamo per implementare gli standard più recenti, ci saranno ancora clienti e aziende che non abbandoneranno mai il loro IE6 e IE6 rimarrà nel loro elenco di requisiti del browser ancora per un po '.

I nuovi tipi di modulo sono i benvenuti, tuttavia i moduli devono essere controllati sul lato server.

Il passaggio a documenti esistenti in HTML5 richiederà molto impegno e adattamento e secondo la mia stima non avverrà dall'oggi al domani. Aspettatevi almeno 3 anni fino a quando non raggiungerà il mainstream.

Userei HTML 5 solo per divertimento e apprendimento, ma definitivamente non toccherei alcuno del mio codice di produzione (codice esistente) con questo nuovo standard, almeno ormai e fino a quando non avrò un motivo valido per supportare questa mossa .

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