Ego, Rejection, Seeking Control [With My * REAL * Juicy Breakup]

Hva er fordelene og ulempene (hvis noen) ved å sørge for at alle sidene valideres i forhold til å ha ikke-gyldig HTML som imidlertid fungerer i alle større nettlesere?

Er det også viktig å ha gyldig HTML etter at Javascript har kjørt?

  • 5 Dette svarer ikke på spørsmålet ditt, men ... plassering av en doktype på siden din vil sette nettleseren i standardmodus i stedet for quirks-modus. Slå opp i quirks-modus for å se hva jeg mener.
  • 1 @Evan Rødspette - Ikke noen DOKTYPE skjønt. Noen DOKTYPER utløser faktisk quirks eller nesten standardmodus. HTML5-spesifikasjonen forklarer dette mer detaljert.
  • 1 @luiscubal Er det nytt i HTML 5 fordi fra en.wikipedia.org/wiki/Quirks_mode, står det "... hvis en full DOCTYPE er tilstede, vil nettleseren bruke standardmodus, og hvis den er fraværende, vil nettleseren bruke quirks modus.".
  • @Evan Plaice Ikke sikker på tidligere HTML-versjoner, men HTML5 sier spesifikt hva du skal gjøre med eldgamle DOKTYPER: se whatwg.org/specs/web-apps/current-work/multipage/…
  • 1 @Evan Rødspette Med andre ord, "DTD HTML 2.0 Nivå 1" utløser quirks-modus.

Jeg tror det er definitivt verdt å gjøre, men du skal aldri være slave for validering - det er et tullespill.

http://www.codinghorror.com/blog/2009/03/html-validation-does-it-matter.html

  1. Valider HTML. Vet hva det betyr å ha gyldig HTML-markering. Forstå verktøyet. Mer informasjon er alltid bedre enn mindre informasjon. Hvorfor fly blind?

  2. Ingen bryr seg om HTML-koden din er gyldig. Bortsett fra deg. Hvis du vil. Ikke tenk et øyeblikk at det å produsere perfekt gyldig HTML er viktigere enn å kjøre nettstedet ditt, levere funksjoner som gleder brukerne eller få jobben gjort.

  • 3 Jeg må sekundere dette. Jeg har sett mange problemer med javascript-biblioteker som kan skyldes på ugyldig HTML. Flere nestede skjemaer og ulovlig lukkede koder er store lovbrytere. Som Jeff sier ikke vær en slave, men ikke klag når jQuery ikke fungerer fordi siden din ikke er gyldig HTML (XHTML, HTML 5 eller hva du velger som doktype).
  • @Jeff Atwood: kan jeg ikke være mer enig når du sier "Ingen bryr seg om HTML-en din er gyldig. Bortsett fra deg." Trist men sant, kunder bryr seg virkelig ikke.
  • @MarcoDemaio Hvorfor er det trist? Som klient og sluttbruker er jeg mer bekymret for om nettstedet fungerer i alle nettlesere (hvorav de fleste ikke er kompatible med standarder til å begynne med) eller ikke, enn om det validerer. Gyldig HTML betyr egentlig ikke noe. Google, Facebook, Twitter, dette nettstedet osv. Ingen relevante nettsteder har gyldig markering. Hvorfor? Fordi gyldig HTML ikke gjør annet enn å oppblåse siden og øke båndbreddekostnadene.
  • Det samme gjelder perfekt innrykket markering. Dette er enda mer ubrukelig, det er 100% sløsing med båndbredde og har ingen praktisk bruk overhodet.
  • @NullUserException: Jeg synes det er trist fordi jeg fant ut at validerte nettsteder vanligvis gjør mye bedre i alle nettlesere. Se kommentaren til Alans svar: webmasters.stackexchange.com/a/373/1429 Validering av et nettsted som er lagret for meg og sparer meg fortsatt enorm tid. Om den perfekte innrykkede markeringen har jeg aldri hørt om spesifikasjoner om det. Jeg vil kanskje trekke inn tre mellomrom, og du vil kanskje rykke inn ett.

Jeg anser gyldig HTML som et verdifullt mål, men ser det ikke som det å være alt og slutt på å bygge gode nettsteder.

Trikset er at markeringen din kan være helt gyldig, men det kan ikke være semantisk - f.eks. ved hjelp av tabeller for layout eller navigering. Det er en forskjell mellom gyldig kode og semantisk kode.

På et annet notat, hvis du bruker reklame eller eksterne skript, kan de sette inn sin egen markering som har en sjanse til å virkelig rote med din egen.

