Kontrola nad przeglądarką
Użytkownicy używający Firefox'a, Opery, czy innej cywilizowanej przeglądarki nie muszą się dokładnie zastanawiać nad kontrolą zachowań swojego programu - surfowanie po Internecie wygląda prawie zawsze tak samo. Jednak czy rzeczywiście tak jest? Nie.
Internauta nie mający komfortowych warunków (IE) poddany jest na wykonanie każdej zachcianki webmastera. Target="_blank" - nowych okien przybywa - użytkownik nie panikuje - już do tego się przyzwyczaił. Jednak podświadomie szuka sposobu na odzyskanie kontroli. Podobnie postępuje użytkownik Opery, czy Firefox'a w każdej sytuacji, gdy tylko coś działa wbrew jego woli - nie zawsze zdajemy sobie z tego sprawę.
Zapomnij o target="_blank"
Stare marketingowe podejście: "nie pozwól aby użytkownik opuścił Twoją stronę". Stare przykazanie pozycjonera: "Każdy link wychodzący powinien zawierać target="_blank". Takie 'wskazówki' spowodowały, że do dziś wiele stron zawiera w odnośnikach atrybut target="_blank" broniąc się przed ucieczką użytkownika.
Zapomniano jednak o jednej istotnej rzeczy: najczęściej wykonywaną operacją przy przeglądaniu stron, jest cofanie się. Użytkownik chce mieć możliwość decydowania o sposobie i kolejności przeglądania stron. Otwarcie nowego okna zakłóca ten proces. Użytkownik nie może wrócić do poprzedniej strony korzystając z odpowiedniego przycisku w przeglądarce, czy skrótu klawiszowego.
Otwarcie nowego okna wymusza na użytkowniku przeanalizowanie hierarchii stron w których się znajduje. Witryna w której zastosowano target="_blank" staje się dla niego nieprzewidywalna, nie wie on co się stanie po kliknięciu w link - często będzie wolał nie ryzykować otwarciem kolejnego niepotrzebnego okna i ewentualnym przywieszeniem całego systemu.
Nie tylko target="_blank" - JavaScript
Otwieranie nowych okien wiąże się także z wykorzystaniem JavaScript'u - nie chodzi tutaj bezpośrednio o wyskakujące okienka reklamowe - użytkownicy ich oczywiście nie lubią, jeśli nie zostaną one zablokowane przez przeglądarkę, to zrobią to sami, nawet bez zapoznania się z treścią. Właśnie podświadomy cel zamknięcia pop-up'a jest przyczyną częstej irytacji - użytkownik klika na link, otwiera się pop-up który zostaje natychmiastowo zamknięty - użytkownik nie zauważa reakcji po kliknięciu na link. Znajdź inny sposób na przekazanie informacji - wykorzystaj np. warstwy (CSS+JS).
href="javascript:funkcja();"
Odnośnik powinien być odnośnikiem, oraz powinien zachowywać się jak odnośnik. Odnośnik Javascript'owy nie zawsze taki jest - kliknięcie powoduje akcję, lecz nie zawsze. Próba jego otwarcia za pomocą środkowego przycisku myszki (rolka przewijania), skończy się na pojawieniu nowej pustej karty w przeglądarce. Webmaster powinien przewidzieć taką akcję użytkownika. Atrybut 'href' powinien zawierać działający adres docelowy, o ile jest to tylko możliwe (w przypadku braku strony: href="#"), wywołanie funkcji JavaScript powinno odbyć się poprzez zdarzenie przypisane do odnośnika.
Flash to zło
Pisałem już o tym, jednak warto zwrócić ponownie na to uwagę. Bardzo nie lubię Flash'a - to fakt, jednak mam do tego powody: nie mogę korzystać z gestów myszy (mouse gestures - nawigacja w przeglądarce z wykorzystaniem ruchów myszki), nie mogę otwierać podstron w nowych kartach. Na większości stron wykonanych w technologii Flash nie mogę poruszać się 'wstecz', itp. Każda strona w Flash'u wymaga ode mnie konieczności dostosowania się do niej.
Mailto
Pozostawiasz swój adres mailowy na stronie? Zrób to prawidłowo. Użytkownicy w większości nie lubią sytuacji, gdy kliknięcie na linku 'kontakt' (znajdującego się często w głównym menu) powoduje uruchomienie kreatora konfiguracji pocztowej, lub nieużywanego programu pocztowego. Link 'kontakt' powinien prowadzić do osobnej podstrony, gdzie będzie znajdował się formularz kontaktowy, lub dane takie jak adres e-mail. Osoba chcąca wysłać maila będzie wiedziała jak te dane wykorzystać.
And ...
Co jeszcze sprawia, że Twoja przeglądarka zachowuje się inaczej niż tego oczekujesz?
Komentarze 150:
A co z Ajaxem? Przecież tak samo potrafi być nieprzewidywalny?
Źle napisany każdy kod będzie nieprzewidywalny :)
Z pewnością "cofanie się wstecz" jest częściej wykonywane nić cofanie w przód :P
Paweł Nowak: Z AJAX'em sytuacja wygląda trochę inaczej, poświęcę na to osobny post.
Wzs: Racja. Jednak każdy przykład który podałem, nie jest błędem z puntu widzenia zgodności z standardami WC3 (z wyjątkiem target="_blank" w pewnych okolicznościach).
Grizzly3: oczywiście ;) To moja pozostałość po pewnej nauczycielce która notorycznie używała zwrotu "cofnijcie się troszkę do przodu" ;) ..poprawione.
Tekst dobry, ale mam jedną uwagę.
"Atrybut 'href' powinien zawierać działający adres docelowy, o ile jest to tylko możliwe (w przypadku braku strony: href="#")."
Nie, nie, nie i jeszcze raz nie. Według specyfikacji W3C:
href = uri [CT]
This attribute specifies the location of a Web resource, thus defining a link between the current element (the source anchor) and the destination anchor defined by this attribute.
NIGDY nie dajemy żadnych '#'. ZAWSZE wpisujemy działający adres! Później dobudowujemy funkcjonalność opartą na js w onclick! Tak, aby w przypadku wyłączenia js strona zachowywała się normalnie.
Chodziło mi o przypadek kiedy link służy np. do rozwijania określonego div'a (jest to bardzo często stosowane). Jednak da się to zrobić tak, aby osoby bez JS nie odczuły żadnych niedogodności - więc masz rację.
W3c jeżeli już :)
Nie mogę się zgodzić z _blankiem - ja mam środkowy przycisk myszy - nie potrzebuje tego, ale zobaczmy jak działają strony na https bez tego gdy zaczniemy do nich wracać przyciskiem "wstecz" - nieprzyjemne prawda? Jeśli chodzi o Ajaxa to zwykle robi on więcej kłopotów niż plusów. Przykładem jest orange.pl - zawsze działało wolno - po dodaniu Ajaxa jest jeszcze gorzej... A strona orange to już zupełnie inna bajka: hhttp://7pl.info/orange.pl-jak-polskie-autostrady.html
IE 8 już nie jest taki zły, ma też zakładki i nie otwiera nowych okien. Mailto rzeczywiście może być wkurzające dla niektórych tym bardziej jak ktoś nie ma skonfigurowanych klientów poczty. Dla mnie np. to wygodne bo używam thunderbirda i nie trzeba kopiować i wklejać adresu, formularzy też nie lubię uzupełniać. Nie da się wszystkich zadowolić. Osoby korzystające z klientów poczty za pewne wolą mailto, ci którzy z nich nie korzystają pewnie nie. Pytanie których jest więcej... chyba tych drugich.
Dodaj komentarz: