Co je HTML a proč je zásadní pro web
HTML (HyperText Markup Language) je značkovací jazyk, který definuje strukturu a význam obsahu webové stránky. Poskytuje kostru dokumentu, na kterou navazují kaskádové styly (CSS) pro vzhled a JavaScript pro interaktivitu. Správná struktura HTML zlepšuje přístupnost (a11y), SEO, udržovatelnost i výkon.
Základní stavební kameny dokumentu
- Dokumentový typ:
<!DOCTYPE html>aktivuje režim standardů v prohlížečích. - Kořenový prvek:
<html lang="cs">…</html>vymezuje celý dokument a nastavuje jazyk. - Hlavička:
<head>obsahuje metadata, titulek, odkazy na CSS a skripty. - Tělo:
<body>obsahuje viditelný obsah pro uživatele.
Minimální kostra stránky
Následující vzor ukazuje nejmenší prakticky použitelnou strukturu s důležitými metadaty (entity jsou escapované, aby byl kód čitelný):
<!DOCTYPE html><html lang="cs"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Název stránky</title><meta name="description" content="Stručný popis obsahu."><link rel="stylesheet" href="/assets/styles.css"></head><body><header><nav aria-label="Hlavní">…</nav></header><main id="obsah"><h1>Hlavní nadpis</h1><article>…</article></main><footer>…</footer><script src="/assets/app.js" defer></script></body></html>
Hlavička: metadata, titulky a odkazy
- Titulek:
<title>…</title>pro název panelu v prohlížeči a výsledcích vyhledávání (SERP). - Kódování:
<meta charset="utf-8">jako první prvek v<head>. - Responsivita:
<meta name="viewport" content="width=device-width, initial-scale=1">. - Popis:
<meta name="description" content="…">pro SEO výpis ve vyhledávačích. - Ikony:
<link rel="icon" href="/favicon.ico">a varianty pro různé platformy. - CSS a skripty:
<link rel="stylesheet" …>,<script defer src="…"></script>.
Strukturální a sémantické prvky v těle stránky
- <header> pro úvodní část stránky nebo sekce (logo, navigace, vyhledávání).
- <nav> pro navigační menu; používejte smysluplné popisy a atribut
aria-label. - <main> hlavní obsah specifický pro danou stránku; doporučuje se pouze jedna instance.
- <article> samostatně přenositelná jednotka obsahu (článek, karta produktu apod.).
- <section> tematický blok s vlastním nadpisem.
- <aside> doplňkový obsah (postranní panel, související odkazy).
- <footer> patička stránky nebo sekce (autorská práva, kontaktní informace).
Nadpisová hierarchie a strukturování textu
Nadpisy (<h1>–<h6>) tvoří logickou osnovu dokumentu. Doporučuje se používání jedné instance <h1> v rámci <main>, dále vnořené sekce s odpovídající úrovní nadpisů. Text členíme pomocí <p>, zvýrazňujeme <strong> (důraz) a <em> (intonace). Pro kód slouží <code>, pro citace pak <blockquote> a zkrácené <q>.
Odkazy a navigační vzory
- Odkaz:
<a href="…">text</a>. Preferujte popisný text („Stáhnout zprávu“ namísto „klikněte zde“). - Interní navigace: kotvy na ID (např.
href="#obsah") pro „přeskočit na obsah“ nebo rychlou navigaci. - Externí odkazy: při otevírání v nové záložce používejte atribut
rel="noopener noreferrer"pro bezpečnost. - Přístupnost: fokus musí být viditelný, pořadí elementů by mělo odpovídat vizuální hierarchii.
Seznamy, tabulky a další sémantika
- Neuspořádaný seznam:
<ul><li>…</li></ul>pro výčet prvků. - Uspořádaný seznam:
<ol>pro procedury a krokové instrukce. - Definiční seznam:
<dl><dt><dd>vhodný pro termíny a jejich definice. - Tabulky: používejte výhradně pro tabulární data; nadpisy sloupců označujte
<th scope="col">, řádků<th scope="row">, případně<caption>pro popisek tabulky.
Obrázky, média a popisky
- Obrázky:
<img src="…" alt="Smysluplný popis">; atributaltje klíčový pro přístupnost (a11y). - Responsivní zdroje:
<picture>a atributysrcset/sizespro různé rozlišení a zařízení. - Popisek:
<figure>s<figcaption>pro kontext obrázku nebo media. - Video/Audio:
<video controls>a<audio controls>s možností titulkování (track).
Formuláře: struktura a použitelnost
- Formulář:
<form action="…" method="post">s jasně definovaným účelem. - Popisky:
<label for="email">E-mail</label><input id="email" type="email" required>zajistí správné přiřazení etikety. - Skupiny:
<fieldset>a<legend>pro logické rozčlenění formulářových prvků. - Nápověda a validace:
aria-describedbypro chybové hlášky, využívání nativních vstupních typů (email,tel,number).
Přístupnost (a11y) jako součást struktury
- Landmark role: používejte sémantické elementy (
header,nav,main,footer) místo generickýchdiv. - Alternativy: každé ne-textové médium musí mít odpovídající alternativu (
altu obrázků, titulky u videa/audio). - Fokus a pořadí: logické pořadí v DOM stromu; vyhněte se nesrozumitelným skokům fokusů pomocí CSS triků.
- Kontrast a škálování: struktura musí být funkční i bez CSS; obsah musí být čitelný při zvětšení textu.
SEO a strukturovaná data
- Smysluplné nadpisy: odrážejí hierarchii a téma jednotlivých sekcí stránky.
- Meta popis a Open Graph:
<meta name="description">, tagyog:*,twitter:*pro sociální sítě. - Strukturovaná data: JSON-LD (
<script type="application/ld+json">…</script>) pro entity jako Article, Product apod. - Kanonická URL:
<link rel="canonical" href="…">pro konsolidaci SEO signálů a zabránění duplikaci obsahu.
Vazba na CSS a základní layout
HTML nese význam a strukturu; CSS řeší vizuální stránku. Udržujte oddělení vrstev: v HTML se vyvarujte používání prezentačních tagů (např. <b> jen pro styl je nevhodné, preferujte <strong> pro zdůraznění významu). Pro layout používejte CSS Grid nebo Flexbox v externím CSS souboru připojeném pomocí <link rel="stylesheet">.
Výkon a načítání zdrojů
- Defer/async skripty:
<script src="app.js" defer></script>umožní neblokující vykreslení stránky. - Preload/prefetch:
<link rel="preload" as="font" href="…" crossorigin>používejte rozumně a cíleně ke zrychlení načítání. - Obrázky: atribut
loading="lazy"pro odložené načítání, vhodné rozměry a moderní formáty (AVIF, WebP) pro optimalizaci výkonu.
Modularita, opakovatelnost a šablony
U rozsáhlejších webů udržujte opakovatelné bloky (např. hlavičku, patičku, navigaci) jako komponenty. Při generování na serveru využívejte šablonovací systémy; v čistém HTML lze zvážit využití <template> pro opakující se struktury, které jsou následně vykreslovány pomocí JavaScriptu.
Progressive Enhancement a odolnost
Struktura stránky by měla dávat smysl i zcela bez CSS a JavaScriptu. Začněte kvalitním HTML a teprve poté přidávejte další vylepšení. Navigace by měla fungovat jako klikatelné odkazy <a>, formuláře by měly být odesílatelné i bez AJAXu.
Bezpečnostní aspekty HTML struktury
- Integrita skriptů: používejte atributy
integrityacrossoriginu externích zdrojů pro zabezpečení. - Omezení rámců:
<iframe sandbox>a hlavičky Content Security Policy (CSP) na serveru ke kontrole zdrojů a zajištění bezpečnosti. - Formuláře: atributy
autocompletea správné validace vstupních typů snižují chybovost a zvyšují uživatelský komfort.
Mezijazykové a lokalizační zásady
- Jazyk dokumentu: atribut
lang="cs"na elementu<html>; u vložených pasáží lze měnit atribut (např.lang="en"). - Směr textu: atribut
dirpro jazyky s řízením textu zprava doleva (RTL), pokud je potřeba. - Datum a čas:
<time datetime="2025-10-25">25. října 2025</time>pro strojově čitelná data.
Validační a kvalitativní kontrola
- Validace: kontrola chyb v uzávěrkách, duplicitních ID, neplatných atributů a správné struktury dokumentu.
- Struktura a outline: každá
<section>by měla mít nadpis; vyhněte se nadměrnému a zbytečnému vnořování. - Test přístupnosti (a11y): ověřujte alternativy, pořadí tabulátoru, čitelnost a kontrast i bez použití CSS.
Časté chyby a jak se jim vyhnout
- Používání tabulek pro rozložení stránky místo CSS.
- Chybějící atribut
altu obrázků a používání nepopisných odkazů („klikněte zde“). - Vkládání skriptů bez atributů
deferneboasync, které blokují vykreslování stránky. - Nadměrné používání
<div>místo sémantických prvků. - Více instancí
<h1>bez jasné hierarchie a struktury obsahu.
Ukázka sémantického článku v rámci stránky
Následující fragment demonstruje vztah mezi main, article, section a nadpisy (zkráceno):
<main id="obsah"><h1>Blog</h1><article><header><h2>Titulek článku</h2><p><time datetime="2025-10-25">25.10.2025</time></p></header><