8Frontend: Bjørnar

Bjørnar er utvikler og startet og driver Grensesnitt. Bjørnar mener at universell utforming bør ses på som en basiskunnskap hos utviklere. Vi er enig med Bjørnar

Varighet: 61 min Slippdato: 1. november 2021

Tekstversjon

Innledning

Erling: I dag har vi besøk av Bjørnar Tollaksen fra Grensesnitt. Hvem er det, Anders?

Anders: Nei, det er jo du som kjenner ham. Jeg har aldri møtt ham før.

Erling: Men han følte han kjente deg.

Anders: Ja. Han kjenner hvertfall stemmen min.

Erling: Men du kjenner ikke ham?

Anders: Nei, men vi har møtt hverandre i digitale foraer. Jeg lærte i dag at han leder et utviklingsselskap eller hva skal vi kalle den typen bedrift? De heter Grensesnitt. Jeg lærte i dag at de var fra Bryne, det visste jeg ikke.

Erling: Gjorde du ikke?

Anders: Nei.

Erling: Du er ikke så god på forarbeid?

Anders: Nei. Det er jo fordi vi har bestemt oss for at vi skal gjøre det enkelt for oss selv. Det er jo en svakhet for en intervjuer å ikke gjøre forarbeid, selvfølgelig. Jeg tar kritikk for det. Jeg vet at Grensesnitt har mange samarbeidspartnere, blant annet dere i Okse. Han skal fortelle litt om hvordan de jobber. Om hvilket fokus, eller ikke fokus de har på universell utforming. Han er jo invitert her i dag, fordi du har sagt at han er flink.

Erling: Det vil jeg bare si, at han og Grensesnitt, har ekstra fokus på å implementere designet ordentlig.

Anders: Det er ikke noe kjøpt og betalt her.

Erling: Nei, dette er den første podkasten han er med på.

Anders: Så vi har invitert ham.

Intervju

Anders: Da var vi i gang. Hei Bjørnar.

Bjørnar: Hei Anders. Jeg må jo si at jeg aldri har møtt deg før, men jeg føler at jeg kjenner deg. Etter å ha hørt på dere gjennom mange episoder. Jeg føler at vi blir kjent.

Erling: Eller at du blir kjent med ham? Han blir jo ikke kjent med deg.

Bjørnar: Nettopp. Derfor kan det bli en slags mismatch i forholdet, hvorvidt vi føler at vi kjenner hverandre.

Erling: For vi kjenner hverandre.

Bjørnar: Ja, vi kjenner hverandre. Vi har jobbet i sammen og jobber i sammen på forskjellige prosjekt.

Anders: Hvorfor gjør dere det?

Erling: Nei, det er fordi Bjørnar er flink og har flinke folk i firmaet sitt, Grensesnitt. Vi har hatt behov for den kompetansen, så da har vi leid ham inn.

Anders: Det kan jeg godt si for å øke troverdigheten her. For det er jeg som rekrutterer, jeg er rekrutteringssjef i Ulik-konsernet. Og Erling tipset meg, et ikke-anonymt tips om deg. Du er her fordi du er flink, ikke fordi du har mast deg til egenreklame for Grensesnitt.

Bjørnar: Det kan være greit å presisere, ja. Jeg har ikke for vane å springe rundt på podkaster og prøve og promotere meg selv og selskapet. Dette er faktisk første opptreden.

Anders: Men jeg vet ingenting om deg og Grensesnitt. Jeg har gjort ganske slakt forarbeid her.

Bjørnar: Du har ikke gjort noe research?

Anders: Nei.

Om Grensesnitt

Bjørnar: Da er det interessant å høre hva du tenker. Hva tror du at Grensesnitt holder på med?

Anders: Det åpenbare er jo grensesnitt, at dere lager grensesnitt. Jeg synes det er et godt firmanavn. En liten historie på siden. I min heim har jeg en samboer som er fra Sverige. Hun heter Linn. For noen måneder siden brukte jeg ordet grensesnitt i en helt naturlig setning. Hun spurte «hva er det?» Jeg tenkte at det heter sikkert noe helt annet på svensk. Jeg forklarte at det er det du ser typisk på en skjerm, det mennesket bruker for å gi instrukser til datamaskinen. Når du begynner å fortelle slikt, så hører du kanskje at du forklarer det på en dårlig måte. La oss slå det opp på Google Translate, Google Oversetter. Vi søkte opp «grensesnitt», hva er det på svensk, og det var akkurat det samme. Så det var bare et fremmedord for henne.

Bjørnar: Det var ikke et kjent begrep?

Anders: Nei.

Bjørnar: Ikke et dagligdags ord.

Anders: Jeg vet ikke om det sier mer om henne eller ordet.

Bjørnar: De fleste utviklere og designere vet jo hva et grensesnitt er.

Erling: Dette er jo òg et uu-prinsipp, å bruke forståelige ord.

Anders: Ja, og ordet i seg selv er jo ikke selvforklarende, hvis du ikke kan det.

Bjørnar: Nei, det er sant. Men et grensesnitt er jo normalt, i sin enkleste form, noe som oversetter mellom to ulike verdener om du vil. Det kan være menneske til maskin. Det kan være maskin til maskin. Det kan være to ulike datasystem som trenger en måte å kommunisere på.

Anders: Det kan vi òg grensesnitt?

Bjørnar: Ja.

Anders: Jeg tenker jo grafisk grensesnitt.

Bjørnar: Ja, men du har jo òg API, som jo er et Application Protocol Interface, som gjør at to ulike system kan snakke sammen. Det beskriver jo litt av det vi gjør. Én viktig del er jo brukergrensesnitt og én viktig del er å få system til å snakke sammen. Integrasjoner. Fordi vi jobber i begge de nivåene.

Anders: Det var det jeg hadde tenkt å si, når dere kaller dere Grensesnitt, så tenker jeg litt visuelt, men så vet jeg at dere har en teknisk tyngde. Det vet jeg bare som en antagelse, fordi dere samarbeider med Okse. Okse tar den visuelle delen, og dere tar den tekniske delen.

Bjørnar: Vi er et utviklermiljø som liker veldig godt å jobbe med designere.

Anders: Dere har ingen designere?

Bjørnar: Vi har én designer. Kanonflink, hun. Bor på Bryne. Kort vei til jobb. Har jobbet 13 år i Netlife. Så hun har stor faglig tyngde innen sitt felt. Men vi er jo primært et utviklermiljø, som samarbeider med andre. Både utviklere men ikke minst designere. En viktig bit, eller kanskje det viktigste, er å samarbeide med designere og kommunikasjonsfolk.

Erling: Jeg kan jo si det fra et designperspektiv, er at den kompetansen og det fokuset dere har, å lage lage grensesnittet skikkelig, er en kompetanse som mangler. Det er ikke så mange som har det fokuset som dere, og kanskje spesielt deg, har.

Samspillet mellom designere og utviklere

Bjørnar: Det er jo noe av det jeg synes er kjekt, å jobbe med designere. Å få laget fine og ordentlige ting. At alt er gjennomtenkt, både det grafiske, interaksjonen og koden. Alt har den samme kvaliteten. Klart det er mange utviklere som ikke liker å jobbe med designere. Det har blitt en slags kamp, der vi har ulike interesser. Flere av utviklerne vår har òg designbakgrunn. De har forståelsen, gleden og felles referansepunkt. Det er viktig.

Erling: Er det noe dere ser spesifikt etter?

Bjørnar: Vi har det ikke som et krav, å ha designbakgrunn eller utdannelse. Men at vi har en forståelse og er opptatt av de tingene, det er helt klart viktig for oss. Vi gir oppgaver i intervju, lag et grensesnitt som er representativt for det vi ofte lager for kunder og i produksjon. Det har et fokus på de designtingene, og implementere det og liksom ha det i bakhodet, det er helt sentralt.

Erling: For selv om vi designere sier at vi designer for brukeren, så er det mange tilfeller strengt tatt dere som lager det siste som folk bruker. Mye ligger på dere.

Bjørnar: Å ta ting fra skisse til implementasjon, nesten uansett hvor gode skissene er, så kreves det òg en form for kreativitet og forståelse for design som fag. De er tegnet opp, med tre i bredden, for det passet jo i skissene. Så vet vi som utviklere at det alltid kommer fire, fem og seks ting. Hvordan flyter ting da? Da må vi være en form for designer i hodet.

Anders: Per definisjon er det jo òg design. Den jobben er jo en designjobb, vil jeg si.

Erling: De lærde strides.

Bjørnar: Hvis vi går dypt nok så kan vi si at alt er design.

Erling: Og at alle er designere, hvis vi går veldig bredt.

Anders: Eller, jeg tror vi har snakket om det før, den norske oppfatningen av begrepet design er mer visuelt, mer grafisk design, enn den engelske eller amerikanske.

Bjørnar: Det stemmer nok det. Der oppfatter jeg at det er en endring. At det er en større bredde og større forståelse for at design er mer enn det visuelle og det grafiske.

Anders: Så går det begge veier. En designer som jobber med teknologi må jo forstå teknologien.

Bjørnar: Helt sant.

Universell utforming i utdanning

Erling: Med fokus på design og utvikling, er dere veldig godt rigget for å lage ting universelt utformet. Hvordan fokuserer dere på det?

Bjørnar: Jeg anser universell utforming for en form for basisferdighet, hvertfall for frontend-utviklere. Det er klart at det ikke er alle backend-utviklere som lager HTML og alle de tingene der. Som frontend-utvikler så lager du noe som treffer hele tiden. Jeg må si at jeg ble jo oppmuntret da jeg hørte i en episode at Noroff har det som fag, universell utforming.

Erling: Eller, de har det som en del av frontend-utvikling.

Bjørnar: Da får vi håpe at det blir et eget fag. Jeg tok dataingeniørstudiet på Universitetet. Der var ikke dette et tema i det hele tatt.

Erling: Når var det?

Bjørnar: Fem, seks år siden? Det må være lengre enn det. Syv–åtte år siden.

Anders: «Dataingeniør», heter det det?

Erling: Det høres ut som noe som levde for lengre enn syv–åtte år siden.

Bjørnar: Jeg var litt sent ute med utdannelsen.

Erling: Å få den i boks.

Bjørnar: Teknisk sett så er den ikke helt i boks enda. Jeg begynte å jobbe fulltid som utvikler halvveis inn i studiet. Gjorde ferdig alle fagene. Tenkte at bacheloroppgaven blir noe i jobben jeg kan skrive om. Det tenker jeg litt fortsatt, selv om det blir stadig mer sannsynlig.

Erling: Det er bare tøys med utdanning. Hva er det du har nå igjen, Anders.

Anders: Jeg har en bachelor jeg òg. Eller, jeg òg.

Erling: Er det ikke noe IKT-greier?

Anders: Informasjonsvitenskap. For min del, så hadde jeg ikke trengt den utdannelsen. Det var mer omgivelsenes forventninger som gjorde det.

Erling: Det er løye med det.

Bjørnar: Det må jeg si. Jeg startet enkeltpersonforetak da jeg var 18 og begynte å utvikle små nettsider og tjenester for venner og venners venner. Da tenkte jeg at det kunne være greit å få kompetanse på det. Det jeg synes var interessant, var at mange av fagene var kjempeinteressante, algoritmer for eksempel. Mange algoritmer har ikke blitt mer effektive siden de ble funnet opp på 70-tallet. Og de brukes overalt. Som «bubble sort» og «tree sort». Alle disse som blir brukt over alt, jeg har brukt dem. På skolen fikk jeg en forståelse av hvordan de egentlig virker. Å ha brukt dem, og ha en forståelse for den praktiske bruken. Det var kjempeinteressant. Det er interessant å vite hva som egentlig skjer når jeg gjør dette. Hvis du møter dette uten å ha hørt om sortering og hvorfor det er viktig – hva er poenget? Det kan fort bli en utfordring med mange studier. Men hvis du har hatt litt handson-erfaring fra før, så blir utdanning og de formelle tingene mye mer interessante.

Erling: Men jeg har sett noen gif-er med noen sorteringsalgoritmer, er ikke det nok?

Bjørnar: Hehe, jo det er nok det.

Erling: Jeg visste jo hva du snakket om da du snakket om sortering. Jeg så det for meg.

Anders: Jeg fikk òg opp noe visuelt.

Universell utforming er gammelt

Erling: Men universell utforming, når ble du bevisst på det?

Bjørnar: Si det. Det er jo noe som har vokst frem, og som det har blitt mer og mer fokus på. Jeg må si at jeg ble litt overrasket over hvor gammelt universell utforming er, de kravene. 1998. 30 år.

Anders: I 1999 ble WCAG publisert.

Bjørnar: Til å begynne med, så var det kun at du måtte ha en alt-tagg på bildet. Det var det eneste jeg visste om. Over tid og i møte med det som jeg leser om på nettet av blogger og artikkel, og ikke minst økte formelle krav, og å jobbe med designere som har dette som fokus. Det har vært mest drivende for forståelsen og fokuset.

Erling: Må du noen gang overbevise om verdien av det?

Bjørnar: Du kan si at vi jobbe veldig mye sammen med designbyrå, kommunikasjonsbyrå og reklamebyrå. Vi jobber med mange av de store byråene i Stavanger. Da er det ofte noen som har gjort en designjobb. Vi har ansvaret for kodedelen av universell utforming. Det er en del ting der som utviklere må ta ansvar for. Rene metatagger og ting som ikke er visuelle. Og så er det jo noe som designere må ta ansvar for, sørge for god nok kontrast og størrelser og disse tingene. Det opplever vi, at det er veldig ulik modenhetsnivå hos designere. Jeg blir litt motløs hvis vi må påpeke at denne kontrasten her er faktisk for dårlig, folk klarer ikke å lese. Dette burde vært et designansvar. Så dukker det opp branding. Det som Okse leverer, og sikker du Anders, er interaksjon. De som jobber mer i den grafiske enden, med branding, så kan det være en utfordring dersom en kontrast ikke funker, hele brandingen er bygget rundt disse fargene. Hva gjør vi da?

Erling: Sier du ifra da?

Bjørnar: Må jo si ifra. Så må vi finne best mulig løsning. Hvis du som designer ikke har uu-tankene i bakhodet fra start, så risikerer vi at vi maler oss inn i et hjørne som ikke er så lett å fikse på etterpå. Det kan være krevende.

Testverktøy

Erling: Tester dere noe? Både automatisk og manuelt.

Bjørnar: Vi har ikke automatiserte tester. Vi burde sikkert vært der.

Erling: Det kunne sikkert vært en fordel.

Bjørnar: Jeg fikk jo tips om noen verktøy, i podkaster dere har hatt tidligere.

Anders: Husker du hvilke?

Bjørnar: Hvem var inne og snakket om testing?

Erling: Var det Kristian? Du har kontroll på de ulike verktøyene, Anders?

Anders: Jo. Ikke så mye disse verktøyene som du bruker mens du koder. Jeg har mer kontroll på de verktøyene som vi bruker for å evaluere ferdig kode eller ferdige løsninger. Av og til slenger jeg ut noen ord som jeg ikke helt vet hva betyr. Jeg kan si «ja, bruker dere en slik linter?»

Bjørnar: Det gjør vi.

Erling: Bra Anders!

Anders: Den type verktøy kan du bygge inn uu-tester. Der er det jo forskjellig verktøy per teknologi eller språk, som du jobber med.

Bjørnar: Hvis du kjører en vanlig Create React App, så følger det med en linter som klager på de vanligste prinsippene.

Erling: I det siste prosjektet var det image-tagger uten alt. Det plukket den ikke opp! Hehe.

Bjørnar: Nei, det kan være at vi ikke hadde fikset alle advarslene.

Erling: Dere fikset det raskt, da dere plukket dem opp.

Innholdsprodusenter har òg et ansvar

Bjørnar: Det som er interessant er at vi kan lage semantikk som gir mening og kode så godt vi kan, og designerne kan gjør alt riktig, og sørge for at alt er bra. Så har du den tredje, veldig viktige gruppen, det er jo innholdsprodusenter og redaktører. De har òg et ansvar. Hvis du legger opp til bruk av headings, du legger opp til landemerker. Redaktørene kan òg klusse til det. De kan legge på en bold og gjør skriftstørrelsen større og «kaller» det en heading. Eller putter inn bilder som ikke burde bli lagt inn.

