Jak označit text jako nadpis (Flutter)
Flutter nemá vlastní vizuální styl nadpisu jako HTML <h1>–<h6> — jde čistě o přístupnostní vlastnost, kterou textu přidáte přes Semantics. A tahle konkrétní vlastnost navíc nedávno prošla zásadní změnou, takže staré návody a ukázky kódu už neplatí.
1. Jak na to
Semantics(
headingLevel: 1, // 1 = hlavní nadpis, 2 = podsekce, ... až 6
child: Text('Nadpis sekce'),
)
Důležité: starší kód s Semantics(header: true, child: ...) byl donedávna správný postup, ale od Flutteru 3.47 (stabilní verze z 12. 8. 2026) je header: true na Androidu i iOS bez efektu — kód se nezhroutí, ale nadpis se čtečce obrazovky prostě neohlásí. Pokud váš projekt cílí na starší Flutter než 3.47, header: true tam ještě funguje; jinak použijte headingLevel.
headingLevel je int? a povolené hodnoty jsou null nebo 1 až 6 (mimo tento rozsah aplikace spadne na chybu už při sestavení stromu).
Proč to takhle je
headingLevelexistuje, aby čtečka obrazovky rozeznala strukturu dokumentu (hlavní nadpis vs. podnadpis), a ne jen plochý seznam textů za sebou — díky tomu se dá stránkou/obrazovkou skákat po nadpisech.- Čísla úrovně reálně využije jen web (mapuje se na
aria-level/<h1>–<h6>) a novější iOS (accessibilityHeadingLevelod iOS 13). Android zůstává v podstatě binární — pozná jen „je nadpis, nebo není", úroveň 1 vs. 3 mu nic neřekne. header: truenení označené jako zastaralé (žádné varování v editoru), takže je snadné narazit na starý příklad z tutoriálu nebo blogu, který na první pohled vypadá funkčně, ale na aktuálním Flutteru už nic nedělá.
Pravidla
- WCAG 1.3.1 (Informace a vztahy) — strukturální informace (že jde o nadpis) musí být dostupná programově, ne jen vizuálně.
- WCAG 2.4.6 (Nadpisy a popisky) — nadpisy popisují téma nebo účel obsahu, který uvozují.
Komentáře
Zatím zde nejsou žádné komentáře. Buďte první, kdo napíše svůj názor.
Přidat komentář k „Jak označit text jako nadpis (Flutter)“