ugrás a tartalomhoz

Mennyire fontos az érvényes HTML kód?

Török Gábor · 2009. Már. 6. (P), 19.46
Cece már blogmarkolta a forrást, de pár gondolatot hozzátennék a cikkhez. Jeff Atwood HTML Validation: Does It Matter? posztjában azt boncolgatja, vajon az érvényes HTML kód valóban annyira fontos-e, amekkora jelentősséget a webfejlesztők tulajdonítanak neki. Írásában találomra tizenhat népszerű honlapot is megvizsgált, amelyek közül három nem tartalmazott kódhibát. Az a három site valóban jobb minőségű volna a többinél, csak mert valid a HTML forrása?

Pro és kontra lehet érveket felhozni a témához, annyi azonban biztos, hogy érdemes egyszer átgondolni, valóban ér-e annyival többet a valid kód (és hozzá színben passzoló plecsni), amennyi erőfeszítést ennek érdekében teszünk. A W3C HTML validátora (a többi hasonszőrű eszközzel egyetemben) egy mezei gép, amely a belétáplált szabályok alapján mond egy kétpólusú ítéletet: átmentünk vagy megbuktunk. Érdekessége, hogy önmagában egyik sem jelent semmit sem, valid HTML kód is lehet „táblázatos” vagy akár <font> taggel és inline JavaScript teli – arra pedig általában nem szoktunk korszerű módszerként tekinteni.

A napokban foglalkoztam mélyebben a Dojo Toolkit JavaScript keretrendszerrel, ahol a Jeff cikkében felvetett témát kénytelen-kelletlen nekem is át kellett jobban gondolnom. T.i. a Dojo azt a filozófiát követi, hogy egy képet a HTML forrásban úgy jelölhetünk Lightbox komponensek, ha a dojoType="dojox.image.Lightbox" attribútumot megadjuk a szülő linknek. A dojoType pedig nem érvényés attribútum, a validátor lelkesen mutogat is rá. Mellesleg pedig nem kéne. Az ajánlás szerint egy kliensnek az általa nem ismert HTML paramétert illik figyelmen kívül hagyni, ha máshogy nem.

If a user agent encounters an attribute it does not recognize, it should ignore the entire attribute specification (i.e., the attribute and its value). (HTML 4.01 Specification, B.1 Notes on invalid documents)

Persze, kérdezhetnénk, miért jó a Dojónak, hogy használatához nem szabványos markup elemeket kell használni, de másik oldalról megközelítve, vajon mennyivel jobb, mennyivel diszkrétebb az a gyakorlat, amikor speciális CSS osztályneveket parse-olunk onload esetén a megfelelő elemek begyűjtesére ahelyett, hogy a markupban jelőlnék meg egyből azt, amit szeretnénk (és ezzel a szemántikából sem vesztünk semmit). A néhány dojoType miatt invalid kód tényleg invalid? Vagy mondhatjuk azt, hogy nem annyira invalid? A validátor mindenesetre beállítja a piros favikont.

A HTML kód érvényessége fontos, én (is) így gondolom. A validátor robotizált eszköz annak felderítésére, vannak-e esetleg elgépeléseink vagy súlyosabb kódhibáink, amelyek a későbbiekben sok fejfájást okozhatnak, ha egyszer csak azon kapjuk magunkat, hogy egy felsőbb réteg (megjelenés, viselkedés) nem úgy jutott érvényre, ahogy azt mi szeretnénk. Hogy ne menjünk messzire, valid HTML kód a feltétele a mikroformátumoknak is, tehát vannak olyan területek, ahol az érvényesség kiemelten fontos. A kérdés tehát újfent az, hogy érdemes-e (vagy ha igen, mikor) olyan nagy hangsúlyt az érvényességre fektetni, aminek eredményeképpen más érdemi fejlesztésektől vehetjük el az időt. Végezetül egy kérdés: közületek hányan nézték már meg, hogy a Weblabor főoldalán van-e HTML kódhiba?
 
1

Érdekes gondolatok...

Ustak · 2009. Már. 6. (P), 22.22
jutnak eszembe ezzel kapcsolatban. Kicsit csapongani fogok, de íme, pár dolog:

Mellette:

-Ki honnan jött. Mint ahogy az angol cikk is leírja, az (X)HTML kód érvényesítése mazochistáknak, vagy (és :-)) programozóknak való. Én például anno Delphi -ből nyergeltem át a webes dolgokra, és megnyugtat a tudat, hogy amit csinálok, követ egy bizonyos szabályt-szabványt.
-Kereső robotok. Nem néztem utána a témának konkrétan, de mintha úgy rémlene, hogy valid markup-ban könnyebben elboldogulnak, és így oldalunk előbbre kerül. Ez egyébként a hozzászólásokban is tükröződik.
-Remény. Egyszer hátha eljutunk oda, hogy egy szabványosított kód minden böngészőn egyazon módon fog viselkedni.

Ellene:

-Eszköztár. Lehet olyan megoldás, ami valid eszközökkel nem elérhető. Egy profi hozzáértő, aki igen jól ismeri az adott lehetőségeket, dönthet olyan nem valid megoldás mellett, ami az adott feladat megoldásához (szerinte) jobban illik.
-Lustaság. (Jó, hívjátok produktívabb munkavégzésnek :-)) Nyilván gyorsabban haladok ha nem kell folyton a hibáimat javítgatnom.

Jómagam ha lehet a "validáljunk" táborba sorolom magam. Nem tudom belátni, hogy az adott szabványos eszközökkel miért ne lehetne ugyanolyan jó design-t készíteni. Nem azt mondom hogy ugyanolyat, hanem hogy ugyanolyan jót. Hasonlóan egy ceruzarajz is lehet szebb mint egy olajfestmény (nekem) persze mindig lesznek (mások) akiknek az olajfestmény tetszik jobban. Nyilván van egy elfogadott átlag, amire azt mondjuk, hogy hmm, ez szép kis alkotás, de nem a használt technika fogja meghatározni, hogy miért tetszik, hanem valami, a felhasználó-barátságon, graceful degradation-on, gyorsaságon, RIA -normákon túl, ami miatt összeáll az egész, validitástól vagy invaliditástól függetlenül.
Tehát ennek fényében szerintem legyen valid. :-)
2

Észrevételek

