Hopp til innholdet

cjohansen.no

Gode grensesnitt: Siste punkter om webstandarder

Gjennom fire innlegg for to uker siden utformet jeg et forslag til krav til god grensesnittsimplementasjon i kategorien webstandarder. Et innlegg til hører med før vi går videre: idag handler det om tegnsett, RSS, nettleserstøtte og mer.

Bakgrunn: Sjekkliste for grensesnittsutvikling.

Tegnsett

Bruk riktig tegnsett på alt innhold. For norskt innhold bør UTF-8-enkoding foretrekkes for å være sikker på at alle spesialtegn og særnorske tegn vises riktig. Det bør om mulig benyttes samme tegnsett i alle lag i applikasjonen (database, CMS, grensesnitt, eksterne tjenester, andre lag) for å minimere sjansene for feil knyttet til dette.

Til sluttbrukeren kan tegnsett spesifiseres med Content-Type-headeren, og bekreftes med den tilsvarende meta-taggen.

Hvorfor?

Hvordan?

RSS/Nyhetsstrømmer

Ethvert nettsted med innhold av interesse burde tilby en RSS-feed slik at brukerne har mulighet til å abonnere på innholdet ditt på den måten de selv ønsker.

En RSS-feed kommer i mange varianter, med formater som Atom 1.0, RSS 2.0, 1.0, og 0.9x. I følge John Panzers RSS best practices bør du foretrekke å støtte Atom 1.0, med RSS 2.0 som andrevalg.

Atom er ikke egentlig RSS - det er to (egentlig flere) forskjellige formater - men RSS brukes ofte som et samlebegrep for nyhetsstrømmer. Atom 1.0 er designet for å ta over for RSS etter at RSS har havnet i et salig sammensurium av inkompatible versjoner. Selvom mange større selskaper (som for eksempel Google) har omfavnet Atom er RSS fortsatt utstrakt i bruk, da spesielt RSS 2.0 for podcastere.

Akkurat som med andre standarder er det en hel rekke verktøy tilgjengelig for RSS/Atom, så som W3Cs feed validator. Det er like viktig å sørge for at nyhetsstrømmen er ved sin beste helse som å passe på at resten av nettstedet holder teknisk mål.

Valider etter publiserte standarder for feeds

Uavhengig av valgt(e) format(er), bruk valideringstjenester til å validere strømmen. Foretrekk Atom 1.0, med RSS 2.0 på andrevalg. Se forøvrig en sammenligning av de to formatene.

Hvorfor?

Hvordan?

Tilrettelegg for autodiscovery

Autodiscovery av nyhetsstrømmer tillater nettlesere og andre tjenester å finne RSS- og ATOM-feeds bare ved hjelp av URL-en til et nettsted. Dette letter abonnering for sluttbrukeren.

Hvorfor?

Hvordan?

link-elementene det her er snakk om er

<link rel="alternate" type="application/atom+xml" title="ATOM feed" href="/feed/atom" />
<link rel="alternate" type="application/rss+xml" title="RSS feed" href="/feed/rss" />

Andre gode RSS/ATOM-tips

Nettleser-støtte

De dyktige menneskene på Yahoo! har gjort mye bra for grensesnittsteknologien (la oss håpe at de fortsetter med å ikke være eiet av Microsoft...), og en av disse tingene er deres Graded browser support.

Gradert nettleserstøtte gir en mer nyansert definisjon av støtter enn "støtter" og "støtter ikke". Grunnprinsippet går ut på at man prioriterer innholdet, og legger til ekstra funksjonalitet så som script og fancy design på en måte som fungerer for de som har støtte for det, men som ikke ødelegger for de med eldre utstyr osv. Dette prinsippet er også kjent som progressiv forbedring (" progressive enhancement").

Med gradert nettleserstøtte kan man si noe om i hvilken grad en nettleser støttes. Nettlesere vurderes ut i fra hvor gamle de er, hvor godt de implementerer webstandarder, hvor mange som bruker dem og andre kriterier. Med denne dataen lager man seg en matrise over nettlesere og operativsystemer og på hvilken måte de skal støttes. Skal all funksjonalitet fungere perfekt? Er det nok at innholdet kommer igjennom?

Flere detaljer rundt dette finnes hos Yahoo! Nå er det ikke gitt at alle trenger å støtte de samme klientene som Yahoo! gjør, men det kan være et godt utgangspunkt. Et annet utgangspunkt kan være ditt eget publikum (bruk statistikk aktivt).

Bruk progressiv forbedring

Hvorfor?

Som forklart over så er poenget med progressiv forbedring å sette innhold i hovedsete, og deretter legge til ekstrafunksjonalitet. Det er viktig å merke seg at dette ikke er det samme som "grasiøs degradering" (" graceful degradation), som prioriterer i motsatt rekkefølge, selvom meningen er lik.

Hvordan?

Jeg har tidligere skrevet om ikke-påtrengende JavaScript, som er et viktig konsept for progressiv forbedring.

Definer støttede klienter og test for dem

For ethvert prosjekt bør det på forhånd gjøres en aktivt innsats på hvilke klienter som skal støttes på hvilken måte. Yahoo!s nettleserkart er et naturlig utgangspunkt her, men som tidligere nevnt bør man ta sine egne behov og besøkende i hensyn også.

Én ting man skal passe seg for når det gjelder å bruke statistikk i denne prosessen er å bruke la statistikken bli en selvoppfyllende profeti. Hvis du ikke har noen Safari-besøkende i det hele tatt på nåværende tidspunkt - kan det kanskje komme av at Safari-brukere ikke er i stand til å bruke nettstedet (og ikke at de ikke er interessert)? La heller ikke egne meninger og blind tro på dagens situasjon plassere moderne nettlesere i "C grade"-boksen.

CSS til utskrift

Ved hjelp av media-typer er det mulig å gi forskjellig CSS til forskjellig bruk. Benytt dette til å lage nettdokumenter som printer godt. La utskriften være en aktiv del av utviklingen, og se til at dokumenter som skrives ut er lette å lese, at de ikke inneholder unødige forstyrrende elementer (så som navigasjon, skjema osv) og at de passer inn på vanlige ark.

Andre gode tips

I en samlekategori som dette er det nok plass til et utall småtips, har du flere essensielle tips enn de som er gitt her vil jeg gjerne høre om dem!

Muligens relatert

2006 - 2012 Christian Johansen Creative Commons Lisens