Rzecz o stronach dynamicznych

Ajax wraz z web 2.0 zadomowił się w sieci na dobre. Czy to dobrze, czy to źle? Uczucia mam mieszane – na pewno warto zgodzić się z Jakob-em Nielsen-em, który stwierdził, że można jeszcze wiele poprawić w stronach “mniej dynamicznych” – w kwestii użyteczności. Dobrze zaprojektowana i zrobiona strona korzystająca z “dogrywania” bądź “wymiany” danych jest na pewno dobrym rozwiązaniem, problem pojawia się w miejscu, w którym projektant/programista zapomina o tym, że nie wszyscy będą mieli możliwość skorzystania z tych bajerów, które zrobił. …albo całkowicie zablokuje im możliwość korzystania ze strony.

“Z pewnego powodu” trafiłem na stronę http://www.tenvirk.com.pl/ – producenta oprogamowania do sekretariatów. Klikam w menu i… strony nie odnaleziono, powrót inne menu, znów to samo. Myślę sobie co jest do cholery, nie wierzę, że mają taką “dziurawą” stronę. Patrzę na NoScript – zablokowane skrypty. Dla pewności odblokowałem i… wszystko ruszyło jak trzeba. Zadałem sobie proste pytanie – czy kliknięcie w menu powinno być obsługiwane przez JS, a jeśli nawet tak, to czy użytkownik bez JS nie powinien być “obsłużony”? Czy nie ma możliwości napisania tego w sposób umożliwiający wszystkim skorzystanie? Jest taka możliwość i nie jest nawet trudna – trzeba tylko chcieć (bądź mieć świadomość tego, żę nie wszyscy mają włączone JS).

Zapewne część z was pomyślała – głupoty – 95% ludzi ma włączone JS. Owszem – duża większość ludzi ma włączone JS, ale poziom wiedzy internautów się zwiększa – a poziom zagrożenia systematycznie rośnie. Blokowanie JS będzie coraz częstsze. Ale nie znaczy to, że serwis powinien być dla blokujących nie dostępny!

A może wystarczyłby odpowiedni komunikat (<noscript>), który poinformowałby mnie, że 1. mam wyłączone JS (nie szukałbym problemów po stronie serwera), 2. strona jest bezpieczna, a skrypty służą wyłącznie modyfikacji treści. Tego większość stron też niestety nie ma.

Czy jestem przeciwnikiem JS? Wręcz przeciwnie – jestem wielkim zwolennikiem – swój pierwsze “publiczne” skrypty JS publikowałem pracując jeszcze w hoga.pl, więc conajmniej 8 lat temu (publikacja na stronie kursu P. Wimmera – na pewno można go jeszcze gdzieś znaleźć). W większość moich systemów dość mocno korzystam z JS, zawsze starając się jednak zapewnić dostęp użytkownikom z wyłączonym/brakiem JS.

Bardzo dobrym rozwiązaniem, jest rozwiązanie proponowane przez jQuery – piszę proponowane, bo większość przykładów jakie znalazłem ucząc się jQuery właśnie tak jest robionych. Tworzysz “normalną” działającą stronę HTMLową – i oprogramowujesz ją po stronie serwera tak, jakbyś nie używał jQuery. Dopiero po tym etapie dodajesz dynamiczną zmianę elementów – formularze z “przeładowujących” stronę na AJAX, modyfikacje odnośników”przeładowujących” na wczytujące teksty do divów. TO JEST IDEAŁ! …do którego dążę :-)