yaanno · 2009. Már. 6. (P), 22.31
Bár nem olvastam végig az összes kommentet a hivatkozott post alatt, így lehet, hogy ott már elmondták, amit én itt gagyogok, mégis egy pár észrevételt fűznék ehhez.

Szerintem a plecsninek annyiban van értelme, hogy felhívja az user (fejlesztő) figyelmét a web szabványok fontosságára, én ezt tartom jónak benne; mivel teljesen opcionális a felvétele az oldaladra, még csak amolyan jutalomnak sem kell felfogni, inkább másoknak szól, mint neked, inkább amolyan felhívás, semmint hivalkodás. Persze ezzel is "vissza lehet élni" :)

Úgy tűnik, hogy még sokáig nem fog lezárulni a web szabványok körüli vita: kell-e, jó-e, érdemes-e. Mert szerintem ez a kérdés, nem a plecsni :)

Én (is) úgy látom, ezeknek a szabványoknak a követése nem öncélú; mind a fejlesztők, mind a böngészőgyártók részéről erőteljes támogatást lehet tapasztalni ebben az irányban, sőt, afféle verseny is kialakult már: ki teljesít jobban, az Opera vagy az IE8 stb. Ugyanakkor az is igaz, hogy a visszafelé kompatibilitás és robusztusság a böngészők esetében alapkövetelmény, nem engedhetik meg, hogy mondjuk leálljon egy oldal renderelése, mert valaki nem zár le egy taget stb. Ezzel is vissza lehet élni.

Ámde nem értem, hogyan van az, hogy amíg egy compiler vagy interpreter nem ordít rá az emberre, addig minden további nélkül mellőzik a szabályokat; ezek attól még szabályok, amiket be kell tartani.

A validátor abban segít szerintem is, hogy a fejlesztő által esetleg elnézett dolgokat megmutassa (ehhez egyébként nem kell a webre csatlakozni, van egy csomó offline validátor, ami konzolba vagy más kimenetre tud reportolni). De nem csak ezt, hiszen például rengeteg jó helpet ad a hiba kijavítására, hivatkozásokat nyújt a továbblépéshez. Géphez képest szerintem jópofa :)

A dojoType pedig nem érvényés attribútum, a validátor lelkesen mutogat is rá. Mellesleg pedig nem kéne. Az ajánlás szerint egy kliensnek az általa nem ismert HTML paramétert illik figyelmen kívül hagyni, ha máshogy nem.


Ezzel az a gond, hogy a dojotype attribútum valid, csak éppen nem úgy, ahogy használják :) Úgy értem, ehhez moduláris xhtml kell, ahol saját tageket, attribútumokat definiálhatsz - ehhez persze az kell, hogy a fejlesztők erre hajlandók legyenek :) Mezei webfejlesztő nem ír DTD-t (én sem), de a dojo logikája egyelőre csak ebben az irányban képzelhető el.

Zárójelben: ilyen értelemben az xhtml elnevezés félrevezető, mert kiterjeszteni a htmlt nem nagyon van módod, hacsak nem a modulok irányában :)

A moduláris kiterjesztés azért is jó (lenne), mert az oldalon futó szkriptek számára elméletileg a DOM ad interfészt, tehát az új attribútumokkal ez pont jól megvalósítható lenne; a CSS classok meg tök másra valók, legalábbis a web szabványok szerint...

Összegezve, szerintem van itt egy döntési helyzet, mégpedig az, hogy követem-e a web szabványokat, vagy sem.

Na még csak egy dolgot :)

A kérdés tehát újfent az, hogy érdemes-e (vagy ha igen, mikor) olyan nagy hangsúlyt az érvényességre fektetni, aminek eredményeképpen más érdemi fejlesztésektől vehetjük el az időt.


Nekem eddig az összehordott html/css/js szemét takarítása, foltozása mindig több időmbe került, extra munkát adott, mint a valid kód megírása. Minden valószínűség szerint hiányzik a skill szintű kódírás ezen a téren (magamt sem kivéve innen), nagyon nagy szerepe lenne itt az oktatásnak...
3

szabvány=szabályok (következetes) betartása

balazsgabi · 2009. Már. 6. (P), 23.45
Üdv Mindenkinek!

A példát nem feltétlen a programozás világából hozom, talán mert nem értek annyira hozzá, de szvsz ez is példázza, hogy mennyire fontos(nak kellene lenni) az élet bármely területén:

Senki nem állíthatja, hogy egy régebbi Jaguar (autó márka) azért sz@r mert mondjuk a gyertyát nem balra tekerve kell kivennünk ha cserélni akarjuk. Viszont minden autószerelő megörült neki mikor (miután a Ford átvette) a Jaguarok is követték a "szabványt", így rutinból elháríthatták a hibákat, illetve nem azon kellet kalóriát égetni, hogy most jobb/bal menetes-e, vagy éppen konvertálja a collt milliméterbe a szerszámok végett. Milyen nagyszerű érzés, hogy ránézünk egy hatos anyára és tudjuk, ehhez egy 10-es kulcs kell és nem kell "felpróbálni" három méretű villáskulcsot.

Bocs a kitérőért, de a szabványosság az egyik legfontosabb dolog, még ha alapkövetelmény is ebben az amúgy "határtalan" világban. Senki nem garantálhatja, hogy egy elkészített kódhoz csak és kizárólag a megalkotója nyúlhat hozzá, mondjuk pár év múlva. Az internet és egyik táptalaja a web pedig feltétlen kell, hogy ragaszkodjon valamilyen szabály rendszerhez. Laikusként gondolom, hogy ezért fejlesztették tovább a HTML-t 1995-ben és gyanítom nem lesz megállás. Ennek a multikulturális közösségnek ez, mármint a szabványok betartása garantálhatja, hogy "egy nyelvet" beszélve fejlesztenek és fejlődnek egyszerre. Szerintem ha kellő energiát fektetnénk abba, hogy bebizonyítsuk egy-egy invalid kód miért is rossz - valószínű lenne egy-két érv -, akkor ugyanezt fordítva, mármint a valid kód hibáit keresve nem jutnánk egyről a kettőre.
Összegezve véleményem, nem lehet kérdés a fontosság. A poszt indító cikk inkább filozófikus miértek keresése, hogy a jó az miért is jó?

