Verze pro tisk (ladí se...) >>
Klíčová slova: HTML rámce, nevýhody rámů, HTML frames
Rámce (rámy, frames) byly poprvé uvedeny roku 1996 v rámci normy HTML 3.2. Odpočátku se střetávali s nevolí některých uživatelů webu, na druhou stranu se staly oblíbeným prostředkem mnohých tvůrců stránek. Budeme-li se však důkladně zabývat vlastnostmi rámců, uvědomíme si, že vše co nám přináší lze udělat jinak a lépe pomocí zásad návrhu webu s oddělenou sémantikou a formou (konkrétně použitím divů a CSS - "position: fixed;" - od verze 7 podporuje i MSIE) a tudíž jakákoli výhoda, kterou nám může použití rámců přinést, je zanedbatelná v porovnání s jejich nevýhodami.
Nevýhody rámců bychom mohli rozdělit do následujících skupin:
Jak zajisté všichni víme, rámce rozdělí okno prohlížeče na několik částí, v každé z nich se zobrazuje právě jeden HTML dokument. Ze všech těchto rámů je však jen jeden označován jako aktivní, konkrétně je to ten, do kterého návštěvník webu naposledy kliknul. Často to proto bývá ten rám, který slouží pouze pro zobrazení menu, resp. obecněji - ten rám, který neobsahuje věcný obsah stránky. To všechno by nebyl až takový problém, ale:
Pokud přijdete na stránku používající rámce, zajisté si všimnete, že přestože již nejste na hlavní stránce, obsah adresního řádku zůstal nezměněn. Když potom narazíme na stránku se zajímavým obsahem a budeme si ji chtít uložit do bookmarks nebo ji poslat e-mailem známému, máme dvě možnosti. První možnost je poslat adresu zobrazenou v adresovém řádku (tedy adresu, která po vložení "copy-paste" odkáže na hlavní stránku) a pamatovat si relativní cestu té dané stránky (resp. napsat kamarádovi jak se ke stránce prokliká), což je dost hloupé. Druhou možností (o které běžný uživatel na 90% neví) je zjištění adresy toho konkrétního rámce a pracovat s tou. Nicméně tak přijdeme o kontext ostatních rámců a o design stránky - takže si tu krásu co nám rámce přinesly ani nevychutnáme. Navíc není možné na konkrétní stránku odkazovat z jiných stránek, což snižuje možnost web propagovat. O ukládání stránky na disk ani nemluvě - ani tady si uživatel nemůže být jistý, co vlastně dělá.
Doplněno: Toto jsem nicméně viděl celkem hezky vyřešené pomocí mod-rewrite, "stránku sirotka při vyhledávání" (viz. níže) to sice neřeší, ale už to může řešit třeba problémy uvedené v tomto oddílu. Řešení je to ale vcelku nesystémové a podle mě proto v důsledku špatné - nejprve uděláme něco co v základním provedení nefunguje a fungovat nemá a potom to přes mod-rewrite "záplatujeme" tak aby to jakž takž fungovalo.
Ačkoli se na webu často objevuje názor, že prohledávače neindexují dokumenty v rámcích, v dnešní době to už není pravda (Google a ostatní "velcí" už to umí). Nicméně jsou zde jistá úskalí. Prohledávače sice přes rámy projdou, ale zaindexují pouze konkrétní dokument. Uživatel webu tak opět obdrží dokument bez kontextu obsahu v ostatních rámcích ("stránku sirotka") nebo hlavní stránku. Zároveň je dlouho známým faktem, že vyhledávací algoritmy přiřazují stránkám váhu z velké části na základě titulku stránky - který je v rámcích z principu jen jeden, dokumenty psané v rámcích se tudíž hůře optimalizují pro SE. Absence unikátního titulku také znepřehledňuje použití tlačítka "Zpět" v prohlížeči, protože po rozbalení menu u tlačítka "Zpět" vidíme 10 stejně vyhlížejících stránek.
... a tak se třeba posuvníky mohou zobrazit v každém z rámů. Uživatel potom místo jednoho posuvníku vidí tři, což běžného uživatele internetu akorát zmate. Posuvníky lze samozřejmě skrýt, ale některé položky menu se potom mohou stát nedostupnými. Podobně se (nedopatřením webdesignera) díky potenciální komplexnosti struktur vytvořených rámci může stát, že některý dokument bude směřován do špatného rámce, takže se stane to, že místo menu a článku máme článek a článek. Navíc, při otevření stránky v novém okně opět přijdeme o kontext ostatních rámů.
Starší prohlížeče, stejně tak jako prohlížeče instalované do nových zařízení (PDA, SmartPhones) rámy nepodporují.