[ Webhosting profitux.cz ]
hertpl: Undefined index: page_title(template line: 74) in templates/articles_print.html on line 39

Problémy rámců v HTML

Klíčová slova: HTML rámce, nevýhody rámů, HTML frames

Úvod

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:

Problémy vyplývající s principu tzv. aktivního rámu

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:

  • tiskne se aktivní rám - tedy místo celé stránky (nebo alespoň článku) překvapenému uživateli vyjede z tiskárny logo společnosti a menu
  • klávesnice ovládá aktivní rám - skrollování náhle nefunguje - uživatel by chtěl dolů a ono to nejde, protože prohlížeč posílá pokyny klávesnice do rámu obsahujícího menu

Problémy vyplývající z faktu, že v adresovém řádku zůstává stále jedna a tatáž adresa

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.

Problémy s vyhledávači a orientací na webu

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.

Problémy plynoucí z toho, že každý rám představuje samostatně zobrazovaný dokument

... 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ů.

Problémy s kompatibilitou

Starší prohlížeče, stejně tak jako prohlížeče instalované do nových zařízení (PDA, SmartPhones) rámy nepodporují.


Komentáře čtenářů

hertpl: Undefined index: comments(template line: 119) in templates/articles_print.html on line 55