Bezpečnost

HTML: Sémantické rozložení. Role struktury dokumentu

HTML: Sémantické rozložení.  Role struktury dokumentu

Sémantika(francouzský sémantique ze starořeckého σημαντικός - označující) - věda o pochopení určitých znaků, posloupností symbolů a dalších symboly. Tato věda se používá v mnoha oblastech: lingvistika, proxemika, pragmatika, etymologie atd. Nedokážu si představit, co tato slova znamenají a co všechny tyto vědy dělají. A to je jedno, zajímám se o problém použití sémantiky v rozložení webu.

Poznámka

Nebudu se zde dotýkat termínu sémantický web. Na první pohled se může zdát, že témata Sémantický web a sémantický HTML kód jsou téměř to samé. Ale ve skutečnosti je sémantický web spíše filozofický koncept a se současnou realitou nemá mnoho společného.

Sémantické rozložení - co to je?

V jazyce má každé slovo specifický význam a účel. Když říkáte „klobása“, máte na mysli potravinářský výrobek, který je mletým masem (obvykle maso) v podlouhlém obalu. Zkrátka máte na mysli klobásu, ne mléko nebo zelený hrášek.

HTML je také jazyk, jeho „slova“ nazývaná tagy mají také určitý logický význam a účel. Z tohoto důvodu především sémantický kód HTML je rozložení se správným pomocí HTML značky, které je používají k zamýšlenému účelu, jak byly zamýšleny vývojáři jazyka HTML a webových standardů.

microformats.org je komunita, která pracuje na oživení idealistických myšlenek sémantického webu tím, že rozvržení stránky přibližuje stejným sémantickým ideálům.

Proč a kdo vůbec potřebuje sémantické rozložení?

Pokud se informace na mém webu zobrazují stejně jako na designu, proč si lámat hlavu a přemýšlet o nějaké sémantice?! Stejný práce navíc! Kdo to potřebuje?! Kdo to ocení kromě jiného designéra rozložení?

Takové otázky jsem slýchal často. Pojďme na to přijít.

Sémantické HTML pro webové vývojáře

Sémantický kód pro uživatele

Zvyšuje dostupnost informací na webu. Především je to důležité pro alternativní agenty, jako jsou:

  • sémantický kód přímo ovlivňuje množství HTML kódu. Méně kódu -> lehčí stránky -> rychlejší načítání, méně potřebné paměť s náhodným přístupem na straně uživatele menší provoz, menší velikost databáze. Stránka se stává rychlejší a levnější.
  • hlasové prohlížeče pro které jsou tagy a jejich atributy důležité, aby obsah vyslovovali správně a se správnou intonací, nebo naopak aby toho moc nenamluvili.
  • mobilní zařízení kteří nejsou na plná síla podporují CSS a proto se zaměřují především na HTML kód, zobrazující jej na obrazovce podle použitých značek.
  • tisková zařízení i bez dalšího CSS se informace vytisknou kvalitněji (blíže designu) a vytvoření ideální verze pro tisk se promění v pár snadných manipulací s CSS.
  • Kromě toho existují zařízení a pluginy, které umožňují rychlou navigaci v dokumentu – například podle nadpisů v Opeře.

Sémantické HTML pro stroje

Vyhledávače neustále zdokonalují své metody vyhledávání, aby zajistily, že výsledky obsahují požadované informace. opravdu hledá uživatel. Sémantické HTML k tomu přispívá, protože půjčuje se hodně lepší analýza— kód je čistší, kód je logický (jasně vidíte, kde jsou nadpisy, kde je navigace, kde je obsah).

Dobrý obsah a vysoce kvalitní sémantické rozvržení je již seriózní aplikací dobré pozice ve výsledcích vyhledávačů.

  • Překlad

Udělám odvážnou předpověď. Dlouho po vás a já tu bude HTML. Nejen na miliardách archivních stránek naší doby, ale jako živé dýchací orgány. Do vývoje webových nástrojů, protokolů a platforem bylo vynaloženo příliš mnoho úsilí, energie a investic, než aby bylo možné od toho všeho snadno upustit.