Abban is biztos vagyok, hogy idővel meg fogják oldani, hogy egy Dojo Toolkit is szabványos legyen ha fenn akar maradni hosszútávon. Ettől még lehet remek eszköz (mintahogyan egy 82-es Jaguar is remekmű) és lehet pont ezzel szolgálja a fejlődést, hogy kihívásokat támaszt, ha nem is tudatosan.

És igen lelkes amatőrként eleinte mindig klikkeltem a sárga 3szögre, hogy pont itt?! De miután mindig meggyőződtem róla, hogy a figyelmeztetések (és nem hibák) olyan apróságok miatt vannak, amik csak abból adódnak mert éppen nem volt rá több idő (a szabadidőből) így ezeket el fogadtam és természetesnek veszem.

Még annyit, hogy szvsz ehhez nem kell akkora erőfeszítés. Ha nekem is megy könnyedén, akkor egy profi (akinek ez a kenyere) ezt észre sem veszi. Persze ha így tanulta meg annak idején. Erre szokás mondani: "A rest meg a hülye mindig kétszer fárad"
4

A Dojo szabványos

Török Gábor · 2009. Már. 7. (Szo), 09.05
A Dojo Toolkitnek már ez a választása, korábban az említett egyedi attribútum mellett biztosítottak CSS osztállyal apelláló és saját névterű megoldást is. Attól, mert egy valid markupot kiegészítesz a szabványban explicit nem foglalt elemmel, akkor tehát szerinted az egyértelműen szabálytalan? Pedig ugyanezen az elven működik több szerveroldali környezet is, csak mielőtt a kliens azokat a speciális tageket vagy attribútumokat megkapná, az eszköz átalakítja „ismert” markuppá – erre pucér ügyféloldali JS esetén nincs mód.
7

szerintem egyértelműen szabálytalan

balazsgabi · 2009. Már. 7. (Szo), 21.37
A szabvány/szabály pont attól egyértelmű, hogy meghatározza explicit módon azokat a korlátokat, mely keretein belül még valid. Ha már itt tartunk én azzal sem értek egyet, hogy a transitional választható mint alternatíva. Te magad is azt írod, hogy biztosítottak így, meg úgy, ilyen meg olyan megoldást. Számomra ez nem más mint a bizonyítvány magyarázata. Hangsúlyozom ettől még lehet nagyszerű dolog, de a "szabvány" szerint nem szabályos, mivel olyan elemmel operál ami nem része a szabványnak. Ha valaki ilyesmit használ, annak kellene venni a fáradtságot saját DTD-t definiálni és máris nincs miről vitázni.

Kicsit sok a szóismétlés de most nem tudtam jobban kifejteni.

erre pucér ügyféloldali JS esetén nincs mód.

ezt így nem értem sajnos
8

Egyetértek

Joó Ádám · 2009. Már. 7. (Szo), 22.05
Amikor a Dojot nézegettem, én is azon gondolkoztam, miért nem veszik a fáradtságot, hogy saját DTD-t állítsanak össze. Hihetetlen lehetőségek lennének az XML-ben, XHTML-ben, de a lustaság, ugye…
9

ne már

Hodicska Gergely · 2009. Már. 8. (V), 05.25
de a lustaság, ugye…
Nézd már meg légyszives a Dojo-t, hogy mi mindent tud, hogyan van felépítve, eszméletlenül sok munka van benne. Egyáltalán milyen alapon mersz egy ilyen kijelentést tenni? Van bármi fogalmad arról, hogy miért így valósították meg, elmélyedtél benne, hogy milyen tervezési döntéseket hoztak, milyen lehetőségek között mérlegeltek.
10

lustaság

Hodicska Gergely · 2009. Már. 8. (V), 05.37
We *did* support XML namespaces in 0.4 and previous versions; the problem with it was that it added quite a bit of extra code, and additional complexity that helped to confuse a lot of devs. In the end, we decided that simplicity rules--and though your concerns are definitely valid (no pun intended) there was not enough call for validating markup. In short, many more people wanted simple, easy markup and fewer people were concerned about validation. And more people are concerned with download size (sometimes irrationally, i think) than they are with true validation.
16

Igen

Joó Ádám · 2009. Már. 8. (V), 13.52
Nézd már meg légyszives a Dojo-t, hogy mi mindent tud, hogyan van felépítve, eszméletlenül sok munka van benne. Egyáltalán milyen alapon mersz egy ilyen kijelentést tenni? Van bármi fogalmad arról, hogy miért így valósították meg, elmélyedtél benne, hogy milyen tervezési döntéseket hoztak, milyen lehetőségek között mérlegeltek.


Igen, az általad idézetteket már olvastam, amikor a Dojot néztem és szerintem alá is támasztottad vele azt, amit mondtam. Több kód? Megnőtt a méret? Hány bájttal? Összetettebb? Be kell másolni a DTD-t? Összezavarodtak a fejlesztők? Ha ennyire nem értenek hozzá, akkor mit akarnak ők Dojozni? De nem baj, mert úgyse akarnak az emberek validálni! Hát ez mi, ha nem az egyszerűbb út követése?
19

önbizalom az van

Hodicska Gergely · 2009. Már. 8. (V), 14.11
Ha ennyire nem értenek hozzá
Adott az egyik legfullosabb JS framework, szerinted nem ismerik tökéletesen a lehetőségeket? Szerinted nem lehet, hogy mondjuk egy nagyságrenddel jobban érteek ehhez a témához, mivel csak ezt csinálják főműsoridőben az elmúlt jópár évben?

Hát ez mi, ha nem az egyszerűbb út követése?
Az egyszerűbb út az, hogy ha kánátáljuk, hogy szabvány, és nem próbáljuk meg megérteni más megközelítését, és belátni, hogy adott esetben vannak szempontok ami szerint az ő megoldásuk indokolt.

Plusz még ajánom neked, hogy olvasd el mondjuk a DOM leírását a W3C-nél, majd állj neki implementálni egy böngészőt ez alapján, és akkor rá fogsz jönni, hogy a szabvány mennyi nyitott kérdést is tud hagyni.
22

Bocs

Joó Ádám · 2009. Már. 8. (V), 14.27
Adott az egyik legfullosabb JS framework, szerinted nem ismerik tökéletesen a lehetőségeket? Szerinted nem lehet, hogy mondjuk egy nagyságrenddel jobban érteek ehhez a témához, mivel csak ezt csinálják főműsoridőben az elmúlt jópár évben?