Erling: Og senest, i det prosjektet vi jobber sammen på nå, der hadde vi en økt hvor alle på prosjekter, inkludert kunden, skulle legge mye innhold. Der har vi et overskriftselement hvor du kan velge h1, h2, h3. Da satt redaktøren og sa at den måtte være litt mindre, jeg setter den til h3.

Anders: Klassisk!

Bjørnar: Det er enda et element i det samspillet. Det er ofte en ganske kompleks sak som skal til, for at alle blir bevisste, hvis du skal følge alle kravene. I stedet for å lage maler, så bygger vi mange små innholdskomponenter. Kanskje 10–20 forskjellige, som kan være sidebanner med bakgrunnsbilde, supertittel, tittel, call to action-knapp og så videre. Så kan du ha forskjellige elementer nedover. Et av kravene vi feiler på, er at overskrifter skal være i rekkefølge. Du skal ha en h1, så h2 og så h3. Hvordan i all verden setter du sammen komponenter for å ivareta dette?

Anders: De må kjenne til hverandre.

Bjørnar: De må kjenne til hverandre, og de må henge sammen. Når du lager ting fleksibelt, så er det rom for at redaktøren kan sette ting sammen på en slik måte som ikke designeren eller utvikleren hadde sett for seg.

Erling: Jeg vil spinne litt på den. Vi kan kanskje kverne gjennom det etterpå, og være bevisst på det, og sette headingnivå, h1, h2 og h3. De får ikke det valget, redaktørene. De får størrelsen. Så etterpå ser vi gjennom det og ser at her er det en haug med headinger, denne strukturen bør de ha.

Bjørnar: Det er mye vi kan gjøre der. Det kan være krevende å lage noe, som er teknisk riktig der du har h1 og en gjeng med h2-er. Det er ikke sikkert det gir mening for en skjermleser som skal hoppe til headinger.

Erling: Du kan ikke automatisere strukturen på innhold, på en måte.

Bjørnar: Nei, du kan jo gjøre noe. Det krever arbeid, det krever at du tenker på alle tingene som kan inntreffe.

SPA (Single Page Application)

Erling: Det er en liten kobling mellom dere to. Du Anders har vært på et prosjekt der de bygget et nettsted på en SPA, altså en Single Page Application og møtte på en hel del utfordringer. Bjørnar, faktisk på det samme prosjektet som vi holder på med nå, det er en Single Page Application. Hvordan er det å bygge opp en side semantisk, som en Single Page Application. Er det grei skuring, eller må du gjøre noen tilpasninger?

Bjørnar: Jeg vil si at det ikke er så stor forskjell på om det er en Single Page Application eller noe annet. Det er litt spesielt, men det blir òg produsert faktiske filer til slutt ut av det.

Erling: Den ene tingen vi møtte på, var da vi valgte et menyelement, så lastet den innholdet, og da vi tabbet én gang til, så gikk vi til neste menyelement, selv om det egentlig var en sidelasting, fordi du kan gjøre det slik i en SPA.

Bjørnar: I det rammeverket vi bruker der så produseres det statiske filer. Hvis du besøker en URL, så får du en side. Hvis du navigerer derfra internt, så skjer det en magisk lasting med JSON (JavaScript Object Notation) i bakgrunnen, og så oppdateres det på direkten.

Erling: Har dere ordnet det, forresten? Hehe.

Bjørnar: Det står på listen min. Det skal bli ordnet før lansering.

Erling: Det er en ordning på det?

Bjørnar: Jada, du må bare lytte på ruteendringer, du har navigert til ny URL, så må du manuelt nullstille tabindex og så videre. Det er lett å fikse. Det er noe som dukket opp ved testing, som ikke er så lett å tenke seg frem til.

Erling: En annen ting, er når Anders og meg har testet med skjermleser, så hører du lyden av en sidelasting, en liten pling. Den må vi òg få med. Det er ikke bare å nullstille tabindex. Så en Single Page Application kan føre til litt utfordringer med universell utforming.

Anders: Når du velger teknologi, når du velger noe som er en JavaScript-applikasjon, så må du som utvikler forstå hva du fjerner fra nettleserens standard oppførsel. Jeg synes fint vi kan ta disse valgene, så lenge vi skjønner kompleksiteten av dem. Da tenker jeg at for dere, så er det lurt å ha noen huskeregler eller grunnprinsipper som dere tar med dere, når dere velger en SPA. En god regel er å flytte fokuset manuelt, ved en «sidelasting» til første overskrift og i tillegg setter tabindex til -1 på den, for du vil ikke nå den, du vil bare at datamaskinen skal flytte deg dit. Slike ting opplever jeg at mange ikke er bevisst på, eller glemmer, eller ikke har tenkt på i det hele tatt.

Anders: Nå jobber jeg på et prosjekt, som ikke er en SPA

Bjørnar: Nå blir det veldig teknisk her, jeg vet ikke hvor dypt dere vil vi skal gå?

Anders: Vi skal gå litt ut igjen. En løsning som jeg jobber med nå, som jeg har mange utfordringer med, ikke bare uu – det er egentlig ikke en SPA. Hver interaksjon genererer en sidelasting, men det er likevel et JavaScript som generer alt som du ser på. Jeg vet ikke helt hva det heter. Er det rett og slett bare en JavaScript-applikasjon?

Bjørnar: Det tror jeg du kan kalle det. Det kan ha en del utfordringer med tanke på SEO.

Anders: Ja, det er det jeg jobber med nå.