Jeg synes det er verdt det, siden jeg har fått mange markerings- og logikkfeil ved å søke validering. Det er en av de "nødvendige, men ikke tilstrekkelige" tingene. Gyldig markering, som kode som kompilerer (eller sjekker ut via JSlint) uten feil, advarsler og tips, er et godt første skritt for å få det riktig.

  • +1 er helt enig i denne. Validering av sider sparer enormt mye tid på å løpe etter JS og hvordan-ting-er-fortrolige feil som virker så mystiske, og som bare skyldes en HTML-kode eller ikke lukket. Videre med verktøy som FF addon Html Validator [addons.mozilla.org/en-US/firefox/addon/html-validator/] er det lett å validere alle sidene dine lokalt.

Det store pluss med gyldig HTML er at siden din er mer tilgjengelig for andre ting enn "store nettlesere". Alle de "store nettleserne" har uendelige løsninger for å håndtere alt ugyldig søppel som befolker WWW. Å holde seg til gyldig HTML hjelper imidlertid for eksempel hvis noen bruker en nettleser for synshemmede, eller får tilgang til sidene dine offline, etc.

Validering i seg selv er ikke så kritisk, siden få nettlesere er 100% kompatible og spesifikasjonen ikke er 100% klar over hvordan du skal tolke reglene.

Å være gyldig HTML gir deg imidlertid en bedre posisjon til å tilpasse og forbedre nettstedet ditt. Etter hvert som standardene beveger seg, vil de vanligvis migrere fremover, og hvis det nye nettstedet ditt er gyldig, bør det være enklere å oppdatere for å støtte det siste.

Nederst, å være gyldig gjør det lettere å holde seg på toppen av spillet og være så kompatibel som mulig med det bredeste publikum.

Den beste tilnærmingen er å lære hvilken ugyldig HTML som er dårlig, og hvilken ugyldig HTML som ikke betyr noe.

For eksempel å glemme å lukke en

tag er veldig dårlig, fordi oppsettet ditt nesten helt sikkert vil skru opp i en eller flere nettlesere.

Imidlertid bruker
i stedet for
i XHTML spiller ingen rolle - alle nettlesere tolker begge som en linjeskift uten problemer. Bruker target attributtet på lenker er ugyldig, men i verste fall er at nettleseren ikke åpner lenken i et nytt vindu.

  • target er gyldig i overgangs-XHTML, og bare masochister bruker streng. Hvis du utelater skråstrek, vil siden din bli ugyldig XML, noe som sannsynligvis vil forvirre skjermskraper. Hvis du velger å bruke XHTML, bør siden din i det minste være gyldig XML.
  • 1 @Tgr: Morsomt, jeg trodde masochister foretrakk ikke-standardmodus. Selv overgangsdokumenttyper har sine problemer (bruker "nesten standarder" -modus osv.)
  • 1 Jeg vil hevde at Strikt er viktig - hvorfor velge å risikere utdatert kode og quirks-modus. Det koster ikke å bruke Strict, annet enn at det oppfordrer deg til å vite mer om din foretrukne markeringsversjon.

Når du kjører validatoren, må du undersøke feilene det gir deg fra sak til sak. Er validering viktig? For meg, ja, det er veldig viktig. Men er det et krav? Nei.

Ting som å bruke samme ID flere ganger (i stedet for en klasse), å plassere elementer på blokknivå i elementene på linjenivå (vanligvis passer ikke disse elementene semantisk på denne måten heller), mangler alt-attributter på bilder (dårlig tilgjengelighet for funksjonshemmede ), er alle viktige. Ting som ukjente attributter på koder er IKKE viktig. I det hele tatt. Javascript-rammeverk som Dojo eller den forferdelige Meebo sosiale medier-linjen bruker egendefinerte attributter som kroker, og HTML-spesifikasjonen sier at disse er tillatt, og at ukjente attributter skal ignoreres. Validatoren ignorerer dem ikke, men det kaster feil. Disse feilene kan ignoreres.

Når du validerer, ikke bare anta at hvis du har feil, gjør du det galt. Semantikk er veldig viktigere, og det hender at gyldig HTML er oftere enn ikke det naturlige resultatet av å ha riktig semantikk.

  • Jeg er enig - valider nettsiden din, men i noen tilfeller kan du velge å ignorere advarslene, så lenge du vet hvorfor de er der