Az én olvasatomban a fejlesztők alatt ez esetben a felhasználókat kell érteni. De ha nem, akkor bizony régen rossz, ha a saját DTD (tehát az, hogy lehet validálni az önkényes HTML attribútumaikat) összezavarja ennek a fullos JS frameworknek a főműsoridős fejlesztőit. De én remélem, hogy jól értelmeztem azt a „developers”-t.

önbizalom az van


Én a saját munkám a legjobb tudásom szerint végzem, remélem nem kell senkitől bocsánatot kérjek ezért, se azért, mert elvárnám mástól is, hogy erre törekedjék.
13

Ezért nem.

tgr · 2009. Már. 8. (V), 11.54
15

Sok a betű, kevés a szalonna

yaanno · 2009. Már. 8. (V), 12.14
Úgy látszik, kár sok betűt rakni a kommentekbe, így aztán csak kiegészítésképpen tenném hozzá, hogy a kép teljesebb legyen: PPK: Javascript Triggers - válasz: J. Eisenberg: Validating a Custom DTD - válasz-válasz: W3C: More About Custom DTDs
18

Maradjunk a betűknél

Joó Ádám · 2009. Már. 8. (V), 13.57
Elolvastam őket, de okosabb nem lettem. Ugyanis a W3C QA csapat annyit mondott, hogy Dojoéknak egyáltalán nem kéne saját HTML attribútumokat bevezetnie. Én meg azt mondom, ha már ezt teszik, akkor legalább tegyék úgy, ahogy a nagy könyv írja, és adjanak hozzá DTD-t.
37

Csupán kiegészítések

yaanno · 2009. Már. 9. (H), 13.31
A felvetett parseolási problémára reagálva hoztam be ezeket, meg arra, hogy a ténylegesen kiterjesztett html-t persze, hogy nem fogja megenni a standard validátor.

A W3C álláspontja eléggé egyértelmű, az első kommentemben ezt emeltem ki, vagyis hogy ilyen esetekben használjunk moduláris xhtmlt.

Szerintem egyébként ez nem triviális, ha nem nagy cég vagy, hanem kis/közepes számos ügyféllel, akiknek szerteágazó igényeik vannak.

Vannak aztán olyan esetek is, amikor egyszerűen nincs mit tenni, kénytelen vagy beletörődni abba, hogy a termék nem lesz valid: így pl. különböző weboldalak mixelése (white labelek, affiliate oldalak), amikor extrém mennyiségű kompromisszumot kell kötni minden téren.
17

Miért nem?

Joó Ádám · 2009. Már. 8. (V), 13.55
A megjegyzéseket is elolvastad? Megfelelő MIME-type-pal, a szabvány szerint működik, ahogy kell. Akkor most hogy is van ez?
32

IE

tgr · 2009. Már. 9. (H), 03.25
Az IE meghal az application/xhtml+xml-től (letölteni próbálja megnyitás helyett). text/html-nél meg beszemetel az elejére egy ]>-t.
33

IE?

Joó Ádám · 2009. Már. 9. (H), 10.28
Még egy ok, miért kell leszokni a támogatásáról ;)
36

Kár a flame

Török Gábor · 2009. Már. 9. (H), 13.00
Az a baj, Ádám, hogy te két* ügyfelet szolgálsz ki. Egészen eddig megteheted, hogy a két* ügyfeled babusgatod, tanítgatod ésatöbbi. Játszhatsz szabványos és szemantikus markuposdit, de amikor egyszer csak több ügyfeled lesz, másképp fogod mindezt látni. Addig fogadd el azok álláspontját is, akik máshogy látják.


* mindegy mennyit.
5

Nincs ellene vagy mellette

zzrek · 2009. Már. 7. (Szo), 11.06
Szerintem nincs értelme azt mondani hogy a validálás (mint elv, vagy eszköz) hasznos-e vagy sem, mert egyértelműen hasznos. A megjelenített formátumnak szabályai vannak, és ezeket be kell tartani és jó, ha van rá eszköz, ami ezt ellenőrzi.

A kérdés, hogy a szabályok jók-e?
Egyértelmű, hogy egyes szabályok nem jók, és ebből ered a konfliktus. Azért nem jók egyes szabályok, mert a szabályalkotók is emberek és hibáznak. Ezeket a hibákat ki kell javítani.
...és miért szigorítanak feleslegesen egyes szabályokon, amik régebben elfogadottak voltak?
- A böngészőmotoroknak segítenek vele, nem a fejlesztőknek (hibás elgondolás)
- Úgy gondolják, hogy jobban tudják, hogy mi jó a felhasználóknak, mint a fejlesztők (hibás elgondolás) (pl. target blank, alt attrib)
- Rá akarják erőltetni a fejlesztőkre olyan paradigmákat, amiket jobb lenne, ha a fejesztők maguk döntenék el, hogy érdemes-e az adott helyzetben alkalmazni (pl. stílusdefiniálás)

Jó a validálás, de nem kéne engedni hogy rossz irányba menjen: a validálás a fejlesztőkért legyen és ne másért és ne fordítva.
6

Nem kérdés tárgya

Joó Ádám · 2009. Már. 7. (Szo), 18.48
Az, hogy érvényes kódot kell-e írni, nem kérdés tárgya. Mint azt a cikk is írja, minden számítógépes nyelvnek megvannak a szigorúan betartandó szabályai, nehezen érthető, hogy a HTML miért kivétel ez alól.

Azt a kaotikus borzalmat, amiben ma dolgozni vagyunk kénytelenek, csak magunknak, a lustaságnak és gyávaságnak köszönhetjük, egyaránt a böngészőgyártóknak és webfejlesztőknek. A szabványok célja a kiszámíthatóság és éppen ez az, ami a webről a fentiek miatt hiányzik, ennek tudatában pedig egyenesen vérnyomásemelő a tudat, hogy máig mennyien vannak, akik nemhogy pusztán nem követik a gondolatot, de mi több, meg is kérdőjelezik, vagy éppenséggel ellene agitálnak!