Bjørnar: På dette prosjektet vi jobber med nå, har vi valgt et rammeverk som produserer statiske filer. Vi trenger at roboter og søkemotorer kan lese dem uten å forstå JavaScript, selv om det er forbedringer der òg. Google har vel lært seg JavaScript.

Anders: Google kjører JavaScript, ja.

Bjørnar: Men at det kan finnes ferdig produsert HTML er jo et pluss på flere måter.

Anders: Hvilket rammeverk bruker dere?

Bjørnar: På dette prosjektet bruker vi rammeverket Next. Det er React-basert, så det er en JavaScript-applikasjon, men det produserer statiske sider av alle sider som finnes, så du får ferdig HTML, som kan lastes direkte.

Responsiv design

Bjørnar: Nå var vi dypt nedi det tekniske her. Skal vi komme oss ut igjen?

Anders: Ja, men vi skal ikke la entusiasmen drepes av å prøve å ikke ha et teknisk perspektiv på denne episoden. Nå har vi ikke snakket teknisk på mange episoder, så kanskje vi skal la oss være litt tekniske i dag? Vi har jo invitert deg, du er jo en teknolog.

Bjørnar: I forhold til modenheten på universell utforming, så opplever jeg en bevegelse. Det er et stort spenn, hvor folk er, hvor bevisste folk er. Ser vi tilbake på responsive nettsider, så var det en lang periode der noen designere var veldig på og bevisste. De begynte med mobilstørrelse. Men det var mange år der det var et vanvittig stort avvik mellom designere. Noen designere kunne tenke papirstørrelser, at det finnes én størrelse. Ingen flyt mellom ulike størrelser. Det har tvunget seg frem. Når nettsider har 70–80 % trafikk på mobil, så skjønner folk at det må være helt på toppen av listen. På samme måte som det tok en stund, så opplever jeg det òg er ganske stort spenn i bevisstheten rundt universell utforming. Både utviklere og designere.

Bevissthet og kompetanse

Erling: Jeg liker at du bruker ordet bevissthet, gjerne mer en kompetanse. Det henger tett sammen. Det første steget er jo bevissthet. Når du er bevisst på det, så kommer mye naturlig.

Bjørnar: Ja, for mye av dette er ikke teknisk krevende.

Erling: Det kan du nesten si én gang til, fordi det er så viktig.

Bjørnar: Det er ikke så teknisk krevende å støtte og legge til rette for universell utforming.

Anders: Den kan bli brukt mot deg!

Erling og Bjønar ler.

Bjørnar: Det kommer garantert til å bli brukt mot meg. Det er krevende, og det er mye du skal ha i bakhodet for å oppfylle alle suksesskriteriene. Det er jo nesten umulig å oppfylle alle.

Anders: Og vi skal ikke sikte mot det.

Bjørnar: Hvis vi vet om de, og vi er bevisste, og vi tenker på det fra begynnelsen av, så blir alt mye enklere.

Anders: Det støtter jeg deg i. Og det tenker jeg med de ulike komponentene, hvordan kan du vite om de står i forhold til hverandre, bare det at du har tenkt den tanken, så lager du sannsynligvis en ganske bra løsning, selv om du ikke klarer å løse akkurat den utfordringen.

Erling: Da stapper du ikke alt i div-er.

Webbens historie

Anders: Jeg synes sammenligningen med responsiv design var bra. Jeg ser noen klare paralleller der. Både det du sa med at mange designere forholdt seg til et fast ark, et fast canvas som de ikke ville avvike fra. Og det at mange ikke forholder seg til uu. Det har vært en liten fartshump i webbens historie, for webben som den startet i sin reneste form, var jo både responsiv – det var før det ordet ble laget – la oss kalle det flytende. I starten laget vi ikke nettsider for en fast størrelse, det fløt i alle retning. Nesten alt var universelt utformet, fordi vi hadde ikke teknologien til å ødelegge det.

Erling: Så vi gjør det neste bare verre.

Anders: Vi har gjort det verre for oss selv, og så har vi lært mye på den reisen. Og så begynner vi å forstå det nå, og så bruker vi ganske mye krefter på å komme tilbake til der vi var. Det er ikke sikkert at vi skal komme tilbake der vi var. Vi vil ikke tilbake til 90-tallet. Vi må omfavne de teknologimulighetene som vi har. Parallellen var fin.

Erling: Det som du sa, Anders, da Bjørnar begynte å snakke om alle suksesskriteriene i WCAG, et viktig perspektiv jeg har fått, er at det ikke handler om å lage ting perfekt. Det handler om å lage det så bra som mulig innenfor de rammene vi har. Prøve hele tiden å gjøre det mer tilgjengelig.

Ikke start prosjekter med blanke ark

Bjørnar: Det er ikke vanskelig i den forstand at det krever veldig mye kompetanse. Det krever mye bevissthet. Det kan være tidkrevende. Både å designe med tanke på det, utvikle med tanke på det. Testing. Det er klart, vi jobber primært prosjektbasert. Det kan være alt fra veldig små prosjekter til veldig store prosjekter. På veldig små prosjekter der det er et veldig begrenset prosjekt, der de skal ha en nettside som skal være best mulig. Prosjektet har ikke så mye penger. Vi møter alltid på utfordringer der da.

Erling: Hvis vi har bevisstheten og kompetansen. Lag semantisk HTML. Bruk alt-taggen. Da lager du mer tilgjengelig løsninger enn veldig mange andre.

Anders: At du har det under huden og av og til bare tabber deg gjennom med tastaturet.

Bjørnar: Vi har samlet de erfaringene vi gjør, i et baseprosjekt, som vi starter med i alle prosjekt. En slags template. Den har en fast struktur med mange hjelpefunksjoner.

