WEEKLY NERD 1

Kilian Valkhof

Kilian Valkhof is een veelzijdige front-end developer en user experience designer, met een brede interesse in alles wat de gebruikerservaring beïnvloedt — van back-end tot devops. Hij omschrijft zichzelf het liefst als een "user experience developer", maar werd ooit treffend een "strange generalist" genoemd, wat ook goed bij hem past. Kilian bouwt tools die ontwerpers en ontwikkelaars helpen effectiever en met meer plezier te werken aan het web. Hij schrijft regelmatig over toegankelijkheid, design tools en zijn visie op het web. Daarnaast is hij actief binnen het Electron governance team en deelt hij zijn kennis graag via blogs en lezingen. Zijn professionele uitvalsbasis is Firstversionist.

kilian_valkhof face

Rule of least Power

Van de drie webtalen is JavaScript het meest gevoelig voor fouten, gevolgd door CSS, terwijl HTML doorgaans het meest stabiel en betrouwbaar is. Dit past goed bij het principe van progressive enhancement, waarbij een website in de basis functioneel blijft, zelfs als geavanceerde functies uitvallen. Het idee is dat je vanaf een solide fundament werkt en geleidelijk extra lagen toevoegt. Er bestaat een treffend gezegde: “Wat je eenmaal geleerd hebt, hoef je niet opnieuw te leren.” In webontwikkeling betekent dat vaak dat wat je vandaag bouwt, morgen nog steeds werkt. Toch verandert de technologie voortdurend. Wat nu de standaard is, kan morgen verouderd zijn. Daarom loont het om steeds op zoek te gaan naar slimmere, efficiëntere manieren om hetzelfde doel te bereiken.

custom switches

Custom switches kun je heel goed maken met een standaard <inputtype="checkbox">. Door appearance: none toe te passen, haal je de standaard browserstijl weg en kun je de checkbox volledig zelf stijlen — bijvoorbeeld als een aan/uit-schakelaar.

Het voordeel is dat de checkbox nog steeds werkt zoals bedoeld: hij is toegankelijk, werkt in formulieren, en je kunt via :checked eenvoudig reageren met CSS of JavaScript. Zo combineer je flexibiliteit in design met goede gebruikerservaring en functionaliteit.

overal:

Begin bij het maken van webinterfaces altijd met HTML – de minst krachtige maar meest robuuste taal. Vanuit daar kun je uitbreiden met CSS en eventueel JavaScript. Er zijn veel handige technieken om het meeste uit HTML en CSS te halen.

Zo kun je bijvoorbeeld een checkbox gebruiken als basis voor een custom switch. Door appearance: none toe te passen, haal je de standaard stijl weg en kun je het element volledig zelf vormgeven als een aan/uit-schakelaar met animaties en kleurveranderingen.

Met de :checked-selector kun je reageren op de status van een input, wat heel krachtig is in combinatie met visuele veranderingen. Daarnaast kun je met accent-color de standaardkleur van formulierelementen zoals checkboxes, sliders en radio-buttons aanpassen.

Als je werkt met ankers en vaste headers, dan is scroll-margin-top: 100px; erg handig. Hiermee voorkom je dat een doel-element tegen de bovenrand van het scherm geplakt zit wanneer je er naartoe scrolt.

Wil je visueel aangeven waar iemand naartoe is gesprongen op een pagina? Dan kun je gebruikmaken van :target, gecombineerd met een outline en een transition voor een vloeiende overgang. Zo wordt het gelinkte element tijdelijk geaccentueerd.

Voor geanimeerde elementen zoals een <dialog> kun je met @starting-style bepalen hoe het element er uitziet vóór de animatie begint. Dit geeft meer controle over het startpunt van transities, zoals bijvoorbeeld een lagere opacity of een kleinere schaal.

Met de nieuwe :has()-selector kun je CSS logica toevoegen die vergelijkbaar is met een "if-statement". Bijvoorbeeld: form:has(input:checked) geeft je de mogelijkheid om stijlen toe te passen op een element, afhankelijk van de inhoud. Dit opent veel nieuwe ontwerpopties zonder JavaScript.

Tot slot kun je met ::picker en appearance: base-select; in Chrome de dropdown van een <select> zelf stylen. Zo kun je afwijken van de standaard verticale weergave en bijvoorbeeld een meer horizontale layout maken.

WEEKLY NERD 2

Kars Alfrink

Kars Alfrink is ontwerper en onderzoeker op het snijvlak van technologie, samenleving en spel. Hij promoveerde aan de TU Delft op het thema contestable AI, waarbij hij onderzoekt hoe kunstmatige intelligentie zó ontworpen kan worden dat burgers er actief invloed op kunnen uitoefenen. Met een achtergrond in interaction design en ervaring in zowel de creatieve industrie als de academische wereld, combineert Alfrink praktijkgericht denken met kritisch onderzoek. Zijn werk richt zich op het ontwikkelen van publieke, betwistbare technologie die sociale waarden centraal stelt.

Kars Alfrink face

Onderdeel 1: Definiëren van Contestable AI

Contestable AI betekent het gebruik van data-analyse en verwerking, aangepast op basis van feedback, om beleid in de publieke sector te ondersteunen, te beargumenteren of te automatiseren.

Publieke AI-systemen hebben invloed op de autonomie van mensen. Hiervoor zijn twee belangrijke voorwaarden:

  • Accurate overtuigingen (accurate beliefs)
  • De mogelijkheid om naar eigen plannen te handelen (act on your plans)

