Jan Brašna | HereBeDragons™

Ukecaný CSS validátor

Po nedávném upgradu CSS validátoru na vyšší verzi máte možnost si do své práce nechat trochu mluvit od tohoto „plecháče“, ve výstupech se krom vlastního rozboru formální gramatiky (jen dle aktuální finální specifikace, nikoliv tedy syntaktické platnosti) objevuje i část s varováním na případné problémy.

Nejde o podněty, které by se vázaly k nějakému problému po stránce vlastní techniky či platnosti kódu, ale o záležitosti, které se točí kolem možných problémů s kompatibilitou, přístupností či případnou jednoduchostí kódu

Typicky nejobsáhlejším výstupem je upozornění na absenci nastavené barvy pozadí, pokud je nastavena barva popředí, to je otázka přístupnosti. Pokud není obojí ponecháno automaticky a nebo není obojí definováno, může dojít k případné nečitelnosti. Validátor také upozorňuje na některé shody popředí a pozadí mezi některými elementy. Většinou ale lze logicky vyvodit, že díky kaskádě či vnoření / překryvu prvků je to vyloučeno. Tudíž tyto připomínky jsou především pro osvěžení paměti a vztyčení varovného prstu před možným problémem, ve většině případů při zodpovědné tvorbě jich ale převážná část bude irelevantní.

Další často zmiňovaný krok bývá předefinovávání některých vlastností, typicky rámečků ap., v očích validátoru redundantní vzhledem ke kaskádě, pro tvůrce to může být z důvodu čitelnosti či přehlednosti. Validátor se bude snažit označit např. zduplikované, samozřejmé či děděné vlastnosti, neboť kontext nebuduje z vlastního hypertextového dokumentu, tudíž nezná kaskádu, či jiný důvod, kvůli kterému to může být potřebné či vhodné.

Zbylé body se týkají zobrazovacích možností všelijakých zařízení typu WebTV s omezením pixelových či bodových rozsahů nebo výběrem kurzorů, dále se objevují připomínky chybějící generické rodiny písem nebo upozornění na práci s bílými znaky v neuvozených řetězcích.

Tudíž se těchto někdy sáhodlouhých varování nebojte, jsou tady pouze pro osvěžení paměti.

Pátek, 28. 10. 2005 21.39 | Trvalý odkaz | Trackback

11 komentářů

  1. [1] llook

    Teda neznám tak podrobně historii CSS, ale podle Chamurappiho ta kaskáda v kaskádových stylech znamená původně něco jiného: http://www.we­bylon.info/C21­.cs.aspx

    29. 10. 2005 1.50

  2. [2] Jan Brašna

    [1] Definice slova „cascade“ v názvu CSS je skutečně taková – viz http://www.w3­.org/…cascade­.html (což nevylučuje jeho použití v kontextu dědění vlastností).

    29. 10. 2005 2.19

  3. [3] Aleš Janda

    Ono je to tak, že by styly měly být naprosto obecné, jako kdyby mohly být použity na úplně jinou stránku. Jenže to je prakticky nemožné a každý CSS styl je vlastně „na míru“ udělaný na konkrétní stránku.

    A z toho pramení ty hlášky. Kdyby ty styly byly opravdu napsány úplně obecně, žádná varování by validátor nezobrazoval.

    To je ale spíše ještě utopie…

    29. 10. 2005 9.29

  4. [4] TimJ

    Aha, tak už chápu, proč kontroluješ styly na starejch webech a hlásíš chyby ;).

    29. 10. 2005 13.26

  5. [5] Jan Brašna

    [3] Pochopitelně. Ale nemyslím si, že by měly být obecné, naopak skládání vlastností průchodem DOM je pro konkrétní styly ideální.

    [4] Bingo. Srovnal jsem výstupy ze staré verze a z té současné.

    29. 10. 2005 14.55

  6. [6] Vojtěch Bulant

    [3] Já si myslím, že by styly neměly být obecné, to by vlastně mohlo konsorcium vydat seznam id a tříd, které mám v tom kterém případě používat a bylo by vymalováno, navíc by to zamezovalo kreativnímu využití stylů. Tenhle „obecný“ stylopis je ideální například pro cms, kde si ho uživatelé upravují k obrazu svému, ale zavést ho globálně je hloupost..

    29. 10. 2005 19.51

  7. [7] Aleš Janda

    [6] Já myslím, že nějaké globální seznam možných id a jeho dodržování by byl dost zajímavý. To by se to např. kradl design :-) Stačilo by vzít cizí CSS, přidat ho do svých stránek a bylo by.

    Mnohem snáze by se sdílelo, možná i rychleji vyvíjelo.

    Otázka je, jestli by to celé mělo nějaký význam. Nicméně jako námět na projekt dobré :-)

    29. 10. 2005 20.50

  8. [8] Jan Brašna

    To jde ale o dvě nezávislé věci.

    Jedno by bylo abstraktní definování vlastností bez jakékoliv vazby na konkrétní použití (DOM), což je trochu sci-fi z důvodu specifických či předdefinovaných stylů (nehledě na nutnost nesmírně redundantní informace). Spíše právě pro globální / výchozí styly je to použitelné.

    Druhou věcí je používání definované struktury při tvorbě – ukázkou jsou např. šablony některých CMS, popř. u nás se často pracuje s „musterem“ nebo tradičním nazýváním a používáním elementů – více vizte http://www.stuf­fandnonsense.co­.uk/…_a_name.html a http://www.stuf­fandnonsense.co­.uk/…ame_pt2.html

    30. 10. 2005 2.35

  9. [9] Vojtěch Bulant

    [8] Ano, přesně tak jsem to myslel ohledně CMS. [all] Když to vezmeme kolem a kolem, styly se pro určité elementy definují globálně – body, h, strong, form, div.. A řekl bych, že je rozumné zde skončit a dále psát volně, bez mantinelů..

    30. 10. 2005 6.10

  10. [10] Fred

    Ten upgrade je podivný, po téhle změně jsou totiž ty výstupy skoro stejné, jako byly tady http://www.htmlhel­p.com/tools/csschec­k/ minimálně už dva roky zpátky.

    30. 10. 2005 12.17

  11. [11] Dero

    Ta konkluze je imponující. V mých očích má W3C CSS validátor taky jedinou funkci – poradní. Občas mu dám za pravdu, občas jej ignoruji.

    Hezký článek.

    5. 11. 2005 1.03

RSS komentářů

Vaše postřehy

FinePrint™: Pokud máš chuť plkat mimo téma spotu nebo se tady navážet do ostatních, máš šanci, že komentář půjde do křemíkového pekla. Účelové nebo anonymní příspěvky budu dle rozmaru a bez vysvětlování likvidovat. Podepiš se; pokud se k napsanému nehlásíš, ani to neodesílej. Diskusi mám rád, ne už tak flame a blbce. Mysli na to při psaní.