Furcsának tartom a cikk által állítottat, miszerint túl sokat foglalkoznánk ma az érvényességgel: ha így lenne, akkor a bemutatott felmérés nem ilyen eredményt hozott volna; foglalkozni az érvényességgel nem abból áll, hogy minden kódolási alkalomkor eszembe jut, és megmagyarázom magamnak, hogy most épp miért nem foglalkozom vele.

Részemről az első dolog, amit egy oldalon megnézek, az az, valid-e a forrása, mert ebből egyből kapok egy képet a fejlesztőjéről. Igen, lehet, hogy ettől még pl. táblázatokkal van felépítve, de a szemantika sokkal bonyolultabb és összetettebb kérdés, mint ez; a validitás az elvárható minimum, melynek megfelelni oly kevés erőfeszítést igényel, hogy már lustaságnak sem nevezhetem, ha valaki nem teszi: ez már hanyagság.

Ha valaki nem ismerné, Firefox kiterjesztés is létezik a dologhoz, nem kell folyton hívogatni a validátort: elég minden változtatáskor ránézni az állapotsorra, és ha valamit elírtunk (mert az érvényes kód gyakorlatilag semmilyen korlátot nem jelent fejlesztéskor, és idővel készség szintűvé válik írása), akkor rögtön javíthatjuk.
11

szellemiség

Hodicska Gergely · 2009. Már. 8. (V), 05.55
Idézte Gábor is a szabványt, miszerint egy plusz attributum nem nem szabványos, hanem a szabvány szerint figyelmen kivül hagyandó. Ez nem teljesen ugyanaz. Az hogy ezt a validátor hogyan éli meg, az más dolog (ne adj isten nem szabványos működése!?;)).

Szerintem a lényeg az, hogy tisztában legyél azzal, hogy az adott szabvány mit képvisel, mi a szellemisége, ismerd annyira, hogy tudd fromálni is akár, ha egy magasabb jó miatt ez tűnik célszerűnek. A szabány legyen érted, ne te a szabványért. Szvsz vakon követni szabályokat sokkal veszélyesebb.

Azt is be kéne látni, hogy az hogy az oldal valid, az önmagában kb. semmit sem ér (erre vonatkozik szvsz a túllihegés), egy tök valid oldal is lehet tök rosszul felépített, míg a szemantika jegyében jól felépített oldal egy plusz attributummal sokkal értékesebb lesz.

Programozásban mindig adódnak olyan helyzetek, hogy egy általában kerülendő megoldással többet nyer az ember annál, mintha csak követné bután a Szabályt.
12

...ha a szabvány és mi is fejlődünk az a jó :)

virág · 2009. Már. 8. (V), 10.15
Teljesen egyetértek veled, sajnos sokan nem értik meg, hogy a szabványok maximális tiszteletben tartása nem azt jelenti, hogy nem gondolkodunk új és jobb megoldásokon... :) Hiszen ha nem úgy tennénk ahogyan Gergely írja, akkor maguk a szabványok sem léteznének...hiszen azokat a tervezők és fejlesztők ezreinek szellemi munkája és kompromisszim képessége hozta létre és szerintem minden egyes programozónak és tervezőnek aki kreatív és innovatív pontosan ugyanez a dolga: hogy állandóan kételkedjen a saját munkájában és másokéban is, keresse a jobb megoldásokat - ugyanakkor a szabványokat ismerve és betartva elkerülje, hogy a munkája értelmezhetetlen legyen mások számára.

A szabvány szerintem elsősorban garancia és egy közös nyelv, ne higgyük, hogy ez állandó és kőbe vésett, de legyünk tisztelettel iránta - talán ezt nevezik szakmai alázatnak. :)
21

Lépésenként

Joó Ádám · 2009. Már. 8. (V), 14.20
Nézzétek meg a HTML életútját. Az ad-hoc innováció teremtette meg ezt a szeméthalmot, ami most megkeseríti mindannyiunk életét.

Természetesen mindig gondolkodni kell új megoldásokon, de a szabvány az azért szabvány, hogy betűre betartsuk. Ha rossz, akkor kell csinálni egy újat és implementálni kell – valahogy ez a része már nem megy annyira…
14

is-is

tgr · 2009. Már. 8. (V), 11.58
Idézte Gábor is a szabványt, miszerint egy plusz attributum nem nem szabványos, hanem a szabvány szerint figyelmen kivül hagyandó.


A plusz attribútum nem szabványos és a szabvány szerint figyelmen kívül hagyandó. Ha egy XML fájl nem felel meg a saját DTD-jének, akkor az nem szabványos. Ezen nem változtat, hogy a szabvány előírja-e, hogy a hiba hogy legyen lekezelve (nyilván a jövőbeli változatokkal való kompatibilitást biztosítandó).
20

Fogd a vallásra, akkor nem mernek bántani

Joó Ádám · 2009. Már. 8. (V), 14.15
Idézte Gábor is a szabványt, miszerint egy plusz attributum nem nem szabványos, hanem a szabvány szerint figyelmen kivül hagyandó. Ez nem teljesen ugyanaz. Az hogy ezt a validátor hogyan éli meg, az más dolog (ne adj isten nem szabványos működése!?;)).


tgr alant megelőzött: az ismeretlen attribútum nem szabványos, e hibatípus megfelelő kezelése pedig az attribútum figyelmen kívül hagyása. Részletekben az ördög.

Azt is be kéne látni, hogy az hogy az oldal valid, az önmagában kb. semmit sem ér (erre vonatkozik szvsz a túllihegés), egy tök valid oldal is lehet tök rosszul felépített, míg a szemantika jegyében jól felépített oldal egy plusz attributummal sokkal értékesebb lesz.


Ignoratio elenchi. Mi köze a kettőnek egymáshoz? Attól, hogy betartok minden törvényt, még lehetek rossz ember. Tehát akkor szerinted ne is tartsuk be a törvényeket? A validitás az elvárható minimum.

Szerintem a lényeg az, hogy tisztában legyél azzal, hogy az adott szabvány mit képvisel, mi a szellemisége, ismerd annyira, hogy tudd fromálni is akár, ha egy magasabb jó miatt ez tűnik célszerűnek. A szabány legyen érted, ne te a szabványért. Szvsz vakon követni szabályokat sokkal veszélyesebb.


No offense, de a http://blog.felho.hu főoldalán a lehagyott type attribútum és a 12 lezáratlan p elem milyen szellemiséget képvisel? :) Vagy csak nem foglalkoztál vele, mert így is megeszik a böngészők?
23

