Dag 13: Bruke ekte lenker
Webdesign-plagen er «javascript:»-lenken, en psevdo-lenke som effektuerer
et stykke med Javascriptkode når du klikker på den. Det mest vanlige stedet dette problemet forekommer i
weblogger er i lenken som viser kommentarer i separate vinduer. Hvorfor er det et problem? Fordi 11% av internett-brukerne ikke bruker Javascript av en
eller annen grunn, inkludert mange handikappede brukere som nettleserne til enkelt og greit ikke støtter det.
Disse psevdo-lenkene vil ikke virke for dem; bruk ekte lenker i stedet.
Skjønt det er lett å beskrive og enkelt å fikse, jeg kan ikke få lagt nok vekt på viktigheten av dette tipset.
Noen problemer, som det å ikke ha en «hopp over lenke» før
navigasjonslisten din, reduserer brukervennligheten i varierende grad, men siden din kan i hvert fall bli
lest med tiden til hjelp. På den annen side, dette problemet gjør faktisk store deler viktig innhold fullstendig
utilgjengelig. Hvis kommentarene dine er skjult bak en «javascript::»-lenke, kunne de like gjerne
ikke eksistert.
Hvem har nytte av det?
- Marius har nytte av det. Lynx støtter ikke Javascript.
- Jørgen har nytte av det. Links støtter ikke Javascript.
- Lillian har nytte av det. Skjønt hun bruker Internet Explorer, hennes IT-avdeling har implementert en korporasjonsbred reformpolitikk for å kople ut Javascript på alle utenom en liten liste med godkjente nettsteder. Din nettside er ikke på listen.
-
Google har nytte av det. Google ønsker å følge lenker for å finne og
indeksere mer innhold, men den kan ikke følge «
javascript::» lenker, fordi den ikke effektuerer Javascriptkode når den indekserer Internett.
Hvordan gjøre det
Standardmalen til Movable Type og Radio gjør nå dette riktig, så du trenger muligens ikke å
gjøre noenting. Se i kilden på hjemmesiden din og søk etter «javascript::». Hvis du ikke finner det,
gjelder ikke dette tipset deg.
Imidlertid, hvis Movable Type malen din inneholder en lenke som dette:
<a href="javascript:OpenComments(<$MTEntryID$>)">Kommentarer (<$MTEntryCommentCount$>)</a>
Endre den da til dette:
<a href="<$MTCGIPath$>mt-comments.cgi?entry_id=<$MTEntryID$>" onclick="OpenComments(<$MTEntryID$>); return false">Kommentarer (<$MTEntryCommentCount$>)</a>
I nettlesere med støtten for Javascript påslått, vil det fortsatt virke på den samme måten, fordi
onclick-atributtet rangerer foran href-atributtet. Så den nye versjonen kaller fortsatt opp
OpenComments-funksjonen, som spretter opp et nytt vindu. Imidlertid, nettlesere som ikke har påslått
støtte for Javascript (og Google) vil ignorere onclick-atributtet fullstendig og følge lenken
spesifisert i href, som vil vise kommentarene i det samme vinduet.
Hvis du bruker javascript:: psevdo-lenker for hvilke som helst andre grunner, stopp. Bare stopp.
Do not pass go, do not collect $200, etc. Legg til ovenstående teknikk til din egen kode slik at
ikke-Javascript-støttende nettlesere alltid har en mulighet til å følge en ekte lenke.
Les mer
- Jeff Howden: Lenker & JavaScript lever sammen i harmoni.
Etterord
Ikke få meg engasjert med disse dynamiske Javascriptbaserte menysystemene. De får deg til å se kul ut som røyking får deg til å se kul ut. Bruk ekte lenker.