U zadnje vrijeme me nekoliko ljudi pitalo za pomoć oko Javascript popupa, ilitiga otvaranja novih prozora u Javascriptu. Kod svih sam primijetio istu grješku – ili je poziv na JS funkciju za otvaranje poziva bio umetnut direktno u href atribut <a> taga (putem nepostojećeg javascript: “protokola”), ili je unutar href atributa uredno stajalo nešto tipa javascript:;, # ili javascript:void(0);, a poziv funkciji umetnut u onclick atribut. Bilo koji od tih načina pozivanja popupa je izrazito nepristupačan ljudima koji ili surfaju s isključenim Javascriptom, ili koriste neku drugu vrstu browsera (npr. browsere za slijepe i slabovidne i sl.).
Na sreću, pristupačne popupe uopće nije teško napraviti. A List Apart ima iscrpni članak na tu temu, gdje možete vidjeti malu hrpicu načina na koji se popupi fino mogu riješiti, no ja donosim jedan koji se meni, zbog svoje jednostavnosti i efikasnosti, najviše svidio.
Pretpostavimo da se funkcija koja otvara link u novom prozoru zove link_popup, i, radi jednostavnosti, kao jedini argument prihvaća URL koji mora učitati. Naš pristupačni link bi izgledao ovako:
<a href=”http://www.example.com/” onclick=”link_popup(this); return false;”>example.com</a>
Vrlo jednostavno. URL nam je u href atributu, što je u potpunosti by the book i u skladu sa zdravim razumom. Time smo riješili nekoliko problema s pristupačnošću stranice za ljude koji nemaju privilegiju korištenja Javascripta, ali i nekoliko iritantnih problema koji se stvaraju kod metoda navedenih u prvom odlomku, a koje zahvaćaju i korisnike koji koriste i obične, vizualne browsere s uključenim Javascriptom (kao što je nemogućnost otvaranja linka u novom prozoru ili tabu). Ovo se može dodatno dopuniti uključivanjem target atributa i postavljanjem njegove vrijednosti na _blank, što bi natjeralo da se link otvori u novom prozoru i za ljude koji imaju isključen JS.
Za one koje je ovo zaintrigiralo, članak na A List Apartu ide puno dalje, tako da na kraju eliminira i sam onclick poziv funkciji. No, vjerujem da su oni koje to interesira dotični članak već i pročitali ;).
You like? hr.digg|prijavi