Použitelnost: odkaz na aktuální stránku
Už mnohokráte bylo na tomto blogu uvedeno tvrzení Jacoba Nielsena (experta na použitelnost webových stránek): „Stránka by neměla odkazovat sama na sebe!“.
Díky Cameronu Adamsovi se nám podařilo tuto skutečnost obejít pomocí CSS, což línějším webmasterům (např. mně) naprosto stačí. Pro ostatní je tu jednoduchý PHP kód, který vložíte do menu.
Předpokládejme, že menu
vkládáme do stránky jako funkci menu($active);
, kde
$active
je parametr funkce menu, který určuje zda jsme na
aktivní stránce, či nikoliv. Pro každou stránku vymyslíme unikátní
hodnotu parametru $active
a zaneseme ji do kódu funkce
menu($active);
.
Příklad
Volání funkce na úvodní stránce bude vypadat takto:<?php
menu(‚home‘); ?>
, vlastní kód odkazu na úvodní stránce menu
má tvar:
<?php if ($active == ‚home‘) { echo
‚<span>home</span>‘; } else { echo ‚<a
href=„index.php“>home</a>‘; } ?>
Výsledné menu skutečně nebude obsahovat odkaz směřující na aktuální stránku (jen je nutné naformátovat tag span, který nahrazuje odkaz, pomocí CSS).
Komentáře
Ten seznam tam není, protože příklad je v podstatě pouze jedna jeho položka :-)
Trochu předělat tohle http://photomatt.net/scripts/intellimenu a výsledek bude mnohem elegantnější
Pak je tu jiné pravidlo, které říká, že navigace by měla být konzistentní (tedy na všech stránkách stejná). Což si logicky protiřečí s pravidlem o neodkazování na sebe sama.
Můj názor je na tento problém jasný – odstraněním odkazu (nebo šipky) nedávám návštěvníkovi najevo, že už na příslušné stránce je, pouze jej zmatu. Proto raději odkaz nechám a barevně jej odliším, nebo doplním titulek „Na této stránce právě jste“
Odstranění odkazu návštěvníka zmate, pokud se bude od zbytku výrazně lišit – tj. pokud bude nastylován jak zbytek menu, tak to myslím zas tak nevadí.
To dgx: používám něco podobného na Shamaním webu a nezdá se, že by to někoho mátlo… Právě naopak.
Přibližně takovým způsobem to dělám na stránkách školy pro výcvik vodicích psů, které jsem vytvářel (http://www.vycvikvodicichpsu.cz). Místo SPANu používám seznam UL LI, ale v podstatě myšlenka byla stejná.