Anders: Dette har dere laget selv.

Bjørnar: Ja, vi har bygget på og bygget på og finjustert etterhvert. For egen del har vi et godt utgangspunkt, der vi har sterke konvensjoner. Ikke at du må, men det er lagt opp til at du lager semantisk kode og alle de viktige taggene er på plass.

Erling: Du er allerede langt på vei før du har startet.

Bjørnar: Ja, det handler om å gi utviklerne et best mulig utgangspunkt. Ikke nødvendigvis en tekst i en Wiki. Alt i prosjektet leder deg i en retning der du bruker semantisk kode, og du har de tingene i bakhodet. Det har vært nyttig for oss. Da blir det måten vi gjør det på. Ikke tilfeldigvis universelt utformet, men det får du med på kjøpet. Det skaper en bevissthet, en slags konvensjon, dette er slik vi gjør det. Fra prosjekt til prosjekt får vi mer robuste løsninger. Løsninger som er mer universelt utformet, enn om du starter med blanke ark.

Faglig oppdatering

Erling: Dere utviklere i mellom, snakker dere om universell utforming noen gang, uten at det er spesifikt på et prosjekt.

Bjørnar: Vi snakker om disse podkastene. Når det dukker opp ting. Det er mange artikler om det. Vi er opptatt av å være faglig oppdatert.

Erling: Jeg liker at du sier det som en selvfølgelighet. Opptatt av å være faglig oppdatert. Det inkluderer òg universell utforming. Det er fint!

Bjørnar: Det er så stort fag, universell utforming. Som jeg nevnte før vi startet, jeg er ikke gjennom den første sesongen. Jeg kan ikke binge. Jeg må høre gjennom en episode, så må jeg tenke litt. Så kommer jeg på alle gangene jeg har feilet på dette. Hvordan i all verden skal vi sørge for at vi får til dette. Og noen ting ble jeg satt ut av omfanget. Jeg har forstått det slik at du transkriberer alle podkastene?

Anders: Ja.

Bjørnar: All ære til deg for det. Men det er jo krevende. Hvis vi skal lage tekstversjon av alle podkaster, eller teksting av video.

Anders: Det er en grunn for at ingen gjør det.

Bjørnar: Hvis vi tenker på brukeren. Derfor var det interessant da dere hadde besøk av én som er blind. Når du ser for deg ham, så er det noe annet enn å lage fine tilgjengelige tjenester. Det finnes folk som ikke får brukt disse tjenestene, hvis vi ikke gjør jobben vår.

Anders: Det er det det handler om!

Bjørnar: Det er få ting som er mer motiverende enn det.

Anders: Det er jo litt det vi har prøvd å dra inn i denne sesongen, hvis vi kan kalle det en sesong. Det er menneskene. Vi fant ut at det kjekkeste med den første delen, var da vi hadde besøk.

Stress med BankID på mobil

Anders: Har du noen personlige opplevelser med universell utforming? Har du hatt noen midlertidige eller situasjonsutfordringer selv? Erling hadde litt funksjonsnedsettelser i natt, det ryktes om at det ble litt champagne. Har du noen erfaringer?

Bjørnar: Jeg vet ikke om jeg har noen klare erfaringer. Bortsett fra de gangene der jeg er veldig stresset. Jeg liker godt å ta tog, og er kronisk sent ute. Det medfører utfordringer. Hvilket tog skal jeg på? Jeg skal kjøpe billett og så ligger ikke betalingskort inne. BankID på mobil, da kan det gå en kule varm, da koker det i toppen. BankID på mobil leder jo litt inn til balansegangen mellom sikkerhet og brukeropplevelse. Det er et vanskelig felt. Brukervennlige løsninger som likevel er sikre.

Anders: Hvorfor er BankID på mobil vanskelig?

Bjørnar: Det er ikke vanskelig. Dersom jeg har lagt inn et betalingskort og verifisert det. Nå har bankene kommet med økt sikkerhet. Det dukker opp varsler i appene, fordi bankene i større grad vil ha signering. Nå må jeg signere for hver gang, selv om kortet ligger inne og det er verifisert. Og fortsatt må jeg signere med BankID på mobil. I denne situasjonen er BankID det siste du er interessert i.

Erling: Da blir det en barriere.

Anders: Hvorfor må du gjøre det på togbillett og ikke når du betaler med mobilen på Rema? Hva er forskjellen?

Bjørnar: Godt spørsmål.

Anders: Må du over på BankID på mobil, hver gang på Rema der du tapper som betaling òg nå?

Erling: Når du bruker kort på mobilen eller på klokken, så er det på sett og vis en tofaktor. Eller, det er en énfaktor. Du har det fysiske kortet.

Anders: Nei.

Erling: Nei, du har mobilen da.

Anders: Du har jo mobilen når du kjøper togbillett òg. Jeg ser ikke forskjellen her. Jeg vet ikke.

Bjørnar: Ikke jeg heller. Men det er en evig kamp mellom brukeropplevelse og sikkerhet.

Erling: Jeg tror det sikkerhetsgreiene, i løpet av de neste årene, kommer til å bli veldig mye bedre for brukeren. Dette med brukernavn og passord, det er en veldig dårlig måte å autentisere på. Det er knotete og vanskelig.

Anders: Jeg har akkurat fått meg, jeg pleier å ligge noen år bakpå med mobiler, nå har jeg akkurat fått ny telefon.

Erling: Gralla.

Anders: Den har ansiktsgjenkjenning som autentisering, og jeg må si at det er forhåpentligvis er sikkert, og universelt utformet. De fleste har et ansikt, som forhåpentligvis kan brukes til ansiktsgjenkjenning.