No offense???

zzrek · 2009. Már. 8. (V), 17.26
No offense, de a http://blog.felho.hu főoldalán a lehagyott type attribútum...


Végülis mire volt jó ez a mondat akkor? Inkább írtad meg volna hogy az idézett "Szerintem a lényeg az..." bekezdéssel kapcsolatban mi a véleményed...

Szerintem is a szabványra törekedés az egyik legfontosabb (és minimum) dolog, de 2 dolog mindenképp fontosabb:
1: akik a szabványt alkotják mindenképp a megfelelő céllal tegyék, figyeljenek oda, hogy kikért dolgoznak (nem a userekért és nem a böngészőkért, hanem a fejlesztőkért/fejlesztésért)
2: akik észerevesznek egyes hibákat (stb) a szabályrendendszerben és tehetnek érte, éljenek az eszözeikkel. Le a kalappal a dojosok előtt, hogy felvállaták, hogy nem teljesen szabványosak! Észrevették, hogy a szabály nem jó, sőt észrevették hogy a szabály rendelkezik a "nem szabványos" elemeikkel kapcsolatban így biztosak lehetnek benne, hogy hogyan viselkednek majd a szabványkövető böngészők a megvalósításukkal kapcsolatban.

Ugyeugye? ;-)
24

Az

Joó Ádám · 2009. Már. 8. (V), 17.37
No offense, mert nem személyeskedni kívántam, pusztán hatásosan rámutatni, hogy a hasonló elvek általában milyen gyakorlatot próbálnak menteni.
26

"hatásos"

Hodicska Gergely · 2009. Már. 8. (V), 21.50
pusztán hatásosan rámutatni
Valóban nagyon hatásos egy wordpress hiányosságát összekötni a mondandómmal. :)

hogy a hasonló elvek általában milyen gyakorlatot próbálnak menteni
Ezenkívül nem jól értelmezed amiket írtam: nem az a lényeg, hogy ne kövessük a szabványt, hanem hogy adott esetben ne kössük meg magunkat azzal, hogy vakon követjük. Ha valaki nem rak lezáró p taget az hanyagság, de dojo esete egy tudatos döntés. Ami amúgy a Dojo csak egy kisebb részét érinti, és azt is leírták, hogy ha ez neked nem tetszik, akkor simán lehetőséged van saját wrappert készíteni hozzá.
27

Erről volt szó

Joó Ádám · 2009. Már. 8. (V), 22.45
Én értem, hogy mit írsz, de nem erről volt szó: azt mondod, hogy ha a szabálytalan kód jobb, akkor használjuk azt; én ellenben azt mondtam, hogy puszta hanyagság, ha valaki mondjuk nem zárja le a p-ket a Wordpress témában.
29

kettőnek nincs köze egymáshoz

Hodicska Gergely · 2009. Már. 8. (V), 23.48
Én értem, hogy mit írsz, de nem erről volt szó: azt mondod, hogy ha a szabálytalan kód jobb, akkor használjuk azt; én ellenben azt mondtam, hogy puszta hanyagság, ha valaki mondjuk nem zárja le a p-ket a Wordpress témában.
Nem látom, hogy értenéd. A két dolog nem egy kategória (erre próbáltak itt többen is rávilágítani).

Plusz amin igazából felhúztam a szemöldököm, az a lustaság/hozzá nem értés kitételed. Kb. semmilyen alapod nincs arra, hogy ilyen szavakat használhass (szerintem!). Dojo akárhogyis nézzük egy elég profi cucc nagyon sok szempontból, Alex Russel már kb. 10 éve is egy egész pofás OS jellegű cuccot fejlesztett JS-ben, Dojo-t is ő állította pályára, Comted/Bayeux is elég erősen kötődik a nevéhez, te mit tettél le ezekhez képest?

Miért, ilyen alapon hol lényeges?
Részben jogos, de azért el tudok képzelni nagyon reflektorfényben lévő oldalt is. Viszont nem fogják se többen olvasni, se kevesebben azok miatt a p-k miatt: betölti a szerepét.

De a te blogod. Ha rossz az eszköz, akkor vagy javítom, vagy másikat választok.
Vagy belátom, hogy tök mindegy, hogy ott van e az a lezáró p tag. Adott kontextusban egyszerűen nem számít. Jobb szeretek valós problémákat megoldani.
30

Emberi

Joó Ádám · 2009. Már. 9. (H), 00.52
Nem látom, hogy értenéd. A két dolog nem egy kategória (erre próbáltak itt többen is rávilágítani).


Mégis mindkét esetben le lett vonva a következtetés: felesleges validnak lenni.

Kb. semmilyen alapod nincs arra, hogy ilyen szavakat használhass (szerintem!). Dojo akárhogyis nézzük egy elég profi cucc nagyon sok szempontból, Alex Russel már kb. 10 éve is egy egész pofás OS jellegű cuccot fejlesztett JS-ben, Dojo-t is ő állította pályára, Comted/Bayeux is elég erősen kötődik a nevéhez, te mit tettél le ezekhez képest?


Szeretsz tekintély alapon vitatkozni, de jobb érvekkel, mint személyekkel. Lehet, hogy én azt az időt, amit mások arra fordítanak, hogy nagy dolgokat tegyenek le az asztalra, ilyen valótlan hülyeségekkel töltöm. Lehet, hogy én azt a munkát végzem, aminek csak a hiánya szokott feltűnni.
Egyébként a W3C is tapasztalatlan suhancok gyülekezete, ha ellene vannak az önkényes attribútumoknak?

Viszont nem fogják se többen olvasni, se kevesebben azok miatt a p-k miatt: betölti a szerepét.


Annyira emberi… Igen, a magyar utak is így készülnek, a nagy kép a lényeg, nem a kontextusból kiragadott részletek: nem az számít, hogy sokáig tartson, az számít, hogy meglegyen. A nagy képet tartod szem előtt akkor is, mikor kocsiba ülsz tömegközlekedés helyett: a lényeg, hogy ott légy, hogy mi lesz ötven év múlva, az lényegtelen. A Wordpress sablonod készítője is a nagy képet tarthatta szem előtt, mikor nem foglalkozott ilyen kicsinyes dolgokkal, mint pár p tag lezárása és valid HTML írása: a nagy kép azt kívánta, hogy meglegyen a sablon, még ha így több száz, több ezer invalid oldallal is gyarapodott a web.
Igaz nagyjából semmiféle erőfeszítést nem igényelne adott fejlesztőtől az, ami hosszabb távon egy kiszámítható platformmal, kevésbé idegörlő fejlesztéssel, kisebb és gyorsabb böngészőkkel egy jobb világot eredményezne.