En grunn til å teste nettstedet ditt for gyldig HTML, er at det sørger for at søkemotorens edderkopper vil være i stand til å indeksere og bestemme betydningen av sidene dine. Hvis de ikke kan gjøre det på grunn av misdannet HTML (som de viktigste nettleserne kan arbeide av av historiske årsaker), begrenser du potensielt søkemotorrangeringen.

Det har også vært spekulasjoner i at mens de store søkemotorene gjør en god jobb med å håndtere misdannet HTML, kan de også tildele "poeng" for sidekvalitet for gyldighet, noe som ytterligere påvirker din evne til å rangere så høyt som innholdet ditt fortjener.

  • 2 Google har kategorisk uttalt at ugyldig HTML ikke har noen innvirkning på rangeringen. Imidlertid kan jeg se tilfellet der HTML er så misdannet at det faktiske innholdet på siden ikke kan leses av edderkopper - selv om det i dette tilfellet er nesten sikkert at nettlesere vil begynne å vise gjengivelsesproblemer.
  • @DisgruntledGoat Du har rett, her er en referanse for det: youtube.com/watch?v=FPBACTS-tyg
  • @DisgruntledGoat Tydeligvis ... Google selv er full av ugyldig HTML, og jeg husker de sa at de virkelig ikke bryr seg, og at det er en god ting å ha ugyldig HTML hvis det betyr raskere lastetider.

Jeg tror egentlig ikke det betyr noe lenger. Før var jeg valideringens slave, nå sjekker jeg det sjelden. Kanskje jeg ble utbrent fra å sørge for at nettstedet mitt var gyldig, eller kanskje jeg bare ikke brydde meg lenger fordi ingen andre vil gjøre det. Jeg kan garantere at 99,9% av våre besøkende ikke en gang vet hva det er, og ikke engang bryr seg om de gjorde det. Fremtidig nettleserprogramvare kan, men når den dagen kommer, vil jeg bekymre meg for det da.

Validering er nyttig fordi det kan hjelpe deg med å oppdage feil som er vanskelig å fange, for eksempel

<input name=foo value=<?php echo htmlspecialchars($_GET['foo']); />  ?> var13 ->

eller uforutsigbar nettleseradferd (for eksempel å sette blokkeringselementer i en a kan noen ganger bryte på stygge måter i Firefox).

Et poeng ingen ennå har nevnt, er at ugyldig HTML kan føre til langsommere gjengivelsestider mens nettleseren prøver å gi mening om den ikke-standard HTML når den vises.

  • Jeg ville nedstemme dette hvis jeg kunne. Jeg høyt tviler på at dette har noen observerbar effekt; Jeg vil være mer opptatt av gyldig markering som oppblåser siden og krever mer tid til å laste inn (spesielt på langsommere / mobile tilkoblinger).
  • @NullUserExceptions: Jeg synes ikke poenget som ble gitt av BradB fortjener -1. Kanskje vanskelig å bevise, men en nettleser som trenger å ordne og fikse i et HTML-rot, kan ta litt mer enn en godt formatert gyldig HTML-side uten feil i den.Hvorfor gir du ikke svar på dette spørsmålet som viser oss et godt eksempel på en overoppblåst side på grunn av misbruk av HTML-validering. Jeg kan ikke tenke på hvordan en gyldig HTML-side kan bli så overblåst sammenlignet med den samme siden med ugyldig HTML-kode.

det er ingen ulempe med å ha gyldig html. Det er en grunn til at det er en spesifikasjon i utgangspunktet, og hvorfor det blir lagt ned mye krefter på spesifikasjonen for å definere hvordan ting skal fungere.

i utgangspunktet er alt du får å oppfylle spesifikasjonene. som igjen betyr at programmer skrevet for å lese html (nettlesere, bots) ikke kan klandre deg for at du ikke oppfyller spesifikasjonene hvis noe går galt. og noen av disse programmene gir deg ekstrapoeng (høyere rangering i søkemotorer hvis botrapportene "oppfyller spesifikasjonen"). hvis du oppfyller spesifikasjonene, blir du overrasket mindre hvis noen nettlesere ikke gjengir ødelagt html slik du synes det burde.