Dit betekent dat er veel onderzoek en testen nodig zijn om betrouwbare systemen te ontwikkelen.

Contestable AI is tegenwoordig een belangrijk onderwerp. Het verwijst naar AI-systemen die maatschappelijke, ethische of juridische discussies oproepen. Deze systemen krijgen vaak kritiek vanwege vooringenomenheid, gebrek aan transparantie of schending van privacy. Ook nemen ze soms beslissingen zonder duidelijke uitleg.

ContestableAI

Onderdeel 2: Ontwerpen van Contestable AI

Het doel is om Contestable AI-systemen te maken die betwistbaar zijn. Dit betekent dat menselijke tussenkomst en bezwaar mogelijk zijn. Gebruikers kunnen beslissingen van het systeem beter begrijpen en corrigeren wanneer dat nodig is.

Bijvoorbeeld: je krijgt een boete omdat een flitspaal registreert dat je je telefoon aan het stuur had. In werkelijkheid zat de telefoon vastgeplakt aan je raam voor navigatie. Met een contestable AI-systeem kun je deze fout aanvechten en corrigeren.

Belangrijke ontwerpprincipes

  • Interactieve controles: Meer controle voor gebruikers, omdat AI niet altijd het volledige verhaal kent.
  • Verzoek tot interventie:
    • Een mens is het oneens met een AI-beslissing
    • Er zijn kanalen om de beslissing te heroverwegen
    • Een menselijke controller heroverweegt en moet reageren
    • Dialoog tussen controller en gebruiker als arena voor debat
  • Monitoren en signaleren: Patronen herkennen en mensen waarschuwen voor mogelijke heroverweging.

Instrumenten voor toezicht

  • Algoritmenregister
  • Derde partijen worden geïnformeerd over het AI-systeem
code voor kassa bon

Mening:

Ik heb persoonlijk helemaal geen interesse in AI, wat ik eigenlijk moet ik die wel hebben omdat het wel onze toekomst is. Maar ik vond dit eigenlijk best wel interessant om te horen! Ik vind het ook echt belangrijk dat het contestable AI door moet worden gevoerd, omdat je ten eerste ook echt mensen nodig hebt als 'third party' en er zit altijd veel fouten in de contested AI, want er wordt nooit uitgelegd in hun conclusies. Dit kan nare/negatieve gevolgen hebben.

WEEKLY NERD 3

Cassie Evans

Cassie Evans is een creatieve ontwikkelaar en educator gespecialiseerd in webanimatie en motion design. Ze werkt als Lead Bestower of Animation Superpowers bij GreenSock, waar ze ontwikkelaars inspireert en onderwijst in het gebruik van animaties op het web. Cassie is een ervaren spreker op internationale conferenties en organiseert workshops om diversiteit en inclusiviteit in de techwereld te bevorderen. Met haar werk richt ze zich op toegankelijke, speelse en functionele gebruikersinterfaces.

Cassie Evans face

GSAP (GreenSock Animation Platform) is een krachtige JavaScript API waarmee je vrijwel alles op een website kunt animeren. Tijdens de presentatie heeft Cassie Evans vooral met code gewerkt om te laten zien hoe veelzijdig GSAP is. Hieronder vind je een overzicht van enkele veelgebruikte functies en voorbeelden:

Basisanimaties

  • gsap.to(".box", {duration: 1, x: 918}): Animeren van een element met de class box naar een horizontale positie van 918 pixels binnen 1 seconde.
  • let tl = gsap.timeline(); tl.to(".box", {duration: 1, x: 918});: Een timeline aanmaken waarin je meerdere animaties kunt combineren en achter elkaar afspelen.

Utility functies

  • gsap.utils.random(-100, 100): Geeft een willekeurig getal tussen -100 en 100.
  • gsap.utils.random(["red", "blue", "green"]): Selecteert willekeurig een kleur uit de lijst.
  • gsap.utils.mapRange(0, innerWidth, -50, 50): Zet een waarde van het ene bereik (bijvoorbeeld 0 tot schermbreedte) om naar een ander bereik (bijvoorbeeld -50 tot 50).
  • gsap.utils.wrap(["red", "green", "blue"]): Zorgt ervoor dat je door een array kunt bladeren, en bij het einde weer bij het begin begint.
  • gsap.utils.wrapYoyo(): Vergelijkbaar met wrap, maar wisselt ook de richting (zoals een 'pingpong'-effect).
  • gsap.utils.pipe() en gsap.utils.snap(): Geavanceerde functies om waarden te transformeren of naar dichtstbijzijnde 'snap'-punten te brengen.

Media Queries

  • gsap.matchMedia(): Hiermee kun je animaties aanpassen op basis van schermgrootte of andere media queries, vergelijkbaar met CSS media queries maar dan voor animaties.

Animatiebesturing

  • play(): Start of hervat de animatie.
  • pause(): Pauzeert de animatie.
  • resume(): Zet de animatie voort na pauze.
  • reverse(): Draait de animatie om.
  • restart(): Start de animatie opnieuw vanaf het begin.

WEEKLY NERD 4

Jeremy Keith

Jeremy Keith is een webontwikkelaar, auteur, spreker en muzikant uit Brighton, Engeland. Hij is mede-oprichter van het ontwerp- en ontwikkelbureau Clearleft, opgericht in 2005. Daarnaast is hij bekend van zijn boeken, zoals HTML5 for Web Designers, en zijn blog op Adactio.com, waar hij regelmatig schrijft over webstandaarden, technologie en cultuur. Jeremy speelt ook traditionele Ierse muziek op de mandoline en bouzouki in de indieband Salter Cane. Hij is actief in de gemeenschap als coach bij Codebar Brighton en organisator van de Homebrew Website Club in Brighton.