There’s one hole in every revolution, large or small. And it’s one word long – PEOPLE. No matter how big the idea they all stand under, people are small and weak and cheap and frightened. It’s people that kill every revolution.
31

a szabvány fontos

Hodicska Gergely · 2009. Már. 9. (H), 02.24
Mégis mindkét esetben le lett vonva a következtetés: felesleges validnak lenni.
Egyik esetben sem ez volt a végkövetkeztetés. Wordpress: hanyagság (máglyára kéne vetni aki csinálta), de ettől még fontos a szabvány. Dojo: tudatos döntés (nem tudom jobban kiemelni), de ettől még fontos a szabvány, csak épp a szabvány mellett vannak egyéb szempontok is.

A végkövetkeztetés részemről az, amit már írtam: tudni kell a szabványt a helyén kezelni, és ha adott esetben ez a célravezető, akkor lehet feszegetni a határait.

Szeretsz tekintély alapon vitatkozni, de jobb érvekkel, mint személyekkel. Lehet, hogy én azt az időt, amit mások arra fordítanak, hogy nagy dolgokat tegyenek le az asztalra, ilyen valótlan hülyeségekkel töltöm.
Kicsit kiforgatod ezt a dolgot, nem a "nagy dolog" a lényeg, hanem hogy mondjuk tizen pár éve (nem erény, idősebb, ennyi) magas szinten ezzel foglalkozik, helyzeténél fogva (nem erény, bár valszeg meg is dolgozott érte) lehetősége van igen mély tapasztalatokat megszerenzni, rengeteg felhasználó véleményét aggregálni, szintén más elismert szakemberrel együtt dolgozni. Én erre nem merném csuklóból azt mondani, hogy lustaságból döntött.

Egyébként a W3C is tapasztalatlan suhancok gyülekezete, ha ellene vannak az önkényes attribútumoknak?
Nyitott kaput döngetsz, senki nem mondott itt ilyet. Azt viszont vedd figyelembe, hogy mikor készült a jelenleg aktuális szabvány, mások az elvárások manapság egy weboldallal kapcsolatban. Elég jól mutatja ezt az is, hogy mik kerülnek be a HTML5-be, egy csomó olyan dolog, amire igény van, és eddig nem létezett. De ez nem azt jelenti, hogy nyeretlen kétévesek találták ki annó, csupán azt, hogy más peremfeltételek voltak érvényesek akkor.

Annyira emberi…
Valószínűleg az lehet mögötte, hogy egy ember csinálta. Viszont ott van alul link a sminkre, szerintem szívesen fogadja az illető a javítást.
25

kontextus

Hodicska Gergely · 2009. Már. 8. (V), 21.38
No offense, de a http://blog.felho.hu főoldalán a lehagyott type attribútum és a 12 lezáratlan p elem milyen szellemiséget képvisel? :) Vagy csak nem foglalkoztál vele, mert így is megeszik a böngészők?
Egy blog esetén szerinted ez a lényeg? Amúgy meg egy alap wordpress valamilyen sminkkel, pont nem érdekel, hogy milyen HTML-t ad ki magából. Próbáld meg valahogy a dolgokat a kontextusban értelmezni: lehet egy kiragadott elemen rágódni, csak nem biztos, hogy van értelme, mint ahogy az a blog sem lesz semmivel sem jobb, ha lennének ott lezáró p tagek. A szellemiségemről meg az about alatt lehet olvasni. ;)

Update: ha már szellemiség, épp most futottam bele a szerveren ebbe: http://felho.hu/regi/zionweb/intranet.html, ezt kb. akkor csináltam, amikor 4./5. osztályba jártál, és kipróbáltam, fut minden, ma a gépemen lévő böngészővel (ezzel együtt nem így csinálnám ma már ;)).
28

Nihil

Joó Ádám · 2009. Már. 8. (V), 22.50
Egy blog esetén szerinted ez a lényeg?


Miért, ilyen alapon hol lényeges?

Amúgy meg egy alap wordpress valamilyen sminkkel, pont nem érdekel, hogy milyen HTML-t ad ki magából.


De a te blogod. Ha rossz az eszköz, akkor vagy javítom, vagy másikat választok.

ha már szellemiség, épp most futottam bele a szerveren ebbe: http://felho.hu/regi/zionweb/intranet.html, ezt kb. akkor csináltam, amikor 4./5. osztályba jártál, és kipróbáltam, fut minden, ma a gépemen lévő böngészővel


Ez mondjuk inkább a böngészőfejlesztők „érdeme”, de vajon nem futna, ha valid lenne?
34

Előbb volt a tyúk!

deejayy · 2009. Már. 9. (H), 11.22
Én azt képzelem, hogy annak idején, amikor elkezdtek ilyen html-nek nevezett szörnyűségeket gyártani, akkor főként tesztből ezt-azt beleraktak, amihez azután hozzáigazították a böngészőket. Ez akkor jó, ha a html írói valamilyen kapcsolatban álltak a böngészőgyártóval. De amikor több böngésző lett, többféle módosítást akartak véghezvinni, nem mindig voltak szinkronban, ezért létrehoztak egy "szabványtestületet", aki majd jól megmondja mindenkinek, hogy hogyan kell html-t létrehozni, és azt értelmezni. Így központosítva lett, nem lettek eltérően működő weblapok (haha). De mindezek előtt voltak a lusta html írók, meg a sok szabadidővel bíró böngészőfejlesztők és úgy alakították a brózert, hogy jó legyen a html-nek. Nem pedig fordítva, és ezért volt előbb a tyúk :\

Valaki felhozta példának a delphi-t. Igen, jó példa, gondoljunk csak bele, milyen jó lenne, ha két változónak is adhatnánk értéket egy soron belül (kb.: a := b := 0), megkönnyítené a programozó életét, de nem szabályos, ezért nem működik. Meg kell oldani másképpen, ennyi. Hozzáteszem, régen használtam delphi-t, előfordulhat, hogy változtattak a szabványon, és már remekül működik ez a fícsör is.