Bjørnar: Helt til vi begynner å gå med maske.

Anders: Hvis det er fint vær og du går med maske og solbriller, da får teknologien noe å bryne seg på.

Erling: Da må det være flere måter å løse det på.

Anders: Når du springer og er for sen til toget, riv ned masken og ta av deg solbrillene.

Lovkrav

Erling: Du sa at vi er på god vei. Bevisstheten har gått opp. Jeg er redd for at det er i mitt ekkokammer. Siden jeg lager podkast med Anders og lytter til podkastene. Jeg får en konstant påminnelse om at det er andre som tenker på det. Har du plukket opp andre steder at det er økt bevissthet rundt det? Fra kunder for eksempel.

Bjørnar: Ikke så mye fra kunder. Dessverre må jeg si, vi må drive det og holde det oppe. Det er ikke alltid at det blir godt mottatt engang. Det krever at vi jobber annerledes, bruker litt mer tid, både design og innholdsproduksjon. Og koder.

Erling: Det er kanskje mange som bare vil at dere skal implementere det. Altså, å gjøre det de har bedt dere om å gjøre, ikke utfordre det.

Bjørnar: Det kan òg være at de ikke forstår poenget. Da må vi forklare hva universell utforming er. Økte lovkrav hjelper jo. Det er vel forskjellige lovkrav for offentlige aktører og private.

Anders: Frem til veldig, veldig nylig så har det vært det samme. EU-direktivet ble vedtatt, det har ikke trådt i kraft. Det kommer til å skape et skille mellom offentlig og privat.

Bjørnar: Det er en hjelp, vil jeg si, til den argumentasjonen, der det kan være aktører som ikke ønsker å bruke den ekstra tiden og pengene på det. Det er lovpålagt, kan vi si. Jeg vet ikke om folk kan bli straffet. Teoretisk kanskje. I praksis, sannsynligvis ikke. Det får en annen tyngde. Det opplever jeg som positivt.

Anders: Jeg vil utfordre den «dessverre». Jeg har aldri sittet på andre siden av bordet. På kundesiden. Jeg tenker at når jeg kjøper en tjeneste fra en profesjonell aktør, så forventer jeg at de forteller meg hva vi må tenke på, og at de utfører et godt håndverk. Og selvfølgelig følger de kravene som finnes.

Bjørnar: Absolutt. Og der er det forskjell på sluttkunde som kanskje ikke har noe fagbakgrunn. Men jeg tenker aller mest på samarbeidspartnere og andre utviklere og designere, som jeg vil forvente …

Anders: Da kommer «dessverre» til sin rett. Da er jeg enige.

Bjørnar: Vi kan ikke forvente at sluttkunde har fokus på det. Der må vi opplyse og forklare. Jeg opplever ikke at de er negative til det.

Argumenter for universell utforming

Erling: Hvilke argumenter bruker du for at det er viktig å gjøre noe universelt utformet?

Bjørnar: Si det. Én innfallsvinkel er at det er et lovkrav. Et annet argument er det mer menneskelige. Vi kan med relativt enkle grep gjøre det ubrukelig til å brukenes for en ganske stor gruppe. Jeg synes det fokuset dere har hatt i podkasten, at det ikke bare er blinde, er bra. Det er mange som er svaksynte, eller har midlertidige funksjonsnedsettelser. Til sammen blir det en relativt stor gruppe, som er viktig å ta vare på. For noen kunder som skal selge et produkt, så er det en egeninteresse å nå et større marked. Der kan det òg være en utfordring, det er fortsatt en minoritet, det er et mindretall. Hvis en er kynisk, kan vi tenke at det ikke er så viktig.

Erling: Vi trekker det kravet.

Bjørnar: Vi treffer den store gruppen. I de tilfellene er det bra med lovkrav. Det er ikke valgfritt å lage tjenester som er tilgjengelige for alle. Det bør være en selvfølge.

Fremtiden

Anders: Har du noen avsluttende ord?

Bjørnar: Du har så vanskelige, åpne spørsmål, Anders.

Anders: Jeg kan godt gi deg ja-nei-spørsmål, hvis du vil ha det litt enklere. Sånn universell utforming, er det viktig det?

Bjørnar: Hehe. Det var litt ledende spørsmål.

Anders: Hva tror du om fremtiden? Se tre år inn i kikkerten.

Bjørnar: Jeg tror ikke det går bakover. Jeg frykter at det ikke går så fort som vi håper. Det er en langsom prosess. Jeg skulle ønske at det gikk fortere.

Erling: Har du noen ideer om hvordan vi kan få det til å gå fortere.

Bjørnar: Podkaster og faglige ressurser som dette, tror jeg er veldig nyttig. Jeg skulle gjerne sett mer bloggartikler, gjerne fra norske designere og utviklere. Det handler litt om hva som blir prioritert. Hva blir snakket om? Det handler om bevissthet. Og så håper jeg at utdanningsinstitusjonene har enda større fokus på det, og at det blir en del av faget. Et fag på lik linje med algoritmer og slikt, for vår del. Det må være en basisferdighet. Og da må det òg være en del av basisverktøykassen som du har når du går ut av studiet.

Stillingsannonser

Erling: Du har en liten kjepphest, Anders. Det er stillingsannonser. Har dere universell utforming med i stillingsannonsene deres?

Bjørnar: Om stillingsannonsene er universelt utformet?

Erling: Om det er et krav.

Bjørnar: Det tror jeg ikke vi har spesifisert.