så å møte spesifikasjonene og skrive gyldig html er bra for deg, ingen ulemper i det hele tatt.

  • Hum, hvilke søkemotorer får du høyere rangeringer i hvis du oppfyller spesifikasjonen?
  • 2 Ulempen vil være den ekstra utviklingstiden du bruker, og sørge for at all koden din oppfyller spesifikasjonen. Selv om denne kostnaden generelt er minimal, bør den likevel behandles som en ulempe.
  • @kinopiko: Hvis det er noen, er det ingen av de viktigste (Google, Yahoo, Bing, Ask). Har en fullstendig rot av kode som selv en erfaren (menneskelig) webutvikler ikke kan lese, vil sannsynligvis hindre deg, men å bruke noen "ulovlige" attributter har absolutt ingen effekt på rangeringene.
  • Det er problemet med valideringsterminologien. Du er enten gyldig eller ikke. Det er ingen grader. Ødelagt HTML (f.eks. Ikke lukkede koder, feilplasserte / manglende strukturelle koder osv.) Er ugyldig og skader SEO, men de fleste snakker ikke om det når de sier "validering". En nybegynner vil kanskje bruke en validator for å forsikre seg om at de ikke har gjort noen av disse nybegynnerfeilene, men en profesjonell utvikler trenger ikke det, siden koden deres allerede er "gyldig nok" for å si det i løpet av SEO.

Noen HTML-valideringsfeil kan forårsake uopplagte layoutproblemer (f.eks. Feil nestede / ikke-lukkede koder), JavaScript-feil (f.eks. Ved å bruke en id mer enn en gang), og problemer for noen brukere (f.eks. ikke inkludert en meningsfull eller tom alt attributt på bilder).

Hvis alle sidene våre er gyldige, er det en fin automatisert sjekk du kan gjøre for å utelukke feilkilder. Hvis du legger igjen noen valideringsfeil fordi du vet at de ikke forårsaker skade, blir sjekken din ikke lenger automatisert: du må se på hver feil og huske at det er greit. Personlig foretrekker jeg det når datamaskiner reduserer mengden arbeid jeg må gjøre i stedet for å øke det.

Et punkt ingen nevner er fremtidig nettleserutvikling. Selv om alle dagens nettlesere håndterer ugyldig markering relativt bra, kan det ikke alltid være tilfelle.

Nettleserprodusenter vil i fremtiden sørge for at nettleserne fungerer etter HTML / XHTML-standarder, så dette er hva nettutviklere også skal treffe. Bare fordi en bestemt bit av ugyldig markering fungerer nå, garanterer det ikke at den vil fungere i fremtidige nettlesere.

  • Jeg må si at jeg lurer på om det er sant.
  • 2 Ja, jeg kan ikke se at noen nettlesere noen gang slipper støtte for tag eller lignende.
  • Jeg kan ikke se hva problemet er - støtte for avviklet eller ugyldig markering kanskje endring i fremtiden. Når du ser på den ufullkomne implementeringen av (X) HTML i de fleste nettlesere, vil du sikkert være tryggere å holde deg til gyldig markering. Det er ingen kostnader forbundet med gyldig markering, annet enn å bare vite hva du gjør.

Gyldighet hjelper deg med å unngå inkompatibilitet og hjelper med å opprettholde koden. Nettlesere gjenoppretter etter oppmerkingsfeil, men noen ganger på veldig uintuitive måter.


  • DTD-basert (HTML4, XHTML1 @ W3C) - Det kan ikke være verdt det. DTD er primitiv og kan for eksempel ikke sjekke gyldigheten til de fleste attributter. Du blir for det meste vanskelig å forstå feil om enheter og hekking.

  • HTML5 validator - Ja. Helt sikkert. HTML5 er mer pragmatisk og tillater noen ufarlige konstruksjoner som tidligere var feil. OTOH Henri's validator er mye grundigere og bedre til å oppdage reelle problemer.


Gyldigheten til JS-generert kode kan ha betydning, siden nettlesere fungerer på DOM, uansett hvordan den ble opprettet. Hvis du bruker document.write(), så må du til og med passe på å få syntaksen riktig (den går gjennom samme parser som sidekilde).

Selv om HTML-en din fungerer i alle større nettlesere, er det likevel verdt å gjøre det, da det noen ganger kan føre til problemer med søkemotorrollere som googlebot. Se for eksempel dette:

http://www.codeproject.com/KB/server-management/Google_Indexing_Problem.aspx

Google og Bing har ikke, har og vil aldri bruke CSS eller HTML-validering som en rangfaktor.

De fleste nettsteder har dusinvis til hundrevis av feil, og du trenger ikke bekymre deg for dem fordi alle søkemotorer bryr seg om er hvordan siden gjengis. Bare sørg for at nettstedet ditt gjengis riktig i alle større nettlesere og Googles Fetch.

fungert for deg: Charles Robertson | Ønsker du å kontakte oss?