TakéHierarchie nadpisů, Osnova nadpisů, H1-H6, Heading hierarchyZákladní
Definice
Nadpisová struktura je hierarchické uspořádání nadpisů h1 až h6 na stránce, které vyjadřuje vztah nadřazenosti a podřazenosti mezi jejími částmi. Slouží čtečkám obrazovky k rychlé navigaci, vyhledávačům k pochopení tématu a autorům jako kostra textu. Správná struktura postupuje po úrovních bez přeskakování a odráží obsah, nikoli vzhled písma.
Co nadpisy sdělují stroji
Nadpisová struktura funguje jako obsah knihy zapsaný přímo do značkování. Prohlížeč z prvků h1 až h6 sestaví osnovu dokumentu: každý nadpis otevírá sekci, která trvá až do dalšího nadpisu stejné nebo vyšší úrovně. Uživatel čtečky obrazovky si tuto osnovu může vyvolat jako seznam a přeskočit rovnou k části, která ho zajímá. Podle průzkumů mezi uživateli asistivních technologií patří nadpisy k nejčastěji používanému způsobu orientace na stránce, hned vedle odkazů.
Pravidla, která drží osnovu pohromadě
Základních pravidel je málo a jsou snadno ověřitelná. Úrovně se zanořují postupně: po h2 následuje h3, nikdy rovnou h4. Naopak vracet se o několik úrovní zpět je v pořádku, protože tím jen uzavíráte hlubší sekce. Nadpis popisuje obsah pod sebou, ne velikost písma; pokud potřebujete menší text, patří to do CSS, ne do volby úrovně.
Kolem h1 panuje nejvíc otázek. Bezpečná a nejrozšířenější praxe je jeden h1 na stránku, který nese hlavní téma. HTML sice připouští, aby každá sekce section nebo article začínala vlastním nadpisem nejvyšší úrovně, ale prohlížeče ani čtečky z toho spolehlivě nedopočítají zanoření, takže se na to nespoléhá.
Kde se struktura nejčastěji rozpadá
Problémy vznikají tam, kde se stránka skládá z komponent. Karta produktu s nadpisem h3 vypadá správně v přehledu, ale po vložení do postranního panelu detailu se ocitne uvnitř jiné hierarchie. Řešením bývá předávat úroveň nadpisu jako parametr komponenty, případně ji odvodit z kontextu.
Druhým zdrojem chaosu jsou redakční systémy, kde autoři vybírají styl podle vzhledu. Vzniknou dokumenty s pěti prvky h1 a bez jediného h2. Kontrola je přitom triviální: většina prohlížečů má rozšíření zobrazující osnovu, validátor W3C hlásí přeskočené úrovně a v DOM si osnovu vytáhnete jediným dotazem.
Vliv na vyhledávání a generativní odpovědi
Vyhledávače používají nadpisy jako signál o tématu sekce, ne jako přímý faktor pořadí. Praktický přínos je jinde: dobře pojmenovaný nadpis odpovídá na konkrétní dotaz a stává se kandidátem na úryvek nebo citaci v odpovědi jazykového modelu. Stejnou logiku využívají nástroje pro extrakci obsahu, které stránku dělí na bloky právě podle nadpisů.
Z toho plyne doporučení pro formulaci: nadpis má být tvrzení nebo otázka, které dávají smysl samostatně. „Postup“ nebo „Detaily“ mimo kontext nesdělí nic, kdežto „Jak se počítá lhůta pro vrácení zboží“ funguje i vytržený ze stránky.
Nadpisy versus vizuální titulky
Ne každý zvýrazněný text je nadpis. Slogan v hlavičce, popisek u obrázku nebo název tlačítka jsou vizuální prvky, které v osnově jen překážejí. Naopak skrytý nadpis pro sekce jako navigace nebo patička může uživatelům čtečky pomoci, pokud jej necháte dostupný asistivním technologiím a jen jej vizuálně odsunete mimo obrazovku.
Příklady z praxe
Přeskočená úroveň v článku
Autor v redakčním systému zvolil pro mezititulek styl s menším písmem, čímž vznikl h4 přímo pod h2. Validátor i audit přístupnosti to označí jako přeskočenou úroveň. Oprava je čistě sémantická: změnit úroveň na h3 a rozdíl ve velikosti písma vyřešit v CSS.
<!-- špatně --> <h2>Doprava a platba</h2> <h4>Osobní odběr</h4> <!-- správně --> <h2>Doprava a platba</h2> <h3>Osobní odběr</h3>Komponenta s nastavitelnou úrovní
Karta produktu se v React aplikaci objevuje v přehledu i v postranním panelu detailu, kde patří o úroveň hlouběje. Místo natvrdo zapsaného h3 přijímá komponenta úroveň jako prop a nadpis vykreslí dynamicky. Struktura pak zůstane platná v obou kontextech.
function ProductCard({ title, level = 3 }) { const Heading = `h${level}`; return ( <article> <Heading>{title}</Heading> </article> ); }
Časté omyly
- MýtusNa stránce smí být jen jeden h1, jinak přijdou postihy od Googlu.
- Ve skutečnostiJeden h1 je doporučená praxe kvůli srozumitelnosti osnovy, ale HTML více nadpisů první úrovně povoluje a vyhledávače za ně netrestají. Skutečné riziko je zmatená hierarchie pro uživatele čteček obrazovky.
- MýtusNadpis se vybírá podle toho, jak velké chci písmo.
- Ve skutečnostiÚroveň nadpisu vyjadřuje pozici v hierarchii obsahu, vzhled řeší CSS. Volba podle velikosti písma vede k přeskočeným úrovním a nepoužitelné osnově pro asistivní technologie.
- MýtusKlíčová slova v nadpisech přímo zvedají pozici ve vyhledávání.
- Ve skutečnostiNadpisy pomáhají vyhledávači porozumět struktuře a tématu sekce, ale nejsou samostatným faktorem pořadí. Přeplnění klíčovými slovy zhoršuje čitelnost a nepřinese žádný měřitelný zisk.
Časté dotazy
- Vadí, když stránka začíná h2 místo h1?
- Nadpisová struktura bez h1 není chybou podle validátoru HTML, ale připravuje uživatele o jasné pojmenování hlavního tématu stránky. Čtečka obrazovky pak nemá kotvu, od které se hierarchie odvíjí, a vyhledávač si musí téma odvodit z titulku dokumentu nebo z obsahu. Praktické doporučení zní začít jedním h1, který odpovídá tomu, o čem stránka skutečně je, a teprve pod ním používat h2 pro jednotlivé sekce. Výjimkou bývají fragmenty vkládané do jiných stránek, kde nejvyšší úroveň určuje hostitelský dokument.
- Jak rychle zkontroluji nadpisovou strukturu existující stránky?
- Nadpisovou strukturu ověříte třemi nezávislými způsoby. Validátor W3C upozorní na hrubé prohřešky ve značkování. Rozšíření prohlížeče pro audit přístupnosti, například nástroje postavené na knihovně axe, zobrazí osnovu a označí přeskočené úrovně. Nejrychlejší je konzole prohlížeče: dotazem na všechny prvky h1 až h6 si vypíšete jejich pořadí i text a hned uvidíte, kde hierarchie skáče. Pro průběžnou kontrolu se stejný test dá zapsat jako automatizovaný krok v CI, aby regrese neproklouzla do produkce.
- Můžou být nadpisy skryté, aby nenarušily design?
- Skryté nadpisy jsou legitimní technika, pokud zůstanou dostupné asistivním technologiím. Sekce jako navigace, filtry nebo patička často nemají vizuální titulek, ale uživatel čtečky obrazovky ocení, když je v osnově najde pojmenované. Nadpis se proto ponechá v kódu a odsune se mimo viditelnou oblast pomocí CSS třídy typu visually-hidden. Zásadní je nepoužít display none ani visibility hidden, protože ty prvek odstraní i z přístupnostního stromu a nadpis tím ztratí smysl.
- Jak řešit úrovně nadpisů v komponentových frameworcích?
- V komponentových frameworcích nelze úroveň nadpisu zapsat natvrdo, protože stejná komponenta se objeví v různě hlubokém kontextu. Osvědčují se dva postupy. Prvním je předat úroveň jako vlastnost komponenty a nadpis vykreslit dynamicky. Druhým je kontext, který si pamatuje aktuální hloubku a potomkům ji automaticky zvyšuje o jedna. Druhá varianta je pohodlnější u rozsáhlých stránek, ale hůř se ladí, protože výsledná úroveň není vidět na místě použití. U menších projektů obvykle stačí explicitní vlastnost s rozumnou výchozí hodnotou.
Zdroje
- HTML Standard(otevře se v novém okně)
- Heading elements(otevře se v novém okně)
- Web Content Accessibility Guidelines (WCAG) 2.2(otevře se v novém okně)
- Search Engine Optimization (SEO) Starter Guide(otevře se v novém okně)