jeremy keith face

Imperative Programming

Imperative programming werkt door het stapsgewijs geven van instructies, zoals in JavaScript:

  • Maak een Array van items;
    const items = ['amsterdam', 'rotterdam', 'utrecht'];
  • Loop through each item
    for (let i = 0; i < items.length; i++) { console.log(items[i]); }

Voorbeeld: Met JavaScript laat je een div zich gedragen als een button.

Imperative > JavaScript > div acts like a button

<div id="fakeButton" tabindex="0" role="button">Klik hier</div>

Jeremy Keith zei: "JavaScript should only do what JavaScript can do."

Met andere woorden: als iets al op een semantische en toegankelijke manier kan in HTML (zoals een <button> gebruiken), dan is dat meestal beter dan het helemaal in JavaScript nabouwen.

Als je iets helemaal zelf bouwt, heb je totale controle.

Declarative Programming

Declarative programming richt zich op het beschrijven van wat er moet gebeuren, zoals in HTML:

  • Declarative > HTML > button element

CSS tips voor makkelijk responsive design:

Met padding-inline-start wordt de padding links ingesteld, maar als de leesrichting van rechts naar links is, draait dit automatisch om — inclusief ondersteuning voor verschillende talen.

Voor responsive font sizes kun je bijvoorbeeld gebruiken:

  • font-size: calc(0.5rem + 0.666vw);
  • font-size: clamp(1rem, 0.5rem + 0.666vw, 1.5rem);

Utopia.fyi is een handige tool voor het maken van schaalbare, responsive designs. Je kunt er typografieschalen, spacing en lay-outsystemen genereren die zich automatisch aanpassen aan de schermgrootte. Zo beweegt je ontwerp soepel mee van een klein mobiel scherm tot een groot desktopscherm, zonder harde breekpunten of onnatuurlijke sprongen.

Utopia maakt gebruik van moderne CSS-functies die je veel flexibiliteit geven:

  • calc(): Hiermee kun je waarden combineren, bijvoorbeeld:
    font-size: calc(1rem + 0.5vw); past lettergrootte aan op basis van viewportbreedte.
  • clamp(): Stelt een minimum-, voorkeurs- en maximumwaarde in. Voorbeeld:
    font-size: clamp(1rem, 2vw, 2rem); zorgt dat tekst schaalt maar nooit te klein of te groot wordt.
  • min() en max(): Geeft respectievelijk de kleinste of grootste waarde terug tussen meerdere opties.
    Bijvoorbeeld: width: min(100%, 600px); houdt het element maximaal 600px breed.
  • fit-content(): Laat een element zo groot worden als de inhoud vereist, tot een maximum.
  • min-content en max-content: Handig bij het bepalen van breedtes gebaseerd op inhoud.
  • repeat(): Wordt veel gebruikt in grid layouts, zoals
    grid-template-columns: repeat(3, 1fr); voor drie gelijke kolommen.
  • minmax(): Combineert minimale en maximale grenzen voor flexibele grids.
    Bijvoorbeeld: grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));

Door deze functies slim te combineren maak je websites die mooi en leesbaar blijven op ieder schermformaat, zonder ingewikkelde media queries.

Is declarative beter dan imperative?

Wat is het verschil tussen declarative en imperative?

Bij imperative programming leg je stap voor stap uit hoe je iets wilt laten gebeuren. Je richt je op het proces en de manier waarop iets uitgevoerd wordt. Bij declarative programming geef je juist aan wat je wilt bereiken, en laat je het systeem bepalen hoe dat gedaan wordt. Je focust dus meer op het gewenste resultaat.

De belangrijkste verschillen zijn:

  • Imperative: Je bepaalt hoe je het doel bereikt.
    Declarative: Je bepaalt wat je wilt bereiken.
  • Imperative: Je beheert alle stappen zelf.
    Declarative: Het systeem beheert de uitvoering van de stappen.
  • Imperative: Je schrijft vaak meer code, omdat je alles stap voor stap moet beschrijven.
  • Imperative: Er is meer kans op fouten door de complexiteit.
    Declarative: Minder kans op fouten, maar soms ook minder controle en flexibiliteit.

Welke aanpak beter is, hangt sterk af van de situatie en het doel dat je voor ogen hebt.

WEEKLY NERD 5

Julia Miocene

Julia Miocene is een creatieve front-end developer en designer die zich specialiseert in het verkennen van de grenzen van CSS. Ze combineert technische precisie met artistieke expressie en maakt indrukwekkende visuele experimenten zonder gebruik van afbeeldingen of JavaScript. Haar werk laat zien wat er mogelijk is met puur CSS en dient als inspiratie voor webontwikkelaars en ontwerpers wereldwijd.

Julia Miocene face

basic informatie over de weekly nerd presentatie:

Tijdens haar presentatie liet ze vooral voorbeelden zien van haar werk, waarbij ze haar code voor een indrukwekkende animatie deelde. Wat opvallend is, is dat ze alles met pure CSS heeft gedaan, zonder gebruik te maken van JavaScript of andere technieken. Ze gebruikt best wel zware CSS-technieken — zoals complexe keyframe-animaties, 3D-transformaties en misschien ook filters en geavanceerde selectors — die normaal gesproken niet altijd worden aangeraden vanwege performance en onderhoudbaarheid. Eigenlijk zou je dit soort zware CSS niet zo vaak moeten toepassen in een project, omdat het de browser kan belasten en de laadtijd kan vertragen. Maar zij kiest er bewust voor om het toch te doen, juist om te laten zien wat er mogelijk is met CSS alleen. Door zo “out of the box” te denken en deze uitdagende technieken toe te passen, heeft ze zichzelf gedwongen om echt diep in CSS te duiken. Inmiddels kent ze alle ins en outs van CSS heel goed. Nu ze die moeilijke en zware technieken onder de knie heeft, kan ze ook de “makkelijke” dingen heel goed en efficiënt toepassen. Haar kennis van CSS is daardoor erg breed en ze kan creatief uitpakken met wat CSS kan doen.

Mening:

Ik had niet door dat dit een WeeklyNerd-presentatie was en ik was bovendien te laat, waardoor ik het eerste deel heb gemist. Toen ik er eenmaal was, heb ik goed geluisterd, maar geen aantekeningen gemaakt of foto's genomen, omdat ik niet wist dat zij de WeeklyNerd was. Het werk dat ze liet zien vond ik erg indrukwekkend. Vooral het namaken van bijvoorbeeld die mug, waarbij elk onderdeel een aparte, vloeiende animatie krijgt, lijkt me ontzettend veel werk. Ik denk dat ik haar tips zeker kan gebruiken in mijn eigen projecten.

WEEKLY NERD 6

basic informatie over de weekly nerd presentatie:

Een hacker is iemand die vaardig is in informatietechnologie en vaak creatieve en efficiënte oplossingen zoekt voor technische problemen.

  • KISS (Keep It Simple, Stupid): Houd je code en oplossingen zo eenvoudig mogelijk. Complexiteit maakt systemen moeilijker te begrijpen, onderhouden en debuggen.
  • Learn By Trying: De beste manier om te leren is door dingen zelf uit te proberen. Experimenteren en fouten maken horen bij het leerproces van elke hacker.
  • Bash kan een uitdaging zijn: Werken met de command line en shell scripting vereist oefening en geduld, maar het is een krachtig hulpmiddel voor automatisering en probleemoplossing.
  • YAGNI (You Aren't Gonna Need It): Bouw alleen wat je echt nodig hebt, en voorkom onnodige functionaliteiten die je project ingewikkelder maken zonder direct voordeel.
  • DRY (Don't Repeat Yourself): Vermijd duplicatie van code of logica. Dit maakt je codebase overzichtelijker, gemakkelijker te onderhouden en minder foutgevoelig.
presentatie hackwers rosa

Mening:

Helaas heb ik weinig kunnen meenemen uit deze WeeklyNerd-presentatie, omdat het begin met verschillende voorbeelden voor mij niet helemaal duidelijk was, waardoor ik de draad kwijt raakte.

Daarnaast wilde ze een demonstratie geven met een apparaat dat geen prettig geluid maakte. Dit geluid vond ik storend, waardoor mijn concentratie kwijt raakte en ik me vooral geïrriteerd voelde. Daarom heb ik deze presentatie weinig nieuwe inzichten opgeleverd gekregen.

WEEKLY NERD 7

Niels Leenheer

Niels Leenheer is een Nederlandse webtechnologie-expert met een passie voor open standaarden en browserinnovatie. Hij is bekend van projecten zoals HTML5test.com en WhichBrowser, en spreekt regelmatig op internationale conferenties zoals FOSDEM en HalfStack. Daarnaast is hij actief als Mozilla TechSpeaker en Google Developer Expert voor het web. Momenteel is hij CTO bij Salonhub, waar hij webapplicaties ontwikkelt voor de kappersbranche. Niels is ook betrokken bij de organisatie van de Fronteers-conferentie.

Niels Leenheer face

Wat is Project Fugu?

Project Fugu is een initiatief van Google dat webtechnologie uitbreidt met krachtige API's, waardoor webapplicaties rechtstreeks toegang krijgen tot hardware zoals printers, scanners en pinapparaten. Dit maakt het mogelijk om geavanceerde kassasystemen volledig in de browser te bouwen.

Kassasystemen met webtechnologie

Niels Leenheer ontwikkelt zulke kassasystemen, bijvoorbeeld voor kapperszaken, die gebruikmaken van Electron voor desktop-apps en Progressive Web Apps die ook op Android-tablets werken. Met Project Fugu API's kunnen deze systemen communiceren met verschillende apparaten zoals bonprinters, barcode scanners, klantendisplays en mobiele pinapparaten.

Communicatie met bonprinters

Bonprinters worden vaak via USB verbonden en communiceren via ASCII-commando's, een verouderde standaard die inmiddels langzaam wordt vervangen door Unicode. Omdat elke printer een eigen 'taal' spreekt, is maatwerk nodig om ze aan te sturen. Moderne web API's zoals WebSerial en WebBluetooth bieden een betrouwbaardere en eenvoudiger manier om deze communicatie te regelen.

Klantschermen en barcode scanners

Klantschermen werken meestal met het oudere ESC/POS-protocol, maar kunnen via WebSerial ook modern worden aangestuurd. Barcode scanners gedragen zich als toetsenborden en sturen de gescande codes plus een enter-toets door; deze worden uitgelezen met behulp van WebHID of via webcam-modules die barcodes en QR-codes herkennen via een canvas en web workers.

Open source en de toekomst van kassasystemen

Dankzij het open source werk van Niels hoeven ontwikkelaars het wiel niet opnieuw uit te vinden en kunnen ze gemakkelijk moderne, op webtechnologie gebaseerde kassasystemen bouwen die soepel samenwerken met randapparatuur. Dit opent nieuwe mogelijkheden voor flexibele, browsergebaseerde kassasystemen in verschillende branches.

presentatie iO digital

Mening:

Hoewel ik het werk van Niels Leenheer technisch interessant vond, zoals het gebruik van webtechnologie om kassabonnen te printen en het werken met ongebruikelijke protocollen, sprak het onderwerp mij persoonlijk minder aan. Het idee dat je een kassa kunt bouwen met web-API's was knap, en het liet zien hoe ver webtechnologie inmiddels reikt, maar het raakte niet echt mijn interesses. Wie weet komt het ooit nog van pas, maar voor nu is het niet iets dat mij is bijgebleven.

WEEKLY NERD 8

Erik Kroes

Erik Kroes is een consultant uit Nederland, gespecialiseerd in toegankelijkheid, inclusief design en design systems. Hij heeft ruime ervaring als toegankelijkheidsspecialist en product owner, onder andere bij ING, IKEA en Nomensa. Erik combineert zijn expertise graag om samen met klanten passende oplossingen te creëren. Naast zijn werk besteedt hij tijd aan zijn familie en persoonlijke projecten zoals fotografie, tuinieren en creatieve programmering. Wil je samenwerken of meer weten? Hij staat open voor nieuwe uitdagingen en contacten.

Erik Kroes logo

Keyboard is beter voor iedereen!

Probeer het zelf eens op je computer: gebruik de Tab-toets om door de pagina te navigeren en Shift + Tab om terug te gaan. Dit maakt websites toegankelijker voor iedereen, niet alleen voor mensen die een schermlezer gebruiken.

  • Geen skip link

    Veel websites missen een “skip link” waarmee gebruikers direct naar de hoofdinhoud kunnen springen, bijvoorbeeld om de navigatie over te slaan. Dit zorgt voor frustratie en onnodig veel navigeren.

  • Ongecontroleerde focusstatus

    De focus moet altijd duidelijk zichtbaar zijn, zodat gebruikers precies weten waar ze zich op de pagina bevinden. Ongecontroleerde of ontbrekende focus leidt tot verwarring.

  • Onjuist gebruik van elementen

    Soms worden <div>-elementen gebruikt als knoppen in plaats van het juiste <button>-element. Dit zorgt ervoor dat schermlezers en toetsenbordgebruikers deze elementen niet goed kunnen bedienen.

  • Contrast

    Een goed contrast tussen tekst en achtergrond is cruciaal, vooral bij fel licht of buitengebruik. Het zorgt ervoor dat iedereen, ook mensen met verminderd zicht, de inhoud goed kan lezen.

Hoe test je contrast?

De contrastverhouding moet minimaal 3:1 zijn voor grote teksten en 4.5:1 voor kleine teksten. Dit is het absolute minimum om voldoende leesbaarheid te garanderen.

Andere veelvoorkomende problemen en tips voor alternatieven

  • Plaatsing van placeholdertekst

    Gebruik de placeholder niet als enige label; zet altijd een label boven het invoerveld. Zo begrijpen gebruikers wat ze moeten invullen, ook als de placeholder verdwijnt tijdens het typen.

  • Brandingkleuren en statusindicatoren

    Zorg dat kleuren niet de enige manier zijn om informatie of status over te brengen. Voeg bijvoorbeeld iconen of tekst toe, zodat iedereen het begrijpt.

  • Alternatieven voor media

    • Voeg ondertiteling toe aan video's, zodat slechthorenden mee kunnen kijken.
    • Bied transcripten aan voor podcasts en audiofragmenten, zodat de inhoud ook gelezen kan worden.
    • Voeg alt-teksten toe aan afbeeldingen met een beschrijving die de inhoud en functie van de afbeelding duidelijk maakt.

Veelvoorkomende valkuilen bij media en interactie

  • Afbeeldingen die in knoppen gebruikt worden, missen vaak een goede alt-tekst, waardoor schermlezers niet weten wat de knop doet.
  • Video’s zonder closed captions sluiten een grote groep gebruikers uit.
presentatie iO digital

Mening:

Ik vind zelf dat CMD altijd heel erg richt op de accesibility van het bouwen van websites. Ook vind ik dit super goed wat ze doen, omdat het wel belangrijk is. Alleen om het altijd over dezelfde dingen te hebben, vind ik super onnodig want de meeste dingen zijn mij al verteld in afgelopen jaren en zelfs deze minor. Ik heb de tweede Gesprek met Nienke gemist dus daar kan ik niks over vertellen.

Over de Closed Captions voor ik wel een goed punt, want ik heb daar ook te maken gehad als ik iets keek wat in een andere taal was en boden ze geen engelse of nederlandse captions. Dit vind ik zelf ook vervelend en ik begrijp ook echt waar ze vandaan komen ( net zoals de alternatieve teksten voor de images, want die kloppen ook meestal niet). Ik vind zeker dat er meer mensen hier aan moeten houden en een verbeterde wereld van maken. Inclusiviteit is belangrijk en zeker nu een ding op de wereld.

WEEKLY NERD 9

Dave Bitter

"Wij blenden marketing, technologie en creativiteit."

“Experience is everything”, De ervaring die een gebruiker met een merk heeft, bepaalt hoe sterk dat merk is én hoe succesvol de business daarachter wordt.

Van digitale nomaden tot veeleisende “always-on” gebruikers: de gemiddelde schermtijd ligt inmiddels boven de vijf uur per dag. Deze gebruikers verwachten dat elk digitaal contactmoment soepel, intuïtief en betekenisvol is. Daarom creëren wij touchpoints voor álle interacties in het dagelijks leven.

We zien de digitale klantreis als één samenhangende beweging:

Digital identity → Social conversation → Oriëntatie & informatie → Online aankoop → Aftercare → Self-service

Alles hangt met elkaar samen. Merken moeten over al deze fases heen één consistente, herkenbare ervaring bieden. Alleen dan ontstaat er echte merkvoorkeur en loyaliteit.

Hoe wij overal in zitten

Wij geloven in het combineren van expertises. Door technologie, design en consultancy met elkaar te verweven, helpen we onze klanten om relevant te blijven in een steeds veranderend digitaal landschap.

We ondersteunen uiteenlopende organisaties bij verschillende vraagstukken – van digitale strategie en user experience tot technologische implementaties en AI-experimenten. Voor elke klant leveren we maatwerk dat inspeelt op hun doelgroep, markt en ambities.

Laika

Vanuit ons kantoor in Zweden werken we aan innovatieve projecten die de grenzen van technologie en ethiek opzoeken. Een daarvan is Laika, een AI-personage dat volledig is opgevoed door sociale media.

Laika is getraind op TikTok-content en leeft in een digitale bubbel waarin alleen algoritmes bepalen wat ze ziet, leert en gelooft. Ze is een weerspiegeling van een generatie die opgroeit met likes, filters en eindeloze content.

The Rise of AI-Powered Voice Interfaces

Naast visuele ervaringen verschuift de aandacht steeds meer naar spraakinterfaces. De manier waarop mensen met machines communiceren, verandert drastisch.

Waar spraakherkenning in de jaren ’50 begon als experimenteel, is het nu volledig geïntegreerd in ons dagelijks leven:

  • 1970–1980: Herkenning van losse woordjes
  • >
  • 1990: Eerste prompts
  • >
  • 2000: Zoekbalken met voice-input
  • >
  • 2010: De opkomst van Alexa en Siri
  • >
  • 2020’s: Teams, Meet en meer – voice is genormaliseerd
“ChatGPT is cool… but we can make it awesome.”

PresiParrot: Spraak als Webinterface

Met het project PresiParrot hebben we onderzocht hoe we het web kunnen gebruiken om voice-gestuurde AI toegankelijker en natuurlijker te maken. We combineren:

  • Speech recognition
  • ChatGPT API
  • Web speech synthesis

Hoe werkt het?

De browser ondersteunt tegenwoordig krachtige spraakherkenning (via window.SpeechRecognition). Bij het herkennen van spraak zijn er twee hoofdgebeurtenissen: onresult en onend. Met minimale code kun je al indrukwekkende resultaten bereiken.

Spraaksynthese

Kies een stem en geef je AI een herkenbare, menselijke klank. Gebruik tools zoals ElevenLabs om hoogwaardige audio te genereren. Geef de AI ook een persoonlijkheid én visuele feedback, bijvoorbeeld door animatie wanneer ze “luistert”.

Steve Jonk - Introductie

Het project werd geboren vanuit een praktische behoefte: een klant (in dit geval een OnlyFans-account) wilde op grote schaal meer volgers genereren via Twitter. Steve zette zichzelf het volgende doel: een bot bouwen die op geautomatiseerde wijze Twitter-accounts kan volgen en ontvolgen en daarbij slim gebruikmaakt van de beschikbare tools en infrastructuur.

Tools

Om dit project te realiseren, gebruikte Steve een reeks krachtige tools:

  • n8n voor workflow-automatisering
  • Puppeteer voor browserautomatisering
  • Twitter API voor data-interactie
  • PostgreSQLals database
  • Docker voor containerisatie
  • Ubuntu als serveromgeving

Deze combinatie maakte het mogelijk om het volledige proces, van data ophalen tot automatisch handelen, end-to-end te automatiseren en beheren.

Obstakels

Zoals bij veel technische projecten, ging ook dit traject niet zonder slag of stoot. Steve kwam meerdere obstakels tegen die creatieve oplossingen vereisten.

1. Automatisch volgen is geblokkeerd door Twitter

Twitter beperkt actief het automatisch volgen en ontvolgen van accounts. Om dit te omzeilen, implementeerde Steve verschillende ‘menselijke’ tactieken:

  • Acties werden uitgevoerd met willekeurige tijdsintervallen, zowel op micro- als macroniveau.
  • Het gedrag van de bot werd gesimuleerd als dat van een echte gebruiker.
  • Wanneer de API een foutmelding gaf, wachtte het systeem een willekeurige tijd voordat het opnieuw probeerde.

2. Twitter API is zeer beperkt zonder betaalde toegang

De standaard, gratis toegang tot de Twitter API bleek te beperkt:

  • Je kunt geen volledige lijsten met volgers ophalen.
  • Er is een limiet van slechts één actie per tien minuten.
  • Slechts 10% van de beschikbare API-endpoints zijn bruikbaar.

3. Scraping op Twitter brengt nieuwe uitdagingen met zich mee

Ook het scrapen van de Twitter frontend bleek geen eenvoudige opgave:

  • De frontend toont niet automatisch alle volgers. Steve moest netwerkverzoeken onderscheppen en gebruikmaken van de ‘cursor’ in de response om door te pagineren naar de volgende batches.
  • Om toegang te krijgen tot volgersinformatie moest er ingelogd worden. Daarom werd een login-automatisatie gebouwd en werden inloggegevens veilig opgeslagen als secrets.
  • De Ubuntu-server waarop het draaide, heeft geen standaard display. Om Puppeteer goed te laten functioneren, werd gebruik gemaakt van Xvfb om een virtueel display te simuleren.

“What if we could ship software that just works?” - Clarke Verdel

Die vraag vormt de basis van Clarkes benadering. Want hoe zorg je ervoor dat de code die jij schrijft niet alleen werkt op jouw machine, maar ook in productie, op schaal, in meerdere landen, door meerdere teams?

voorbeeld - MIELE

Miele beschikt over een eigen design system waarin herbruikbare UI-componenten worden ontwikkeld. Een concreet voorbeeld daarvan is de MieleAutocomplete. Deze component moet stabiel, voorspelbaar en consistent functioneren – in elk land, in elke taal, op elk apparaat.

Daarom is het essentieel om automatisering toe te passen in het testproces van zulke componenten.

De Testing Pyramide

Clarke gebruikt de bekende testing-pyramide als referentiemodel voor het bepalen van teststrategieën. De piramide bestaat uit vier lagen:

  • Static tooling
  • Component/unit testing
  • Integration testing
  • End-to-end testing

Hoe hoger je in de piramide komt, hoe duurder en trager de tests – maar ook hoe realistischer en waardevoller. De hoeveelheid tests die je schrijft, is direct gerelateerd aan de complexiteit van de component. Hoe complexer het gedrag, hoe meer tests er nodig zijn op meerdere niveaus.

Static Tooling

De eerste laag bestaat uit statische tools die fouten al opsporen vóórdat de code wordt uitgevoerd:

  • Linting:met tools zoals ESLint worden syntax- en stylefouten automatisch opgespoord.
  • JavaScript Type Checking: aanvankelijk via tools zoals Flow.
  • TypeScript tegenwoordig dé standaard bij Miele X. TypeScript biedt typeveiligheid en verkleint de kans op runtime-fouten.

Teststrategie in de praktijk

Clarke benadrukt dat het bij frontend development niet draait om zoveel mogelijk testen, maar om de juiste balans. Gebruik eenvoudige, snelle tools in de basis (zoals linters en type checkers), en voeg pas zwaardere tests toe als de complexiteit toeneemt. Zo houd je de codebase gezond, de tests snel én betrouwbaar.

presentatie iO digital

Mening:

Ik vond dit echt een leuke Weekly Nerd, vooral omdat we op bezoek gingen bij een bedrijf. Het was interessant om te horen wat zij daar precies doen en aan welke projecten ze werken. Zo kregen we een goed beeld van wat ons in de toekomst te wachten staat als we straks zelf gaan werken.

Van de drie presentaties vond ik die over voice recognition het leukst. Het is echt een toffe technologie om mee te werken – ook al heb ik het zelf nog nooit gebruikt, lijkt het me heel krachtig en creatief inzetbaar.

Bij het onderdeel over testing was ik er eerlijk gezegd niet helemaal bij met mijn aandacht. Ik had andere dingen aan mijn hoofd, dus ik heb er minder van meegekregen dan ik zou willen. Achteraf gezien had ik daar misschien toch wat beter op moeten letten, omdat ik wel besef dat het een belangrijk onderdeel is binnen development.

Voor volgend jaar zou ik zeggen: meer Weekly Nerds op locatie bij bedrijven! Dat maakt het veel concreter en inspirerender.

WEEKLY NERD 10

Q42

Q42 is een digitaal bureau dat sinds 2000 innovatieve digitale producten ontwikkelt. Ze hebben als missie om het leven van mensen makkelijker én leuker te maken. Inmiddels werken er ruim 100 mensen, waarvan meer dan 80 als ontwikkelaar. Sinds 2022 is Q42 ook lid van EIDRA – de European Inclusive Design and Research Association.

Ze werken onder andere voor grote namen zoals HEMA,Philips Hue, Het Rijksmuseum, Wie is de Mol, en Hack the Planet.

Wat Q42 typeert, is hun sterke focus op:

  • Toegankelijkheid
  • Strijd voor de eindgebruiker
  • Innovatie als kernwaarde
Q42 logo

European Accessibility Act (EAA)

Vanaf 28 juni 2025 treedt de European Accessibility Act officieel in werking. Deze wetgeving verplicht digitale producten en diensten binnen de EU om toegankelijk te zijn voor iedereen – inclusief mensen met een beperking. Dit betekent dat organisaties verplicht worden om hun websites, apps en digitale documenten aan te passen aan toegankelijkheidsrichtlijnen.

Project 1: senseMath

Een van de projecten waar Marvin aan heeft gewerkt is senseMath. Dit is een applicatie die wiskundige functies vertaalt naar geluid. De app is bedoeld om wiskunde ook voor mensen met een visuele beperking toegankelijk te maken.

Hieruit blijkt hoe belangrijk de structuur van een applicatie is. Vooral de koppenstructuur (headers) speelt een grote rol in toegankelijkheid. Een goede structuur maakt het voor screenreaders mogelijk om de content logisch voor te lezen en te navigeren, wat essentieel is voor gebruikers die niet visueel kunnen waarnemen.

Project 2: Oculi Mundi

Het tweede project, Oculi Mundi, is een digitale wereld gebaseerd op een kunstcollectie. De insteek van het project is opvallend: “Ik wil niet dat mensen doorhebben dat ze op een website zitten.” Het doel is om de ervaring zo meeslepend te maken dat de gebruiker volledig opgaat in de content.

Tegelijkertijd moest het project wél volledig toegankelijk zijn.

  • Alles werd gebouwd met HTML en CSS, waarbij onder andere perspectief en z-index gebruikt werden om diepte en beleving te creëren.
  • Er werd gebruikgemaakt van Micrio, een tool waarmee gebruikers kunnen inzoomen op beelden om kleine details te ontdekken. Dit maakte het mogelijk om rijke, interactieve content aan te bieden zonder afbreuk te doen aan toegankelijkheid.
presentatie Q42

Mening:

Ik vond dit ook een erg leuke Weekly Nerd, vooral omdat het over het bedrijf zelf ging en ze ons lieten zien aan welke supergave projecten ze werken. Het was inspirerend om te zien hoe creatief en vernieuwend ze te werk gaan.

Wat ik vooral super cool vond, is dat ze bij Q42 echt veel aandacht besteden aan toegankelijkheid. Het feit dat ze daarbij zoveel mogelijk pure CSS gebruiken, laat zien dat je met slimme oplossingen al heel ver kunt komen zonder zware frameworks of complexe technieken.

Het was interessant en leerzaam om te zien hoe zij technologie inzetten om digitale producten te maken die voor iedereen toegankelijk zijn.

WEEKLY NERD 11

Pre-CSS day

Tijdens Pre-CSS Day gaven twee gastsprekers een presentatie over hun werk en visie. Daarnaast liet Sanne het werk van een aantal studenten zien, wat een mooi kijkje gaf in de creatieve en technische projecten die binnen de opleiding zijn ontwikkeld.

CSS day

Nils Bilder

Er is een CSS-evolutie! > van vaste breedtes naar dynamische wrappers.


                                        .wrapper {
                                            max-width: 75rem;
                                            margin: 0 auto;
                                            padding: 0 1.5rem;
                                          }
                                          

                                            .wrapper {
                                              width: min(100% - 3rem, 75rem);
                                              margin-inline: auto;
                                            }
                                            

Nils Over de connectie van Figma met CSS

Nils deelde zijn voorkeur voor Figma, dat ongeveer zes jaar geleden werd geïntroduceerd, boven Photoshop. Volgens hem is Figma beter geschikt voor modern UI/UX-ontwerp omdat de tools beter aansluiten bij hoe ontwikkelaars denken, vooral omdat ze lijken op het schrijven van code. Dit maakt de overgang van ontwerp naar ontwikkeling veel soepeler en intuïtiever.

In Figma zijn de meest gebruikte eenheden pixels (px), percentages (%) en rems (rem). Deze eenheden komen nauw overeen met de eenheden die gebruikt worden in CSS, zoals px, %, rem, em, ch en ex, wat zorgt voor een consistente en efficiënte ontwerp-naar-code workflow. Vooral met het toenemende gebruik van viewport-gebaseerde eenheden en container queries in CSS, wordt deze afstemming nog waardevoller.

presentatie css

Mening:

Ik heb niet heel veel te zeggen over Pre CSS Day. Het was wel een leuke verrassing om mijn eigen werk op het grote scherm terug te zien — dat had ik echt niet verwacht. Niels hadden we eerder al gehad, dus dat voelde een beetje herhaling. Tijdens de tweede presentatie zat ik met tijdsdruk en raakte ik vaak afgeleid, waardoor ik er minder uit haalde. Het blijft uiteindelijk een presentatie, en hoewel het altijd inspirerend is om mensen met passie te zien spreken, bracht het deze keer weinig nieuws voor mij. Wel leuke sfeer en fijne mensen.

WEEKLY NERD 12

Digitale Toegankelijkheid

Ongeveer 32% van de Nederlanders heeft een permanente beperking, zoals dyslexie, visuele beperkingen of ADHD. Daarnaast kunnen mensen ook tijdelijk beperkt zijn, bijvoorbeeld door een gebroken arm, oorontsteking, migraine, staar of keelontsteking. Er zijn ook situationele beperkingen, zoals in een drukke club, wanneer je handen vol zijn of als fel zonlicht het scherm onleesbaar maakt.

ismy.blue

Biedt ondersteuning op het gebied van digitale toegankelijkheid, waaronder:

Audits

Een systematisch onderzoek op basis van de WCAG-richtlijnen. Tools:

  • Stylus (gratis)
  • Colour Contrast Checker (gratis)
  • Stark Accessibility Checker (betaald)

Consultancy

Adviestrajecten, bijvoorbeeld voor organisaties zoals ASR.

Trainingen en Cursussen

In de vorm van lessen, presentaties, workshops en meer.

Europese Toegankelijkheidswet (EAA)

Vanaf 28 juni 2025 moeten alle bedrijven die aan consumenten in de EU leveren, voldoen aan de EAA. Dit geldt alleen voor nieuwe content. Voor bestaande producten is een overgangsperiode van vijf jaar.

Wie moet voldoen?

Alle bedrijven die aan consumenten leveren in de EU

Uitzonderingen

  • b2b
  • Minder dan 10 werknemers
  • Minder dan 2 miljoen euro omzet per jaar
  • Minder dan 2 miljoen euro omzet per jaar

Mening:

Het is altijd interessant om te leren over toegankelijkheid, want het is wel de 'toekomst' en is super belangrijk, maar we horen er wel heel vaak over etc.