Zastavme se, abychom zvážili naši odpovědnost. Bohužel jsme v historii spojeni s vývojem důležitého nástroje pro naši civilizaci, který bude sloužit ke komunikaci po desítky let. A tak když svou mysl, ať už nečinnou nebo vážně, zaměříme na zlepšení HTML, musíme pochopit, jak dalekosáhlé mohou být důsledky našich rozhodnutí.

HTML 5, které W3C nedávno zdvojnásobilo své úsilí o vytvoření nové generace HTML, nabralo během posledního zhruba roku značný rozmach. Jedná se o obrovský projekt, který pokrývá nejen HTML struktura, ale také analýzu modelů, modely zpracování chyb, DOM, algoritmy pro extrakci zdrojů, mediální obsah, 2D grafiku, datové šablony, bezpečnostní modely, modely načítání stránek, ukládání dat na straně klienta a mnoho dalšího.

Dochází také ke změnám ve struktuře, syntaxi a sémantice HTML, některé z nich popsal Lachlan Hunt v článku “HTML 5 Overview” (překlad na Habré).

Ale v tomto článku se podíváme pouze na sémantiku HTML. To je něco, co mě zajímá už mnoho let a myslím, že je to pro budoucnost HTML velmi důležité.

BBC nedávno oznámila, že sníží podíl mikroformátu hCalendar ve svém televizním programovém průvodci ve prospěch přístupnosti a pohodlí designového vzoru abbr. To ukazuje, že jsme nepochybně posunuli sémantické schopnosti HTML daleko za hranice toho, co bylo kdy zamýšleno, a skutečně je to pro jazyk možné. Právě nám došly prvky a HTML atributy, což může zlepšit sémantiku dokumentu. Pokud budeme pokračovat v podvádění s existujícími HTML konstrukcemi, bude se objevovat stále více problémů, jako je tento. Protože HTML jako sémantický značkovací jazyk trpí zásadní chybou – jeho sémantika je pevná a není rozšiřitelná.

Nejde jen o teoretický problém. Stovky tisíc vývojářů používají třídy a id k vytvoření dalších sémantické označení(Používají je také jako „háčky“ pro CSS styly, ale to je jiná věc). Téměř vždy tito vývojáři používají speciální slovníky, jejichž významy si sami vytvářejí, spíše než významy existujících schémat. Toto je pseudo-sémantické značení - v nejlepším případě.

Mnoho stránek na internetu používá mikroformáty k přidání více strukturované sémantiky, než je možné s ochuzenou sadou prvků a atributů HTML. V tomto případě jsou hodnoty použité pro atribut class konzistentní se slovníky, někdy převzatými z jiných standardů, jako je vCard , někdy z nově vytvořených slovníků, kde není pevně zakódován stávající standard(jako je tomu u hReview).

Rozšiřitelná sémantika

Zde je velmi vážný problém, který je třeba řešit. Potřebujeme mechanismy v HTML, které jasně a jednoznačně umožní vývojářům přidávat do jejich označení výraznější sémantiku, spíše než pseudosémantiku. Toto je možná nejnaléhavější výzva pro projekty HTML 5.

Ale není tak snadné přijít s mechanismem, který by vytvořil více sémantiky HTML obsah Odpověď: Každé řešení má významná omezení. Snad největší je zpětná kompatibilita. Řešení nemůže narušit stovky milionů dnes používaných zobrazovacích zařízení, která budou používána v následujících letech. Jakékoli řešení, které není kompatibilní, nebude vývojáři široce přijímáno ze strachu ze ztráty čtenářů. Na révě rychle uschne.

Řešení musí být také dopředně kompatibilní. Ne v tom smyslu, že by to mělo fungovat v budoucích prohlížečích – to je úkol pro vývojáře prohlížečů, ale měl by být rozšiřitelný. Nemůžeme očekávat žádné jediné řešení, které nyní vyvineme, aby v budoucnu vyřešilo všechny představitelné i nepředstavitelné potřeby sémantiky. Dokážeme vyvinout řešení, která lze rozšířit tak, aby vyhovovala budoucím potřebám, jakmile se objeví.

