• TwitterRSS
  • Domů na Webylon
  • Kritika W3C
  • Validita
  • Z moci úřední

    27. dubna 2005

    Co se stane, když svěříte pokrok do rukou úředníka a místo rozumu mu opatříte mocné razítko? Dojde k rozkolu. Takzvaný pokrok kráčí dál způsobem, že nad tím zůstává rozum stát.

    Byrokratičnost některých důležitých doporučení W3C sehrála v době největší slávy evangelizace důležitou roli. Dopomohla k výraznějšímu odlišení dvou hlavních táborů: Těch, co „tomu rozumí“, a těch, co „zaspali dobu“.

    Někde mezi těmito tábory je tábor třetí. Relativně malý. Přestože na první pohled „zaspal dobu“, tak „tomu rozumí“ a jednoduše nemá rád byrokracii.

    Alternativa bez alternativy

    Podle nových doporučení konsorcia musí být alternativa k obrázku <img> vyjádřena atributem alt. Neexistuje-li výstižný alternativní text, prý obrázek není důležitý a měl by být dosazen jako pozadí nějakého elementu přes kaskádové styly. Tak praví moderní webdesign.

    Vnucování atributu alt je však mnohdy zbytečné. Popíšete-li dostatečně v okolním textu, co na obrázku je, pak stránka zobrazená bez něj neztrácí svoji informační hodnotu. Jistě, že ve většině případů je umístění altu vhodné. Menšina však má nezpochybnitelné právo na svoji existenci.

    Podle stejné logiky by měl být u rámců povinný element <noframes>. Není. Rovněž doporučení nepřikazuje umístit do elementu <object> alternativu v případě nenačtení objektu.

    Nejsi můj typ

    Elementy <script> a <style> mají povinný atribut type. Pročpak?

    U skriptů má určovat použitý skriptovací jazyk. I když si odmyslíme, že pro skripty neexistuje jediný registrovaný MIME typ, je vyžadování tohoto atributu nesmyslné. Jak z hlediska historického, tak z hlediska praktického.

    První prohlížeče podporující JavaScript užívaly k identifikaci jazyka atribut language. Atribut type neznaly. Najednou se na scéně objevilo doporučení HTML 4. Určilo, že v budoucnu to má být s atributy naopak. Logickým vyústěním nastolené situace je, že si prohlížeče zavedly cosi jako výchozí jazyk. Pak nepotřebují ani type, ani language.

    V HTML existuje mnoho atributů, které nejsou povinné a jejich uvedením se pouze přebíjí výchozí stav. Kdyby doporučení (X)HTML zavedlo JavaScript jako výchozí jazyk (popř. typ), nevznikla by žádná újma na obecnosti. Podobné je to u elementu <style>.

    V případě atributu style, jehož přítomnost je možná u téměř každého elementu, je užívaný stylový jazyk předurčen HTTP hlavičkou Content-Style-Type. Není-li tato hlavička uvedena, bere se jako výchozí typ text/css. Uvážíte-li, že text/css je v HTML jedinou široce použitelnou hodnotou, zkuste vymyslet rozumnou odpověď na otázku, proč není u elementu <style> brána tato jako výchozí?

    Sám o sobě

    Každé písmeno anglické abecedy, které samo o sobě znamenalo slovo, bývalo ještě před několika málo staletími uvozováno latinským souslovím „per se“ (= „samo o sobě“). Na konec abecedy se tenkrát řadil i znak &. Sám o sobě znamenal „and“, anglickou slučovací spojku. Žáčci po vyjmenování všech běžných písmen dodávali „and per se and“. Tak dostal znak & své jméno.

    Standard SGML říká, že ampersand následovaný písmenem uvozuje odvolání se na entitu. Buď znakovou nebo jmennou. Co se stane, když za ním označení entity není?

    Začnou se dít nahodilé nedefinované nedefinovatelné jevy. Časoprostorové anomálie. Zbortí se svět. Počítač vám sní rybičky, v ledničce najdete rozvášněného vorvaně a nepřejte si vidět, co provede vaše umyvadlo rýmě, až ji chytí.

    Je však možné, že následky této hrozivé události nebudou tak katastrofální. Dopady nejspíše nepřekročí omezené prostředí procesu prohlížeče. Nuže, jak může onen kousek softwaru reagovat? Možností není mnoho:

    Jestli vůbec někdy existovaly prohlížeče, které zvolily jinou než čtvrtou variantu, pak již dávno vymřely. Upozorňování na ampersand nevyjádřený entitou &amp; (tedy na nedefinovanou entitu) je oblíbeným zlozvykem validátorů.

    Podstatou hypertextu je mimo strojové zpracovatelnosti i lidská čitelnost. Zobrazení nerozenané entity v její zdrojové podobě neohrožuje výrazně čitelnost, nepředstavuje tedy nebezpečí. Z pohledu webmastera: Pro normálního člověka je přirozené, když do atributu href u odkazu vloží URL přesně tak, jak ji získal kupříkladu z adresního řádku prohlížeče. Tudíž to, že se v URL objevují ampersandy, je poměrně běžné.

    Porovnejte HTML entity s escape sekvencemi třeba v obyčejném JavaScriptu. Představte si na příklad řetězec s nedefinovanou sekvencí „\ň“. Zhroutí se interpreter? Zahlásí syntax error? Zastaví provádění? Nikoliv. Protože přemýšlí.

    Zákon úředního šimla

    Úředník se nezastaví před ničím, má-li jeho razítko dostatečnou váhu. Svá rozhodnutí vždy obhájí buď s pomocí sémantiky nebo struktury. Když nevyhovuje ani jedno, zbývá ona prostá definice dobra: Dobro je to, co vymyslel úředník.