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?

  1. Marius har nytte av det. Lynx støtter ikke Javascript.
  2. Jørgen har nytte av det. Links støtter ikke Javascript.
  3. 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.
  4. 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

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.