Tyto obtíže dohromady představují obrovskou výzvu. Ale v kontextu jazyka, jehož hlavní iterace probíhají v desetiletých intervalech a jehož důležitost jako globální platformy pro komunikaci je prvořadá, je to problém, který je třeba vyřešit.

Jak tedy HTML 5 tento problém vyřeší? HTML 5 zavádí řadu nových prvků. Nazval jsem nějaké "strukturální" - sekce, navigace, stranou, záhlaví a zápatí. Dialogový prvek je svým typem a obsahem podobný blockquote. Existuje také řada datových položek, jako je metr, což je „skalární měření ve známém rozsahu nebo zlomková hodnota, jako je využití disku“; a prvek času (http://www.w3.org/html/wg/html5/#the-time), který představuje datum a/nebo čas.

I když tyto prvky mohou být užitečné a ukázalo se, že jsou zajímavé, zda mohou skutečně vyřešit tento problém, bude podléhat omezením vzestupné a zpětné kompatibility.

Podívejme se na každou překážku

zpětná kompatibilita

Jak moderní prohlížeče zvládají tyto nové prvky, jako je sekce? Dobře, poslední Verze Safari, Opera, Mozilla a dokonce i IE7 dělají vše na stránce takto.
< h1 >Nadpis nejvyšší úrovně
< section >
< h1 >Nadpis druhé úrovně
< p >toto je text v prvku sekce
< section >
< h1 >Nadpis třetí úrovně


Zpočátku to vypadá skvěle. Ale když se pokusíme nastavit styly CSS například na prvek sekce, který vypadá takto:

Sekce (barva: červená)
... Většina zmíněných prohlížečů toto zvládá, ale IE7 (a zejména 6) nikoliv.

Máme tedy problém se zpětnou kompatibilitou se 75 % aktuálně používaných prohlížečů. Vzhledem k poločasu rozpadu internet Explorer, můžeme předpovědět, že většina uživatelů bude používat IE6 a IE7 i za několik let.

Pokud HTML 5 zavádí nové prvky, jaká je pravděpodobnost, že je bude používat velká většina vývojářů – vzhledem k tomu, že nejsou kompatibilní s většinou používaných prohlížečů?

Podívejme se na kompatibilitu zdola nahoru, což je další problém.

Kompatibilita zdola nahoru

Nejprve si položíme otázku: "Proč vymýšlíme tyto nové prvky?" Rozumná odpověď by byla: "Protože v HTML není dostatek sémantiky a přidáním těchto prvků zvýšíme sémantiku HTML, což nemůže být špatné, nebo ano?"

Přidáním těchto prvků zvažujeme nutnost navýšení kapacity sémantika HTML, ale pouze v úzké sféře. Bez ohledu na to, kolik prvků zavedeme, vždy budeme přemýšlet o přidání další sémantiky HTML. A přidání tolika prvků, kolik chceme, problém nevyřeší. Nemusíme přidávat konkrétní termíny HTML slovník, musíme přidat mechanismus, který umožní rozšířit sémantiku dokumentu podle potřeby. Technicky řečeno, musíme udělat HTML rozšiřitelný. HTML 5 nenabízí mechanismus rozšiřitelnosti.

HTML 5 tedy plní funkci, která zabije značné procento moderních prohlížečů a vůbec zabrání přidání sémantiky jazyka.

Ještě mám pár otázek ohledně nových prvků. Odkud se vzaly názvy nových prvků? Jak bylo rozhodnuto, že se navigační prvek bude jmenovat „nav“? Proč se v navigaci používají výrazy na úrovni stránky, na úrovni webu a na úrovni meta webu?

Proč nepřijmout existující slovník, jako je DocBook? Jeho slovník struktury dokumentů je bohatší a byl v průběhu let rozvíjen prostřednictvím odborných publikací. To není argument ve prospěch DocBooku, ale jde o to, že je extrémně důležitý úkol Příprava mechanismu pro poskytování sémantiky HTML probíhá s malou pozorností k praxi v práci, která začala před více než 30 lety. (Původní práce na GML začaly na počátku 70. let)

Nějaké nápady na řešení

A tak vzhledem k mimořádně důležité důležitosti současného úsilí nějaké mám praktická doporučení, Jak tento problém vyřešit. No, začal jsem s jedním.

Pokud se o přidávání nových prvků nemluví, pak alespoň v této diskusi jsou atributy jiné logická oblast HTML, soustřeďme se na to. Koneckonců, atributy class a id používáme jako mechanismy pro rozšíření sémantiky HTML již téměř deset let. Mnoho vývojářů to již zná a cítí se pohodlně. Projekt mikroformátů ukázal, že existující atributy nestačí k tomu, aby byly použity jako mechanismus pro rozšíření sémantiky HTML. Pokud tedy chceme použít atributy k řešení problému, musíme zavést jeden nebo více nových atributů. Než se pustíme do mechaniky toho, jak by to mohlo fungovat, je spravedlivé podřídit tento návrh stejným požadavkům jako nové prvky v HTML 5. Nejdůležitější věcí při zavádění nových atributů je, zda bude HTML zpětně kompatibilní. Pokud ano, poskytuje to funkční mechanismus pro rozšíření sémantiky v HTML?

Pojďme vymýšlet nový atribut. Říkejme tomu „struktura“, ale název není důležitý. Můžeme to použít takto:


Pojďme se podívat, jak to ocení naše prohlížeče.

Všechny naše prohlížeče samozřejmě vykreslí následující prvek CSS.

Div (barva: červená)
Co třeba tohle:

Div (tloušťka písma: tučné)
Ve skutečnosti téměř všechny prohlížeče, včetně IE7, zacházejí se stylem div pomocí atributu struktury, i když žádný takový atribut neexistuje. Bohužel naše štěstí mizí, protože neexistuje IE6. Tento atribut ale můžeme použít v HTML a všechny existující prohlížeče ho poznají. Můžeme dokonce použít CSS styly pro naše HTML, pomocí atributu ve všech moderních prohlížečích. A pokud chceme obejít starší prohlížeče, můžeme přidat třídu s hodnotou stylu. Ve srovnání s řešením HTML 5, které přidává nové prvky, které nefungují v Internet Exploreru 6 nebo 7, vidíme, že se určitě jedná o zpětně kompatibilní řešení.

Rozšiřitelnost pomocí atributů

Místo nových prvků by mělo HTML 5 přijmout řadu nových atributů. Každý z těchto atributů bude patřit do kategorie nebo typu sémantiky. Například, jak jsem popsal v jiném článku, HTML zahrnuje: strukturální sémantiku, rétorickou sémantiku, sémantiku rolí (převzatou z XHTML) a další třídy a kategorie sémantiky.

Tyto nové atributy lze použít jako atribut třídy: pro poskytnutí sémantiky prvku, pro popis charakteru prvku nebo pro metadata prvku.

To se neliší od atributových rolí v XHTML, kde máme jeden atribut pro všechny sémantické prvky, které musíme definovat Různé typy sémantiku prvků a oddělit je.

Například atribut role XHTML funguje takto:

< ul role ="navigation sitemap" >
< li href ="downloads" >Stahování
< li href ="docs" >Dokumentace
< li href ="news" >Zprávy

* Tento zdrojový kód byl zvýrazněn pomocí Zvýrazňovače zdrojového kódu.


Hodnota atributu role je prostor rozděleného seznamu slov definovaný standardním slovníkem nebo zadaným slovníkem.

Proč nepřijmout atribut role tak, jak je? Ostatně existují i ​​jiné typy sémantiky, pro které není definice role použitelná. Například:

Je to fantastický člověk.


To demonstruje teoretický typ sémantiky - "rétorický", který může být použit k označení dokumentu rétorické povahy. Tento prvek v dokumentu zjevně nehraje roli ironie. Naopak obsahuje prvky ironie.

Zde je další příklad. Je stále jasnější, že HTML postrádá lidsky čitelnou reprezentaci strojově čitelné hodnoty, jako je datum. To je jádro problému BBC s mikroformátem hCalendar, o kterém jsme hovořili dříve. I když První máj příštího roku opravdu nedává smysl, analogicky první máj příští rok bude existovat.

Opět, když použijeme specifický termín „ekvivalent“ jako atribut nebo cokoli jiného k označení tohoto druhu sémantiky, není to problém. Je důležité poznamenat, že to není tak jednoduché jako použití atributu třídy nebo role, kde je celá sada prvků informační sémantiky umístěna do jednoho prvku. Pro správně rozšiřitelné řešení, které poskytne zpětně kompatibilní a dostatečnou flexibilitu, stojí za to prozkoumat tímto směrem.

Tuto sekci jsem nazval „Některé nápady na řešení“, protože k vytvoření skutečně funkčního řešení je třeba vykonat značné množství práce. Mezi otevřené otázky patří následující.

  • kolik různých sémantických atributů by mělo být. Budou tyto kategorie rozšiřitelné, a pokud ano, jak?
  • Jak definovat slovník?
  • Jednoduše si vymyslíme termíny, které chceme, v podstatě stejným způsobem, jaký použili vývojáři třídní hodnota, nebo by měly být možné hodnoty definovány standardizovanou specifikací?
  • Pokud máme konflikt mezi dvěma slovníky, například dva stejné termíny jsou definovány dvěma různými slovníky, jak to vyřešit?
  • Je nutný jmenný prostor nebo existuje jiný mechanismus?

Místo toho, abych spěchal s odpověďmi na tyto otázky, vytáhl jsem na světlo problémy, které je třeba řešit, a zahájil jsem dialog. Následky a rozsah rozhodnutí učiněných v HTML 5 jsou příliš velké na to, aby bylo možné tato rozhodnutí učinit, je nutné přinést povědomí o lingvistice, sémantice, sémiotice a příbuzných oborech.

Doufám, že je jasné, že pouhé zavádění nových prvků do HTML není řešením problému rozšiřování sémantiky v HTML.

Nespěchejme na snadné řešení – s klimatickou změnou to vše zatíží problémem stejně jako nyní naše vnoučata. Přinejmenším jim nechme co nejlepší HTML.

Štítky: Přidat štítky

Účelem HTML tagů je zprostředkovat význam dokument. Nedělejte si starosti s tím, jak vaše webová stránka vypadá. Zaměřte se na význam každé značky, kterou použijete.

V závislosti na obsahu, který jste napsali, můžete vybrat vhodný prvek, který odpovídá významu textu.

Rozsah prvky jsou dostatečně široké, aby vyhovovaly materiálům Všeobecné cíle (jako jsou odstavce nebo seznamy) a další charakteristický obsah jako (pro zobrazení výsledku výpočtu) popř (pro zobrazení průběhu úkolu).

Strukturální prvky: organizace stránky

Strukturální prvky vám pomohou uspořádat hlavní části vaší stránky. Obvykle obsahují další HTML prvky.

Typická webová stránka může obsahovat následující:

  • tak jako První prvek stránky, který může obsahovat logo a slogan;
  • jako titulek stránky;

  • jako hlavní obsah stránky, jako je článek na blogu;
  • tak jako poslední prvek stránky umístěný ve spodní části.

Textové prvky: Definování obsahu

Uvnitř konstrukčních prvků obvykle najdete text prvky určené k definování cílová váš obsah.

Využijete především:

  • Pro odstavce;

    • pro (neuspořádané) seznamy;
      1. pro (uspořádané) seznamy;
      2. pro jednotlivé položky seznamu;
      3. pro uvozovky.

    Vložené prvky: Různé Texty

    Protože textové prvky mohou být dlouhé, ale s různým obsahem, malá písmena prvky umožňují rozlišovatčásti textu.

    Existuje mnoho vložených prvků, ale obvykle se setkáte s těmito:

    Pouhým přečtením tohoto HTML kódu snadno pochopíte, co každý z nich znamená HTML prvek.

    Titulek hlavní stránky

    Titulky

    Všechny druhy různých věcí a některé oddaný a dokonce Důležité slova.

    Další odstavec.

    • Jeden
    • Dva
    • Tři
    Jednou řekl

    Společné prvky

    Pokud pro váš obsah není vhodný žádný sémantický prvek, ale přesto chcete vložit prvek HTML (pro účely seskupování nebo stylingu), můžete se rozhodnout pro jeden ze dvou Všeobecné Prvky:

    I když tyto HTML prvky ve skutečnosti žádné nenesou význam, budou se nám hodit, až začneme používat CSS.

    Netrapte se sémantikou

    Na výběr je asi 100 sémantických prvků HTML. To je hodně. Procházet tento seznam a vybrat vhodnou položku pro váš obsah může být zdrcující.

    Ale neztrácejte příliš času starostmi o to. Pokud se budete držet následujícího seznamu tento moment, to by stačilo.

    StrukturálníTextMalá písmena












    Co je sémantika v HTML

    Slovo „sémantika“ přišlo do HTML z běžných lingvistických (lingvistických) disciplín. Tam se pojem „sémantika“ vztahuje k oddílům, které studují význam a účel jednotek lidského jazyka. Na rozdíl od skutečných lidských jazyků není v HTML potřeba učit se jazykové jednotky. V HTML se jazykové jednotky nazývají „tagy“ a jejich účel je již specifikován ve specifikaci HTML, dokumentu společném pro všechny webové vývojáře. V tuto chvíli existuje několik variací na téma specifikace HTML (v závislosti na verzi jazyka), ale o to nejde. Nyní je pro nás a tento článek důležité něco jiného. Jedná se o přítomnost jasného a srozumitelného vysvětlení pro každou jazykovou jednotku - značku HTML, v odpovídající specifikaci HTML. Jestliže tedy v reálné lingvistice lidského jazyka je sémantika studiem účelu nesrozumitelných slov a pojmů, pak v HTML je naopak sémantika správnou aplikací a používáním hotových a vysvětlených značek.

    Sémantické rozložení webového dokumentu

    Sémantické rozvržení webové stránky nebo sémantický kód HTML dokumentu je rozvržení se správným použitím HTML tagů v souladu s jejich účelem (sémantikou). Sémantické rozvržení navíc předpokládá logickou a konzistentní hierarchii pro konstrukci celé webové stránky v souladu se zákony dokumentu HTML.

    Jaký je rozdíl mezi sémantickým rozložením a běžným rozložením?
    Sémantické rozvržení webového dokumentu je v kontrastu s konvenčním rozvržením, ve kterém je psaní HTML kódu určeno pouze vzhledem webové stránky. Se sémantickým rozložením má řada prvků stránky své vlastní značky, které přímo odrážejí jejich účel. Toto je „sémantika“ v HTML. Struktura jednoduché webové stránky s normálním rozložením tedy může vypadat například takto:

    Záhlaví webu



    Obsah webové stránky


    Poté, stejně jako u sémantického rozvržení, bude struktura stejné webové stránky vypadat takto:
    Záhlaví webu



    Obsah webové stránky

    Zápatí webu

    Jak je vidět z příkladu, příslušné značky se používají k označení a specifikaci odpovídajících standardních prvků webové stránky. Kromě toho je kód mnohem jednodušší. Vzhled takové stránky pro lidské oko přitom zůstane absolutně nezměněn. Nabízí se rozumná otázka – proč tedy potřebujeme sémantické rozložení a označení webové stránky, když ji lidé nevidí?

    Proč je potřeba sémantické rozložení?

    Sémantické rozvržení a označení webové stránky je viditelné pro prohlížeč a roboty. Sémantické rozvržení a označení umožňuje přesněji určit význam jednotlivých prvků webové stránky a celého textu jako celku. Proto je v prvé řadě potřeba sémantické rozvržení pro zlepšení robotické funkčnosti webu a v důsledku toho , lepší indexování vyhledávání. Není to to, o čem všichni sníme?

    Sémantické rozložení v HTML5

    Naprostá senzace a revoluce v pojetí webové sémantiky nastala s příchodem HTML5.

    V HTML4 bylo všechno docela jednoduché. Pro návrh webových stránek napsaných v souladu se sémantikou stačilo použít externí kaskádové styly (CSS) a několik jednoduchých inovací, jako je nahrazení tagů A na A . HTML5 je mnohem více „sémantické“ a to je vidět z uvedeného příkladu.

    Nové oblíbené sémantické značky HTML5

    Nejdříve,- jednoduchý a srozumitelný dokument.

Copyright 2023. Portál o výpočetní technice