Anders: Bare gjør det, bare gjør det.

Bjørnar: Javel, jeg skal gjøre det. Jeg anser det for å være en basisferdighet, så jeg forventer at alle frondendere kan det. Det burde ikke være nødvendig å nevne.

Erling: Hvis dere nevner det, så vil alle som søker jobb bli eksponert for det. De skjønner da at det er viktig at de kan det.

Frontendfrontend

Anders: Vi har havnet i en situasjon der en frontend-utvikler ikke er en frontend-utvikler. Erling skiller på noe som er en frontend-utvikler og en frontendfrontend-utvikler.

Erling: Jeg har lyst på et bedre navn.

Anders: Frontend-utvikler for noen år siden, da kunne du de tre kjernespråkene HTML, CSS og JavaScript. I dag kan du være superekspert på et rammeverk, uten å kunne eller bry deg om HTML-en. Jeg tror ikke vi går i feil retning, men dette kan være en faktor som gjør at vi går i feil retning. At vi glemmer …

Erling: Frontendfrontend.

Anders: Nå er det bare kombinasjonen av teknologi, rammeverk og biblioteker som gjør deg til en frontend-utvikler.

Bjørnar: Det er definitivt en fare. Noe av det som har irritert meg av og til, hvis vi bruker React-baserte rammeverk eller Vue eller Angular, så kan du putte onClick-eventer på ting. Det verste jeg ser er hvis folk bruker en span med onClick på.

Erling: I stedet for en a.

Bjørnar: Eller en button.

Anders: Da mener jeg at du ikke kan verktøykassen din.

Bjørnar: Nei. Stemmer. Hvis du bruker vanlig HTML, så blir det ikke klikkbart hvis du ikke bruker de elementene som er ment å være klikkbare. Du får en større frihet med de andre rammeverkene.

Erling: Da er det den grunnkompetansen du snakker om, som må være på plass.

Anders: Jeg er midt i noe slikt nå. Jeg sitter og evaluerer et SAP-verktøy, faktisk. Det er så mye uu-kode, hvis vi kan kalle det det. Det er så mye aria-attributter og greier, og så er det så mye span og onClick. I alle bauer og kanter.

Erling: Jeg er helt enig med deg, Bjørnar. Dette er grunnkompetanse for en frontend-utvikler. Semantisk HTML, det er frontendskolens 101. Skriv semantisk HTML!

Søkemotoroptimalisering

Bjørnar: Du har òg snakket litt om SEO, altså søkemotoroptimalisering, og det er en del overlapp. Hvis du skriver godt universelt utformet kode, så får du søkemotoroptimalisering på kjøpet. Det kan òg være en innfallsvinkel. Dette handler ikke bare om å treffe den lille målgruppen.

Erling: Det er òg å treffe maskinene, Google.

Bjørnar: Det gir nettstedene en super egeninteresse.

Erling: Det ser de verdien av?

Anders: Det går både på kode, og jeg vil òg si at det går på innhold, som du nevnte tidligere. Hvis du klarer å skrive så enkelt at folk forstår det, så vil folk dele det og spre det, men og bli funnet lettere, for da vil det være bedre samsvar mellom det folk leter etter og det innholdet som du faktisk har.

Bjørnar: Stemmer det.

Anders: Knallkjekt. Jeg har lyst å sitte her til i morgen.

Erling: Skal vi det? Tusen takk for at du var med.

Anders: Det var et rungende ja da jeg spurte.

Erling: Sa du ja uten å nøle?

Bjørnar: Jeg tenkte at dette har jeg ikke gjort før, så det må jeg jo.

Erling: Rette holdningen!

Bjørnar: Tusen takk.

Anders: Takk. Lykke til med Grensesnitt-imperiet ditt.

Bjørnar: Tusen takk.

Avslutning

Erling: Det jeg likte godt med samtalen med Bjørnar var optimismen. Han mente at dette var det mer og mer fokus på. Han mente at frontend-utviklere, de måtte bare ha denne kompetansen. Det var ikke et alternativ. Vi spilte inn dette med stillingsannonsen, gjorde vi ikke? Jo. Han mente at det kanskje ikke var nødvendig å skrive i stillingsannonsen, fordi det han skulle forvente det. Du da?

Anders: Når du sier det, så sitter jeg igjen med det samme. Det er kanskje fordi jeg lett blir pessimistisk. Jeg opplever i min hverdag at jeg spiller sånn Whac-A-Mole.

Erling: Du slår ned alle disse småtingene som bare dukker opp igjen.

Anders: Ja. På ny og på ny og på ny og på ny. Jeg er nok mer en pessimist, og da trenger jeg slike som Bjørnar, og høre at de er flinke og leverer godt håndverk. Det er håp der ute!

Erling: Jeg er håpefull! Jeg er jo optimist da.

Anders: Jeg henger meg på deg i dag, i dag har jeg ikke egne meninger.

Erling: Det var jysla kjedelig. Skal du tenke litt mer på det?

Anders: Nei, jeg har en liten mening. Det burde jeg ha tenkt på før. Det er reklamebyråene er en viktig brikke her. De har ikke vært så mye på min radar de seneste årene. Gjennom min karriere har jeg jobbet mye med reklamebyrå, men jeg gjør det sjelden nå. Det var et kjempepoeng, og gleder meg til å snakke med noen reklamefolk.

Erling: Vi har bestemt at vi skal snakke med noen fra reklamebransjen. Det blir gøy. Vi er ferdige. Hvem er du?

Anders: Anders fra Webstep. Hvem heter du, Erling?

Erling: Erling fra Okse.