Další poznámky k HTML a sémantice
Pozn.: Opět jde o nepříliš strukturované poznámky.
Jazyk a význam
HTML, ostatně asi jako jakýkoli jiný jazyk, je složen jak ze syntaktické složky, tak ze sémantické složky. Sémantická část pojednává o smyslu znaků. Vysvětluje, dává význam do té doby smysluprázným symbolům.
Když sdělujeme významy, symbolizujeme je – vyjadřujeme znaky, odpovídající zamýšleným významům. Při opačném procesu, tedy při vnímání znaků, využíváme téže tabulky vztahů symbol-význam, abychom se dobrali sdělení.
Je zřejmé, že kódující i dekódující účastník komunikace musí oplývat týmž popisem jazyka, aby se mohlo původní sdělení ocitnout v druhé mysli v identické kvalitě. (Pomiňme nyní nezbytnou redukci informace, při jakémkoli symbolizování.)
Význam sémantiky v oblasti HTML
V oblasti HTML se sémantikou jazykových jednotek nemyslí existence jejich smyslu – osobně se domnívám, že pokud by byla zpřetržena vazba mezi symbolem a významem, symbol by přestal mít možnost být symbolem jazyka. V tomto smyslu je samozřejmé, že jakýkoli znak (v HTML kategorie: značka, atribut, hodnota) musí nést sdělení, jinak by byl beze smyslu. A lidé přece nedělají nesmyslné věci, že? Samozřejmě, pokud nejsou šílení. Příklad symbolu beze smyslu, HTML:
<strong lang="en" lorem="ipsum">Orange juice</strong>
Pomiňme, že to je (tuším) proti jiným pravidlům jazyka. Vlastnost
lorem
je beze smyslu. Není součástí specifikace jazyka, není
součástí DTD, atd. I kdyby její existence byla syntakticky umožněna,
chybí-li vysvětlení významu, význam neexistuje, tudíž neexistuje ani
symbol, jakožto symbol jazyka.
Ne, sémantičností znaku v jazyce HTML se všeobecně míní schopnost znaku symbolizovat něco jiného, než je vzhled (rendering, prezentace) značeného obsahu. (Protože HTML není jazyk pro sdělování významu, ale spíše… snad bychom mohli říct metajazyk.)
Osobně se za „sémantické“ snažím označovat pouze takové jednotky, které se vyjadřují k významu obsahu. Je-li sémanticky značkovaným obsahem text, tak sémantická značka přibližuje sdělení textu. A pozor, o sdělení značky je vždy dáno apriorní specifikací, nikoli praktickým užíváním.
I I
je „sémantické“
Tady je na místě připomenout, že běžné vnímání HTML značek
I
nebo B
jako prezentačních, je v rozporu
z formulací specifikace HTML 5 dnešního data, kde se tvrdí např.:
The
i
element represents a span of text in an alternate voice or mood, or otherwise offset from the normal prose, such as a taxonomic designation, a technical term, an idiomatic phrase from another language, a thought, a ship name, or some other prose whose typical typographic presentation is italicized.
Jak vidno, stejně jako u mnoha jiných značek, i u I
je
v prvé řadě popsán druh informace, k jehož značkování byla značka
zamýšlena a posléze je popsáno i doporučené vizuální formátování
onoho obsahu.
Není to [sémantičnost znaku], jak by si člověk mohl inuitivně myslet, nebo jak jsem si dříve myslel, vlastnost symbolu referovat na místo v ontologii. Anebo možná i ano. Potíž je, alespoň pro mě a pro mé chápání, že součástí této všeobjímající ontologie můžeme myslet i různé pojmy z formálních dimenzí, nebo lidských myslí.
[…]
Aside
Teď prosím dávejte trochu pozor.
The aside element represents a section of a page that consists of content that is tangentially related to the content around the asideelement, and which could be considered separate from that content. Such sections are often represented as sidebars in printed typography.
K této značce jsou připojeny dva příklady. Příklady dvou takových druhů obsahů, které jsou na webu mimořádně řídké. Které odsuzují značku k:
- volnější interpretaci
- velmi řídkému použití (typ „pull quotes“, anotace)
- tázání se po smyslu takového činění (zapojování značky do slovníku jazyka HTML)
Ví se, že mnozí, mimo jiné Lachlan Hunt*, který se nějakým způsobem spolupodílí na tvorbě jazyka HTML, ale taky mnozí další automaticky interpretují tuto značku jako ideální prostředek pro vymezení tzv. sidebaru**.
* – Lachlan Hunt v článku A preview of HTML
5 velmi zbrkle označkoval běžné vizuální celky webové stránky
(hlavička, postranní sloupec, patička) novými značkami, mj. postranní
sloupec značkou aside
. A to bez sebemenšího zpytování
sémantiky čili obsahu těchto vizuálních sekcí. Myslím, že tím článkem
natropil škody, které se budou spravovat dlouho a těžce.
** – Sidebar – na webu jde o postranní sloupec, jehož obsahem bývají zejména navigační prvky, a jen okrajově obsah, který je příbuzný hlavnímu obsahu. Pokud se ovšem neuchýlíme k oné mimořádně široké interpretaci, že obsah částečně příbuzný hlavnímu obsahu je veškerý obsah webu, pokud je web alespoň trochu tématicky zaměřen :-). Tedy stojíme před zásadní otázkou – jaký obsah ještě je a jaký obsah už není – příbuzný s hlavním obsahem?
Popravdě, nemyslím, že jde o tolik záhadnou otázku. Podle mě,
příklady ze specifikace jsou dostatečně vypovídající – a dle nich
běžný „sidebar“ nespadá do obsahu značkovatelného pomocí
aside
. Možná to kodérova touha po zvláštních značkách pro
často opakované prezentační celky vynutila takovouto interpretaci.
A domnívám se, že úplně stejně je to se značkami header
a
footer
, které se schylují být používány nevhodně,
nesprávně, v rozporu se specifikaci.
Dobré na budoucnosti je to, že snad jednou dojde ke schválení a implementaci Layout Modelu (CSS3), že snad jednou dojde ke změně kodérských návyků, že snad jednou přestaneme používat nadbytečné HTML – wrappery typu #sidebar (protože dnes bez nich web jednoduše nenakódujeme) a tím by se mohlo redukovat chybné užívání některých zmíněných značek. Tedy – pokud se vše odehraje a odehraje v časové shodě.
O čem mluvím, tedy jakémusi intuitivnímu přístupu k umělému to jazyku HTML, se dá nalézt i v tomto dialogu.
[…] header a footer jsou celkem zbytečné.
Zkuste si projet reálné weby a zjistíte, že většina z nich má hlavičku i patičku a také se je snaží nějak vyznačit (nesémanticky). […]
Hlavička a patička jsou prezentační celky. Jsou to pojmenované fragmenty vizuální stránky věci. Všimněte si, že těmto celkům neříkáme tak na základě jejich obsahu (obsah dokonce dokáže být extrémně proměnlivý). A naopak, obsah těchto celků budeme těžko vyvozovat z jejich jména (značky). Chce-li člověk vědět co prvky typu „header“ a „footer“ v HTML volitelně/nutně obsahují, nezbývá mu, než se podívat do specifikace. Intuitivní interpretace těchto značek je to nejhorší a nejiracionálnější, co člověk může udělat.
[…]
Sémantické sdělení značek header
a footer
se
při intuitivním výkladu a znovu-užití opírá o obecně přijímané
zvyklosti užívání „hlaviček“ a „patiček“ a o další,
specifikovaný možný obsah. V souhrnu je obsah
takovýchto elementů obsahově (sémanticky) volný a dovolím si tvrdit, že
z tohoto hlediska jsou tyto značky neschopné a zbytečné (právě kvůli
obsahové neurčitosti).
Příklad:
A footer typically contains information about its section such as who wrote it, links to related documents, copyright data, and the like.
Zajímavě (vzhledem k pojmenování „footer“) potom vyzní následující výrok:
Footers don't necessarily have to appear at the end of a section, though they usually do.
Otázka zní: pokud tyto značky nejsou určeny k sémantickému popisu dokumentu a ani k definici způsobu prezentace, k čemu slouží? K čemu mohou být užitečné?
Jinými slovy shrnuto, vývoj HTML mi trochu nesedí. Že webdyzajnéři si nejsou vždy jisti, jaký obsah by měly značky popisovat je normální, ale když vám autor jazyka řekne, že vlastně neví, co by onen výraz měl znamenat, že si můžete domýšlet – přestože je jeho autorem – to člověku nemůže přijít jiné, než prostě absurdní.
Jestli Ti, milý čtenáři, přijde něco z vyřčeného jako nesmysl, rád si o tom podiskutuji.
Komentáře (11)
k formuláři
RSS kanál komentářů
6.5. 2009 — 12:06
Hezké hezké… header a footer mi zatím v html rozhodně nechybí.. a vzhledem k tomu, že HTML5 bude reálně implementováno v majoritním IE12 v roce 2017, tak mě to nechává ledově klidným :-)
6.5. 2009 — 12:32
[…] článek: Kahi’s mindprint // Další poznámky k HTML a sémantice Další články s podobnou tématikou:Kahi's mindprint // Univerzální obecný stylopis pro HTML […]
6.5. 2009 — 13:28
„Tato webová stránka využívá technologií, které Váš prohlížeč bohužel nepodporuje.“
Jaké to squjelé technologie ospravedlňují, že ve svém letošním prohlížeči musím čumět na takový typografický humus s uřezaným levým okrajem?
6.5. 2009 — 13:40
[3] Jiří Bureš: Aha. Asi bych měl upravit rozpoznávání prohlížeče, považuje tě to za IE6. Za typohnus se omlouvám, jedna js knihovna si, zdá se, dovolila resetovat hvězdičku. Uřezaný okraj mi nedává smysl. Zkusím s tím později něco udělat.
6.5. 2009 — 19:41
Tak doma mi to už „maluje“ hezky. ;-) Díky.
6.5. 2009 — 20:50
[5] Jiří Bureš: nevím jestli si rozumíme, ale zatím jsem na to nesáhl. Možná zítra.
vs. druhý komentář
6.5. 2009 — 22:20
Přijde mi, že určitá obecnost ve významu značek jako
footer
aheader
je v pořádku. Nedovedu si představit, že by v HTML existovaly specifické značky pro každý možný typ hlavičky a patičky. Sémantika v HTML má podle mého názoru být pravě takto obecná, protože byť v něm lze vytvořit dokument libovolné struktury a obsahu, tak počet značek jazyka by měl zůstat přiměřeně nízký. K čemu takové značky vlastně jsou? Podle mě mají za úkol umožnit vyjádření hrubé, strojům čitelné, sémantiky jednotlivých částí dokumentu. Pro dokumenty s většími potřebami explicitní sémantiky bych viděl jako východisko RDF, RDFa a spol.7.5. 2009 — 10:54
[7] Oswald: Díky za komentář. Mohl bys rozvést, jak by pro analyzující stroj mohly být užitečné značky h/f? Opírejme se prosím o specifikaci.
Můj názor je, jak jsem myslím zmínil v poznámkách, že
footer
/header
s pojmem „patička“/„hlavička“, už se dopouštíme chyby, protože předpokládáme příbuznost jednoho s druhým kvůli chápání značky dle její jména, které navíc vnímáme jako součást přirozeného jazyka. Pro zmenšení tohoto nedorozumění bych doporučoval o značceheader
hovořit jako o značceantilopa
a ofooter
jako o značcekvedlačka
.11.5. 2009 — 13:03
Hezký článek, ale musím říct, že až z komentáře [8] Kahi: jsem přesně pochopil, o co ti jde :)
V podobném smyslu už jsme s M. Hassmanem diskutovali pod jeho článkem na Zdrojáku href=„http://zdrojak.root.cz/clanky/nove-znacky-html5/nazory/3891/vlakno/#o3927“ rel=„nofollow“>http://zdrojak.root.cz/clanky/nove-znacky-html5/nazory/3891/vlakno/#o3927.
Nemyslím si, že značky
footer
/header
/aside
jsou nesémantické. Využítí pro konstrukci layoutu stránky asi správné není, ale třeba v položce seznamu článků si využití footer/header umím představit.Otázka je, jak moc je pro používání HTML důležité mít footer/header pro položku seznamu článku a nemít třeba sémantické označení copyrightu href=„http://zdrojak.root.cz/clanky/nove-znacky-html5/nazory/3929/vlakno/#o3929“ rel=„nofollow“>http://zdrojak.root.cz/clanky/nove-znacky-html5/nazory/3929/vlakno/#o3929.
11.5. 2009 — 15:03
[9] Martin Michálek: Díky.
Já bych se hlavně ptal: Jak moc mohou být tyto značky přínosné?
Protože pro mě je header a footer v konečném důsledku nic než vyznačení metadat – a tedy jejich přínosem může být možnost odlišit v dokumentu data od metadat. A to se mi zdá poněkud málo – na dvě značky :-).
Teď jsem navíc narazil v sekci o
nav
href=„http://www.w3.org/TR/html5/semantics.html#the-nav-element“ rel=„nofollow“>http://www.w3.org/TR/html5/semantics.html#the-nav-element na příklad, ve kterém jefooter
použit v podstatě na vyznačení patičky webu v zažitém (prezentačním) významu (a stejně tak s hlavičkou). Musím říct, že od tohoto okamžiku ale naprosto nechápu, proč tyto značky přidávali. Vlastně i má teorie z článku výše se ve světle příkladu znav
docela rozpadá. (Fuck!)[upraveno]
11.5. 2009 — 18:45
[9] Martin Michálek: Ještě jednou. Teď by už má odpověď na komentář měla reagovat na komentář :-).
Ano, tu diskusi na Zdrojáku jsem četl. Myslím, že tam není moc o čem mluvit, Martin Hassman tam chápe aside intuitivně, což nazývám chápání v nesouladu se specifikací.
Ty říkáš, že header/footer jsou sémantické, jestli se nepletu tak na základě toho, že je chápeš jako značky pro metadata (což je imho celá jejich potenciální sématika).
(Jen přemýšlím nahlas, tohle opět není doopravdická reakce. :-)
Ale, jak podle mě praví nově objevený fakt, footer je oficiálně prohlášen za použitelný pro vyznačení patičky webu, může obsahovat navigační odkazy, které de facto nejsou metadaty stránky (tím se vytrácí poslední zbytek sémantiky), a tedy – proč si na základě tohoto nevyvodit, že HTML5 prostě na sémantiku dlabe a pokud chceme metadata nějak rozumně vyznačit, tak se stejně musíme dívat jinam, třeba na hAtom nebo (mrtvé?) DublinCore?
(Bože, jak mě tohle rozčiluje!)
Přidat komentář