A sajnálatos az, hogy a webfejlesztőknek van választásuk a szabvány követése és figyelmen kívül hagyása között. (Ez a vita sem lenne akkor, ha a szabálytalan kódok helyett blank page jelenne meg az összes böngészőben...)
35

Dojo, HTML 5

attlad · 2009. Már. 9. (H), 12.57
A HTML 5 még nem ajánlás, de jelenlegi verziójában lehetőséget ad egyedi data-* attributúmok alkalmazására, szóval a Dojo használhatná azt is.
38

Próbálta már valaki?

Gixx · 2009. Már. 9. (H), 16.34
Végigolvasva a sok hozzászólást most így nem rémlik nekem, hogy bárki is kipróbálta volna az XHTML "kiterjesztését" saját "modullal". (az idézőjelek a pontos elnevezések utánanézése iránt kiváltott lustaságomat hivatott fedezni :P)

Pár éve, amikor kijött az XHTML 1.1 én megtettem, mert nem tetszett, hogy kivették a target attribútumot az <a ...>-ból. (Mondjuk ma már értem és elfogadom az indokot, hogy a látogató döntsön, hogy egy linket hova akar megnyitni)

Mindenesetre elkezdtem kutakodni és megtaláltam, hogyan tudnám visszavarázsolni. Minden szép és jó volt, de az örömömet egy idő után felváltotta a felismerés, hogy lehet, hogy a validátor azt mondja rá, hogy übervalid, de biztos megfogalmazódik majd előbb utóbb egyesekben, hogy ugyan mi a bánat az a PUBLIC "-//GIXX//DTD XHTML11-with Target//EN" ??

Merthogy a GIXX az nem W3C, így tulajdonképpen minden valid, amiről én azt mondom. Tehát az oldal így GIXX DTD valid lesz és nem W3C DTD valid. Akkor viszont a "W3C validated!" ikont se rakhatom ki (akkoriban ezt fontosnak tartottam).

Szóval szép és jó lenne, ha a moduloknak lenne valami W3C által validált gyűjtőhelye, és onnan be lehetne építeni őket. Nem tudom, van-e most (már) ilyen?
39

Mit lehet tenni?

supi007 · 2009. Ápr. 7. (K), 11.58
Ami engem illet én sokszor megszívom, hogy különböző böngészők különbözően jelenítik meg a kódomat. A kérdés inkább mi a megoldás, hogy mindegyik uú. jelenítse meg? Elvileg pont a validálás lenne a jó erre. Miért is? Ha én böngészőfejlesztő lennék, akkor látnám, hogy mindenki sír, hogy nem jól jelenik meg a kód a böngészőben. Feltenném, hát a költői kérdést: Hogyan írjam meg a böngészőmet, hogy mindenkinek jó legyen? A válasz: a szabványnak megfelelően. Pont. Ja, csak nincs szabvány. A validátor lenne a szabvány betartatója. Gondolom.
40

ez jó kérdés

balazsgabi · 2009. Ápr. 11. (Szo), 21.13
Miért nincs szabvány? Mi lehet az oka, hogy pont erre nincs még szabvány?

Az, hogy ajánlás valóban nem olyan eget rengető erejű és ráadásul csak a mellébeszélésre ad lehetőséget. Lásd box modell, ami megint csak nézőpont kérdése, hogy kinek van igaza. Vagy ott a másik kedvencem a haslayout.

Egy hozzáértő esetleg tudja, mi a konkrét akadálya, vagy pontosan ki tehetne azért, hogy ez olyasmi erejű legyen mint pl. egy ISO?
41

Mi a különbség?

Joó Ádám · 2009. Ápr. 12. (V), 19.21
Egy ISO szabvány betartása is önkényes. Ha pedig előírás, akkor mindegy, hogy ISO szabvány vagy W3C ajánlás. Csak hozzáállás kérdése.
44

A 'legjobb' megoldás?

Adam · 2009. Ápr. 16. (Cs), 15.48
…talán az lenne, ha a böngészők nem akarnának a fejlesztők kedvébe járni és kitalálni, hogy egy hibásan megírt HTML valójában mit is akar pontosan jelenteni. Ha nem "valid", akkor megy a levesbe. Egy hibás — értsd parse error — java vagy php, de ne menjünk szerveroldalra, javascript esetén sem fog működni a "hibátlanul" megírt része. Persze ez már nem kivitelezhető, mert ahhoz a kezdetek kezdetén így kellett volna már a legelső böngészőknek működnie — azt hiszem lenne is felháborodás, ha ezt a megoldást behoznák a böngészők :)

De hogy az eredeti témánál maradjunk, nemrég néztem meg egy Yahoo előadást, amiben a következőket mondták:
  • kövessük a szabványokat amíg lehet / van rá mód;
  • kövessük a konvenciókat amíg lehet / van rá mód;
  • csináljuk, ahogy tudjuk.
45

Igen

Joó Ádám · 2009. Ápr. 20. (H), 16.56
Kétségkívül ez lenne a legjobb megoldás, de ma már tényleg nagyon nehéz rálépni erre az útra. Első lépésként azonban lehetne alapkiszerelésben pl. egy ikont tenni az állapotsorba vagy hasonló helyre, ami jelzi, hogy érvényes-e a HTML (JS, CSS) kód. Így a fejlesztők könnyebben észrevennék a hibákat, és ha csak egy kis becsvágy is van bennük, akkor, ha ily módon látható az átlagfelhasználó számára is, talán inkább veszik a fáradtságot, hogy javítsák.
Az idő előrehaladtával pedig lehetne egyre drasztikusabb megoldásokhoz folyamodni.
42

Formai megjegyzés

helloworld · 2009. Ápr. 16. (Cs), 00.15
Az a három site valóban jobb minőségű volna a többitől
A többi site hatására nem lesz sem jobb, sem rosszabb az a három, gondolom ezt szándékoztad írni:
"Az a három site valóban jobb minőségű volna a többinél, csak mert valid a HTML forrása?"
43

Javítottam

Török Gábor · 2009. Ápr. 16. (Cs), 07.00
Javítottam, köszönöm.