Ho un piccolo cruccio che ho intenzione di condividere con voi. Nelle notti in cui finisco un nuovo tutorial CSS3 per Nettuts + - in genere mentre ascolto le mie canzoni preferite di Biebster - faccio clic su Pubblica, quindi aspetto di vedere quanto tempo ci vorrà prima che un lettore lasci un commento contenente la frase, "Ma non convalida."
Ecco la cosa sulla validazione: è uno strumento. Niente di più; nientemeno; solo uno strumento.
Quindi, ecco la cosa sulla convalida: è uno strumento. Niente di più; nientemeno; solo uno strumento A prima vista, tuttavia, ha senso, vero? Identifichiamo la convalida con le migliori pratiche, proprio come JavaScript e JSLint. Lungo questa linea di pensiero, perché non vogliamo un punteggio perfetto al 100%? Bene, questo è il problema: lo facciamo; tuttavia, i problemi si verificano quando il punteggio ha la precedenza sulla nostra logica.
Per testare il tuo markup e fogli di stile, puoi visitare:
In alternativa, è possibile installare l'utile componente aggiuntivo di Firefox, Web Developer, che, tra le altre cose, offre i collegamenti "Validate HTML" e "Validate CSS" a portata di mano, così come l'opzione per convalidare anche i file locali.
A questo punto verrà generato un report, che ne elenca uno errori che il validatore si imbatte. Ma qui sta lo sfregio.
Assolutamente no. Immagino che, in particolare per coloro che stanno irrompendo in questo settore, la frase "i siti Web non hanno bisogno di passare la convalida" confonde il diavolo da loro.
"La validazione è il tuo sistema di allerta precoce sull'introduzione di bug nelle tue pagine che possono manifestarsi in modi interessanti e difficili da determinare: quando un browser rileva un codice HTML non valido, deve fare un'ipotesi plausibile su cosa intendevi fare e diversi browser possono fornire risposte diverse. "
- Opera Developer Community
Detto questo, il punteggio finale è, infatti, non pertinente.
Ricorda i giorni in cui noi (o almeno alcuni di noi) abbiamo incollato i pulsanti di convalida a footer
dei nostri siti web? Come è divertente; per chi erano? I visitatori del sito? haha; Spero di no! Ma ecco la cosa: a quei tempi, la convalida non era davvero un a standard. No; infatti, se ti prendevi anche la briga di convalidare il tuo codice HTML e CSS, eri a standard abbraccia, tizio all'avanguardia! A volte, è facile dimenticare che gli standard web sono un concetto relativamente nuovo.
Anni fa, quando partecipavo ai forum CSS, non falliva mai: ogni volta che un nuovo membro chiedeva aiuto su uno strano problema di layout, la nostra prima risposta era in genere qualcosa sulla falsariga di "Yil nostro sito Web non è valido. Correggi gli errori, quindi torna da noi se ci sono ancora problemi."Molte volte, i problemi di layout sono il risultato di elementi non chiusi, come a div
. In questi casi, la validazione può essere di enorme aiuto.
Quindi cosa è cambiato? La convalida non è più necessaria? HTML5 ci consente di scrivere un markup terribile senza pensarci due volte? Il nuovo doctype HTML5 è infuso di magia? Affatto. La validazione è uno strumento utile che ci consente di individuare i tag chiusi mancanti, i punti e virgola aggiuntivi, ecc. Detto questo, il punteggio finale è, in effetti, irrilevante. Non è un numero magico - che, al 100%, contatta l'architetto dietro le quinte e gli ordina di applicare punti bonus al tuo sito web. Questo punteggio non ha uno scopo superiore a quello di fornire un feedback. Non contribuisce né all'accessibilità, né sottolinea le migliori pratiche. In effetti, il validatore può essere fuorviante, come segnala errori che non sono errori, con qualsiasi sforzo di immaginazione. Il validatore HTML4 è diventato rapidamente obsoleto, ma per fortuna il W3C ha un nuovo validatore HTML5 (ancora sperimentale) che è molto migliorato.
Ora, tieni presente che il markup ben formato può aumentare la SEO; tuttavia, non esiste una correlazione specifica tra SEO e un punteggio di convalida.
HTML5 standardizza molte delle funzionalità supportate da alcuni browser per anni, come ad esempio gli attributi personalizzati (tramite il file dati-
prefisso) e attributi ARIA, che non riescono al validatore HTML4 del W3C.
Quando collaudi nuovi progetti, assicurati di controllare l'esperimento Validatore HTML5 opzione. Con questa opzione impostata, è possibile utilizzare le proprietà CSS3 supportate, personalizzate dati-
attributi e altro ancora.
Mai e poi mai compromettere l'uso delle ultime tecniche e selettori CSS3 per motivi di convalida.
Cosa succede se ci sforziamo per almeno un punteggio del 75%? Capisco il modo di pensare, così come lo pensavo anch'io a un certo punto; anche se, di nuovo, è irrilevante. Durante la convalida, l'obiettivo principale dovrebbe essere quello di determinare dove hai commesso degli errori. La validazione non è un gioco e, anche se potrebbe essere divertente mettere alla prova le tue abilità per determinare quanto in alto puoi ottenere il tuo punteggio, tieni sempre a mente: non importa. E mai, mai, mai compromettere l'uso dell'ultimo doctype, delle tecniche CSS3 e dei selettori per motivi di convalida.
Lo sporco segreto dei browser è che non eseguono mai la convalida HTML su un DTD. Il doctype che si mette all'inizio del documento cambia il parser in una particolare modalità operativa, ma nessuna operazione comporta il download del doctype e la verifica della corrispondenza del codice. Cosa significa questo? Significa che un parser di sintassi di base gestisce l'HTML, con le eccezioni specificate per i tag a chiusura automatica e gli elementi inline e in blocco (e sono sicuro che anche altre situazioni).
- Nicholas Zakas
A seconda delle opzioni specificate prima di controllare i progetti (HTML4 rispetto a HTML5), il validatore urlerà come un bambino quando si imbatte in:
Ah, gli hack del browser ... dovresti usarli? La risposta a questa domanda è stata discussa a morte e sicuramente supera lo scopo di questo tutorial; tuttavia, tieni presente che, ad esempio, l'utilizzo di IE6-underscore-hack fallirà la convalida.
Per questo motivo, molti designer preferiscono usare non divisibile tecniche invece.
Così:
/ * Convalida Fails * / #myElement _position: relativo; / * target solo IE6 * /
diventa:
/ * Passa la convalida * / * html #myElement posizione: relativa; / * target IE6 * /
La ragione di questa linea di pensiero è, e se in futuro, diciamo, Internet Explorer 10 renderà anche le proprietà che hanno come prefisso un trattino basso? In casi come questo, lo stile di IE6 (così hai pensato) sarà applicato anche a IE10 e oltre, presumibilmente. Ora, la verità è che questo non sarebbe mai successo, in quanto avrebbe rotto un gran numero di siti web. Detto questo, questo metodo di targeting per browser è davvero un hack. Tranne che in casi più piccoli o rari, è meglio utilizzare un foglio di stile condizionale o una forma di rilevamento di funzionalità per il targeting di browser specifici.
Mentre siamo tutti d'accordo sul fatto che l'applicazione di più prefissi di vendor alle proprietà, tutto per raggiungere, ad esempio, angoli arrotondati, è incredibilmente noioso, dovresti ringraziare le tue stelle fortunate che i venditori di browser hanno sperimentato con queste tecnologie prima che fossero ufficialmente raccomandate.
Aveva
webkit
non sperimentato con i gradienti CSS, e se Mozilla non avesse migliorato la sintassi suggerita, i gradienti non sarebbero stati ampiamente supportati nell'attuale generazione di browser moderni così come sono oggi. Vedete, i browser hanno una mano enorme nel plasmare il futuro del web.
.box background: # 666; background: -moz-linear-gradient (superiore, nero, bianco); sfondo: - gradiente webkit (lineare, in alto a sinistra, in basso a sinistra, da (nero) a (bianco)); sfondo: gradiente lineare (superiore, nero, bianco);
Detto questo, l'uso di questi prefissi dei fornitori causerà il fallimento della convalida dei fogli di stile. Ma è ok; non lasciare che ti preoccupi un po '.
Impara le regole in modo da sapere come romperle correttamente.
Sfortunatamente, anche adesso, molti designer scelgono di utilizzare, nel nostro esempio sopra, le immagini per creare sfumature - se non altro allo scopo di riportare il punteggio di validazione al 100%. Se cadi in questo campo: lo stai facendo male.
Se prendi solo una cosa da questo articolo, ricorda che la validazione è semplicemente uno strumento. Non appena si compromette la propria logica e le proprie tecniche allo scopo di placare un validatore e ottenere un punteggio privo di significato, cessa di essere uno strumento. Detto questo, usalo e usalo spesso!