A monitor showing a Figma-style interface with a button component selected, inspect specs visible, comment bubbles near design elements — the visual marker for the Figma handoff audit.
Image description: A monitor showing a Figma-style interface with a button component selected, inspect specs visible, comment bubbles near design elements — the visual marker for the Figma handoff audit.

Engineering primer · Figma-overdrachtsaudit

De designer-naar-engineer-overdracht mislukt op toegankelijkheid: een studie van 50 Figma-bestanden

We auditeerden 50 productie-Figma-bestanden — geanonimiseerd, met toestemming — op de toegankelijkheidsspecificaties die wel en niet in de overdracht terechtkwamen.

De designer-naar-engineer-overdracht mislukt op toegankelijkheid
een studie van 50 Figma-bestanden

We verkregen alleen-lezen toegang tot 50 productie-Figma-bestanden van 28 productteams, met toestemming en volledige anonimisering, en doorliepen elk bestand met één vraag: wanneer de engineer dit bestand opent en begint te implementeren, welke toegankelijkheidsbeslissingen heeft de designer al genomen — en welke worden overgelaten aan de engineer om op een vrijdagmiddag om 16.00 uur zelf te bedenken? Het antwoord is, bestand na bestand, dat de meeste nog steeds op dat vrijdagmiddag worden uitgevonden.

50
productie-Figma-bestanden geauditeerd, geanonimiseerd
60%
van de interactieve componenten had geen ontwerp voor de focusstatus
5
toegankelijkheidseigenschappen gevolgd per bestand
11 min lezen
Bijgewerkt mei 2026

1. Hoe we de 50 bestanden auditeerden

Het steekproefkader bestaat uit 50 Figma-bestanden van 28 productteams in SaaS, retail, fintech, publieke sector en edtech. We onderhandelden over alleen-lezen toegang op niet-attributiebasis: niets in dit artikel identificeert een merk, een team of een designer. De bestanden werden gekozen om te weerspiegelen wat een engineer daadwerkelijk zou ontvangen bij overdracht — geen uitgewerkt portfoliostuk — zodat we elk team vroegen het bestand te delen waaruit de meest recente feature was gebouwd, niet het bestand waar ze het meest trots op zijn. Twaalf van de bestanden kwamen van teams met een dedicated design-systeem-praktijk; de andere 38 waren product-level bestanden die een systeembibliotheek importeerden of hun eigen componenten inline uitrolden.

We doorliepen elk bestand op zoek naar vijf toegankelijkheidseigenschappen: focusstatusontwerp op elk interactief component, alternatieve-tekstannotaties op elk afbeelding of niet-decoratief icoon, documentatie van de leesvolgorde over de volledige lay-out, afhandelingsspecificaties voor bewegingsvoorkeur bij elk geanimeerd of overgaand element, en contrastspecificatie voor de donkere modus bij elk component dat in zowel licht als donker thema is uitgebracht. Een bestand scoorde een eigenschap als “gedocumenteerd” uitsluitend als een competente engineer het ontwerp kon implementeren zonder het antwoord zelf te moeten bedenken. “Vermeld in een plaknotitie” telde niet. “Hex opgegeven in één hoverstate” telde niet. De lat was: is de beslissing in het bestand opgenomen in een vorm die de engineer direct kan gebruiken zonder te hoeven vragen?

De hoofdbevinding is dat de overdracht, gemeten aan deze lat, de toegankelijkheidsbeslissingen veel vaker mist dan omvat. Focusstatusontwerp verscheen op ca. 40% van de interactieve componenten in het corpus. Alternatieve-tekstannotaties verschenen op circa 22% van de afbeeldingen die ze nodig hadden. Leesvolgorde was expliciet gedocumenteerd in 16% van de bestanden. Bewegingsvoorkeuren werden behandeld in 10%. Donkere-moduscontrast — voor de 31 bestanden die beide thema’s leverden — was gespecificeerd voor 30% van de componenten. Het gat zit niet in één eigenschap. Het zit in alle vijf, en de engineer wordt overgelaten om ze één oordeel tegelijk te sluiten.

50
bestanden geauditeerd van 28 productteams (snapshot mei 2026)
28
afzonderlijke teams, geanonimiseerd, verspreid over vijf sectoren
5
toegankelijkheidseigenschappen gescoord per bestand, per component
ca. 1.800
interactieve componenten aangeraakt over het corpus
Wat “gedocumenteerd” in deze audit betekent

We hanteerden de engineer-leest-en-implementeert-lat. Een focusstatus telt als gedocumenteerd als het bestand de visuele specificatie toont — omtrekkleur, breedte, offset, contrast ten opzichte van de achtergrond van het gefocuste element — in een vorm die de engineer kan vertalen naar een CSS-token. Een nabijgelegen Slack-bericht met “gebruik het merkblauw” telt niet, omdat Slack-berichten de overdracht niet overleven. Het bestand moet de beslissing op eigen kracht dragen.

”De overdracht mislukt niet omdat designers niets geven om toegankelijkheid. Ze mislukt omdat het bestandsformaat toegankelijkheid behandelt als commentarannotatie, terwijl het een eersteklas eigenschap van elk component zou moeten zijn.”

— disabilityworld.org engineering desk, auditnotes

2. Focusstatusontwerp: het 60%-gat

Van de circa 1.800 interactieve componenten die over het corpus werden aangeraakt — knoppen, koppelingen, invoervelden, selectievakjes, schakelaars, tabbladen, comboboxen, menu-items, kaarten-als-knop, alles wat een toetsenbordgebruiker kan bereiken — leverde circa 40% een ontworpen focusstatus. De andere 60% leverde een standaard-, een actieve en een hoverstatus, en stopte daarna. De engineer die het component bouwt, kiest een focusomtrek bij de implementatie, doorgaans door de browserstandaard te kopiëren, doorgaans zonder te controleren of de standaard 3:1 contrast heeft ten opzichte van het componentoppervlak in zowel het lichte als het donkere thema dat het bestand levert.

Hoe ziet “geen focusstatusontwerp” er in de praktijk uit? Het ziet eruit als een knopcomponent met drie varianten op het canvas — rust, hover, ingedrukt — en geen vierde variant. Het ziet eruit als een invoerveld met een gestylede rand en geen tweede randstijl voor de gefocuste staat. Het ziet eruit als een selectievakjeprimitive met een focusring alleen op de rustvariant, waarbij de engineer mag raden of dezelfde ring op de aangevinkte of onbepaalde variant moet verschijnen. Het patroon herhaalt zich over componenten, over teams, over sectoren heen. Het is het grootste single toegankelijkheidsgat in het corpus en het gemakkelijkst te ontwerpen.

De teams die focusstatussen goed hadden ontworpen, hadden één van twee dingen te hun voordeel. Het eerste was een expliciete design-systeemregel: elk interactief component moet een variant leveren waarvan de naam begint met focus-, en het component wordt pas in de bibliotheek uitgebracht als die variant bestaat. Het tweede was een Figma-componenteigenschap genaamd state met focus, focus-visible en focus-within als opgesomde waarden, zodat de componentbrowser van het bestand ontbrekende varianten visueel zichtbaar maakt. Teams zonder een van die twee steigers lieten de focusstatus voor de engineer in circa negen van de tien gevallen.

60%
van de interactieve componenten had geen focusstatusontwerp
ca. 720
componenten slaagden voor de focusstatuslat over het corpus
2
steigers die het gat sloten: state-variantnaming of componenteigenschapsopsommingen
12 / 50
bestanden gebruikten geen van beide steigers en toonden helemaal geen focusstatussen
Een Figma-component met versus zonder ontworpen focusstatus
Met — vier benoemde varianten, focusspecificatie in het bestand

Knopcomponent, vier varianten: state=default, state=hover, state=pressed, state=focus-visible. De focus-visible-variant toont een 2px omtrek, 2px offset, kleurtoken —focus-ring (dat zelf is gekoppeld aan een hex die 3:1 haalt ten opzichte van het knopoppervlak in beide thema’s). De engineer leest het inspectiepaneel en kopieert de tokenreferentie; er hoeft niets te worden uitgevonden.

Zonder — drie varianten, focusstatus overgelaten aan de engineer

Zelfde knopcomponent, drie varianten: default, hover, pressed. Geen focusvariant op het canvas. Een plaknotitie van de designer zegt “gebruik de systeemfocusring.” De engineer doorzoekt de design-systeembibliotheek, vindt twee kandidaatfocusringen (één van knoppen, één van invoervelden, enigszins verschillende breedten), kiest er een, brengt het uit, en de QA-controle drie weken later markeert het omdat de gekozen ring onder 3:1 daalt op het uitgeschakeld-maar-toch-focusbare oppervlak van de secundaire knop.

De browserstandaard-val

Wanneer de focusstatus niet in het bestand staat, leveren engineers vaak de browserstandaard — en de browserstandaard wordt overschreven door de globale *:focus { outline: none } in de meeste CSS-resets die dezelfde engineer zes maanden eerder toevoegde om een andere reviewopmerking op te lossen. Het resultaat is een component dat er prima uitziet in de Figma-preview, er prima uitziet in de ontwikkelomgeving met de reset uitgeschakeld, en wordt uitgebracht zonder zichtbare focusindicator.


3. Alternatieve-tekstannotaties: grotendeels leeg

Van de bestanden in het corpus die inhoudsafbeeldingen bevatten — productfotografie, herohero-illustraties, pictogram-alleen-knoppen, infografische figuren — had 78% geen alternatieve-tekstannotaties op de afbeeldingslagen. De afbeelding was geplaatst, geschaald en gestyleerd; het tekstequivalent dat de engineer geacht werd op de gerenderde <img> te zetten, was niet in het bestand. Acht van de 50 bestanden hadden alternatieve tekst op sommige afbeeldingen maar niet alle, doorgaans met de herohero-illustratie geannoteerd en de hoofdtekstafbeeldingen leeg. Drie bestanden hadden alternatieve tekst op elke afbeelding. De engineer werd, in 47 van de 50 bestanden, geacht de alternatieve tekst zelf te bedenken — en in de praktijk ontleende men die vaak aan de bestandsnaam, het onderschrift of een tekst die bij het visuele ritme paste.

Het gat zit structureel in Figma’s afbeeldingsprimitive. Er is geen native “alt”-eigenschap op een afbeeldingsvulling of afbeeldingslaag; alternatieve tekst moet worden gedragen als laagjaam, commentaar, plaknotitie, een apart specificatiedocument of een door een plugin toegevoegd veld. Geen van deze opties verschijnt standaard in het inspectiepaneel, zodat de engineer die het bestand in de inspectiemodus leest, de alternatieve tekst niet ziet, zelfs als de designer die ergens anders heeft ingetypt. Teams die het gat consequent sloten, gebruikten een van drie omwegen: door plugins beheerde alternatieve-tekstvelden op elke afbeeldingsvariant, een gedocumenteerde conventie dat de laagjaam de alternatieve tekst is, of een apart spreadsheet met alternatieve tekst dat werd opgestuurd naast het bestand.

Pictogram-alleen-knoppen waren een deeltekortkoming binnen dit faalpatroon. In 41 van de 50 bestanden hadden pictogramknoppen — de zoekglas, het hamburgermenu, het sluit-X, de deelpijl — geen toegankelijk-naamannotatie, waardoor de engineer aria-label=“Zoeken” moest schrijven vanuit visuele context zonder bevestiging dat “Zoeken” het juiste woord was in de merkstijl (was het “Vinden”? was het “Opzoeken”? was het niets omdat de knop een elders gelabeld paneel opent?). Pictogrambenaming is precies het soort micro-copy-beslissing dat baat heeft bij een designers pen, en precies het soort dat de overdracht verliest.

78%
van de bestanden had geen alternatieve-tekstannotaties op inhoudsafbeeldingen
41 / 50
bestanden lieten toegankelijke namen van pictogramknoppen over aan de engineer
3 / 50
bestanden annoteerden alternatieve tekst op elke afbeelding, van begin tot eind
3
omwegen die de sluitende teams gebruikten: pluginveld, laagjaamconventie, spreadsheet
Decoratief versus informatief is een ontwerpbeslissing

Elke afbeelding is ofwel decoratief (alternatieve tekst moet leeg zijn, de schermlezer slaat hem over) of informatief (alternatieve tekst draagt de informatie die het visueel overbrengt). Die keuze is een inhoudsbeslissing, en ze hoort bij de designer of de schrijver, niet bij de engineer die om middernacht raadt. Een bestand dat niets zegt over welke afbeeldingen decoratief zijn, levert ofwel te veel alternatieve tekst op (elke afbeelding wordt uitgebreid beschreven, inclusief de puur ornamentele) of te weinig (de herohero-illustratie wordt beschreven, elke afbeelding in de hoofdtekst krijgt alt="" omdat de engineer het zekere voor het onzekere nam).


4. Leesvolgorde, beweging, donkere-moduscontrast

De resterende drie eigenschappen hadden afzonderlijke faalpatronen. Leesvolgorde — de volgorde waarin een schermlezer de pagina voorleest, die in moderne responsieve lay-outs niet langer gegarandeerd overeenkomt met de visuele volgorde van boven naar beneden — was gedocumenteerd in 16% van de bestanden. De documentatie, waar aanwezig, was doorgaans een genummerde overlay op het canvas (1, 2, 3…) toegevoegd met een plugin. De andere 84% liet de engineer de leesvolgorde afleiden uit de DOM-volgorde die zij toevallig schreven, die bij een CSS Grid-lay-out met expliciete rij-en-kolomplaatsing een volledige kolom kan afwijken van de visuele lay-out.

Bewegingsvoorkeuren scoorden het slechtst. Tien procent van de bestanden noemde prefers-reduced-motion überhaupt. De resterende 90% specificeerde animaties en overgangen — modaalvenster-intrede, accordeon-uitklappers, snackbar-schuiven, paginaovergangen — zonder te specificeren wat hetzelfde component zou moeten doen wanneer de gebruiker verminderde beweging heeft ingeschakeld. De engineer bouwde de verminderd-beweging-case bij de implementatie (vaak zonder visuele referentie) of leverde dezelfde animatie aan iedereen, wat de standaard is en wat WCAG 2.3.3 Animatie door interacties schendt voor gebruikers die de voorkeur hebben ingesteld.

Donkere-moduscontrast was gespecificeerd voor 30% van de componenten in bestanden die beide thema’s leverden. De andere 70% specificeerde het lichte-thema-contrast — doorgaans met een Stark- of contrastcontrolaannotatie in het bestand — en bracht vervolgens het donkere thema uit met een hex-gespiegeld palet, waarbij de engineer moest controleren of het gespiegelde paar nog steeds 4,5:1 haalde op hoofdtekst en 3:1 op UI-componenten. In circa één vijfde van de 31 dual-thema-bestanden daalde minstens één component onder de contrastdrempel in het donkere thema, omdat zowel het donkere oppervlak als de donkere tekst waren afgesteld op de contrastmathematiek van het lichte thema, niet die van het donkere thema.

De matrix hieronder vat de vijf gaten samen

De matrix volgt de “voltooiingsrate” voor elke eigenschap over het corpus — het aandeel bestanden waarin de eigenschap was gedocumenteerd volgens de engineer-leest-en-implementeert-lat. De kolommen splitsen de rate op naar of het bestand afkomstig was van een team met een dedicated design-systeem-praktijk of van een productteam dat componenten inline uitrolde; het verschil tussen de twee kolommen is de systeem-versus-geen-systeem-delta.

ToegankelijkheidseigenschapAlle 50 bestandenDesign-systeemteams (12)Productteams (38)Systeem-vs-product delta
Focusstatusontwerp (interactieve componenten)40%75%29%+46pp
Alternatieve-tekstannotaties (inhoudsafbeeldingen)22%50%13%+37pp
Leesvolgorde (canvas-niveau)16%42%8%+34pp
Bewegingsvoorkeuren (geanimeerde elementen)10%33%3%+30pp
Donkere-moduscontrast (uitsluitend dual-thema-bestanden, n=31)30%55%19%+36pp

”Design-systeemteams documenteren de toegankelijkheidsbeslissingen ruwweg tweemaal zo vaak als productteams — maar zelfs de systeemteams halen de lat voor slechts één eigenschap van de vijf de meeste tijd.”

— disabilityworld.org engineering desk, auditnotes

5. Stark en Able: onsystematisch gebruik

De twee plugins die het vaakst opduiken in het corpus zijn Stark en Able. Beide zijn volwassen, beide zijn goed aangeschreven en beide leveren functies die meerdere hierboven beschreven gaten sluiten. Stark voegt een contrastcontrole, een focusvolgorde-overlay, een verminderd-beweging-preview en een alternatieve-tekst-annotatieveld op afbeeldingslagen toe. Able voegt een kleurcontrastinspecteur, een visiesimulatie-overlay en een aanraakdoelcontrole toe. Elke plugin, consequent gebruikt over een bestand, zou dat bestand uit het onderste kwartiel van het corpus tillen.

Consequent gebruikt is de operatieve uitdrukking. Over de 50 bestanden was Stark geïnstalleerd en zichtbaar gebruikt in 18, en Able in 11. In de bestanden waar de plugin werd gebruikt, werd hij doorgaans gebruikt op het herocomponent en de primaire call-to-action — de componenten die het meest waarschijnlijk op het canvas staan wanneer de designer de plugin opende — en spaarzaam elders. Zes bestanden gebruikten Stark voor een globale doorloop; één gebruikte Able voor een globale doorloop. Het patroon is: plugins bestaan, designers weten ervan, ze worden gebruikt voor steekproeven, en dan stopt de steekproef bij de componenten die de designer toevallig bekeek toen de plugin open was.

De twee teams die de audit op plugingebruik sloten, deden één ding anders: ze voerden de auditfunctie van de plugin op elke pagina van het bestand uit als een release-gate stap voordat het bestand werd gedeeld met engineering. De audit liep in het bestand, produceerde een rapport en het rapport moest leeg zijn (of de uitzonderingen ervan gedocumenteerd) voordat het bestand van “in ontwerp” naar “gereed voor engineering” ging. Dit is plugin-als-workflow in plaats van plugin-als-steekproef, en het is het verschil tussen 80% dekking en 20% dekking in onze steekproef.

Stark
Stark Lab · contrast, focusvolgorde, beweging, alt
ca. 1,4 miljoen installaties over Figma + Sketch + Adobe XD (mei 2026)
Adoptie in corpus18 / 50 bestanden (36%)
Gebruikt als workflow
Gat gedekt bij volledig gebruik4 van 5 eigenschappen sluitbaar (focus, contrast, alt, beweging)
Able
Able · contrast, visiesimulatie, aanraakdoelen
ca. 320.000 installaties in Figma-community (mei 2026)
Adoptie in corpus11 / 50 bestanden (22%)
Gebruikt als workflow
Gat gedekt bij volledig gebruik2 van 5 eigenschappen sluitbaar (contrast, donkere-moduscontrast)
Plugins zijn noodzakelijk, niet voldoende

Een plugin verhoogt de vloer: de contrastcontrole vangt de voor de hand liggende 2,1:1-tekortkomingen, het alternatieve-tekstveld geeft de designer ergens om in te typen. Niets daarvan helpt als de plugin op drie componenten wordt uitgevoerd en niet op de resterende 27. De oplossing is de plugin in de workflow te integreren — een release-gate stap, een pre-overdrachtscontrolelijst, een Figma-branch die niet kan worden samengevoegd zonder een leeg pluginrapport — in plaats van aan de discretie van de designer over te laten op het moment dat hij of zij er aan denkt.


6. Een overdrachtscontrolelijst en een tokencontract

De audit levert een controlelijst en een contract op. De controlelijst is wat een designer moet kunnen afvinken voordat het bestand wordt gedeeld met engineering. Het contract is de vorm van de ontwerptokens die naast het bestand worden meegeleverd, zodat de engineer Figma-variabelen kan koppelen aan CSS-aangepaste eigenschappen zonder tussenliggende waarden te hoeven uitvinden. Beide zijn bewust kort: elk item op de controlelijst is een eigenschap die de audit heeft gemeten, en elk token in het contract is een waarde die een gat in het corpus heeft gesloten.

1

Elk interactief component levert een state=focus-visible-variant.

Niet “het systeem heeft een focusring.” Een variant genaamd focus-visible op het component zelf, met de omtrekkleur, breedte en offset gekoppeld aan het focusring-token. De variant is wat de engineer in de implementatie kopieert; zonder hem raadt de engineer.

2

Elke inhoudsafbeelding heeft alternatieve tekst in een door plugins beheerd veld of een gedocumenteerde laagjaamconventie.

Kies één locatie en handhaaf die. Het Stark-alternatieve-tekstveld, de laagjaam als alternatieve tekst, of een bijbehorend spreadsheet — elk van de drie werkt, maar alleen als elke afbeelding in het bestand dezelfde gebruikt. Pictogram-alleen-knoppen krijgen ook een toegankelijk-naamannotatie, op dezelfde locatie, met de exacte tekst die de engineer in aria-label moet zetten.

3

Leesvolgorde is gedocumenteerd op elke pagina waar DOM-volgorde afwijkt van visuele volgorde.

De eenvoudigste documentatie is een genummerde overlay toegevoegd met een plugin (Stark heeft er één, diverse community-plugins ook). Voor pagina’s waarvan de volgorde triviaal van boven naar beneden van links naar rechts loopt, kan de overlay worden weggelaten; voor alles met CSS Grid-plaatsing, benoemde gebieden of absolute positionering is de overlay verplicht.

4

Elk geanimeerd of overgaand element heeft een verminderd-beweging-variant op het canvas.

Een tweede frame, een tweede variant of een gedocumenteerde “geen animatie”-versie. De engineer mag de verminderd-beweging-case niet zelf bedenken — de designer moet specificeren of het modaalvenster vervaagt in plaats van inschuift, de snackbar direct verschijnt in plaats van inschuift, de paginaovergang geheel wordt weggelaten.

5

Voor dual-thema-bestanden wordt contrast in het donkere thema apart gecontroleerd, niet afgeleid van het lichte thema.

Donkere-moduscontrastmathematiek is een eigen probleem; het spiegelen van het palet is niet genoeg. Voer Stark of Able uit op elk component in de donkere modus, niet alleen in het lichte. Documenteer de contrastratio in de notities bij de variant zodat de engineer kan bevestigen dat de implementatie overeenkomt.

6

Het bestand wordt geleverd met een tokencontract: een vlakke lijst van elke Figma-variabele gekoppeld aan zijn CSS-aangepaste eigenschap.

Het contract is de brug tussen het bestand en de codebase. Een typisch contract ziet eruit als de onderstaande tabel: elke rij benoemt een Figma-variabele, de CSS-aangepaste eigenschap waaraan de engineer die moet koppelen, de waarde in het lichte thema, de waarde in het donkere thema en het WCAG-criterium waaraan het token deelneemt.

Figma-variabeleCSS-aangepaste eigenschapLichte waardeDonkere waardeWCAG-koppeling
color/focus-ring—focus-ring#0B57D0#A8C7FA2.4.7, 1.4.11
color/text/body—text-body#1F1F1F#E3E3E31.4.3 (4,5:1 op oppervlak)
color/surface/raised—surface-raised#FFFFFF#1F1F1F1.4.11 (3:1 tegen buur)
size/touch-target/min—touch-target-min44px44px2.5.5, 2.5.8
motion/duration/standard—motion-standard200ms200ms2.3.3 (sla over bij reduced-motion)
motion/duration/reduced—motion-reduced0ms0ms2.3.3
Waarom het contract de hefboom is

Zodra het contract bestaat, is het werk van de engineer mechanisch: koppel de CSS-aangepaste eigenschap aan de Figma-variabele, lever de implementatie, auditeer door de gerenderde waarden met het contract te vergelijken. Zonder het contract is elke koppeling een oordeelsoefening, en oordeelsoefeningen accumuleren tot het 60%-gat. Het contract is het enige artefact dat toegankelijkheid verschuift van “de engineer is verantwoordelijk op het moment van overdracht” naar “het systeem is verantwoordelijk op het moment van ontwerpen.”


Conclusie: het bestand is het contract

De audit van 50 bestanden sluit met een eenvoudige bevinding. De overdracht faalt op toegankelijkheid niet omdat designers er niets om geven en niet omdat engineers er niets om geven, maar omdat het bestand — het Figma-bestand, het enige artefact dat alle partijen lezen — de toegankelijkheidsbeslissingen niet als eersteklas eigenschappen draagt. Focusstatussen, alternatieve tekst, leesvolgorde, bewegingsvoorkeuren, donkere-moduscontrast: elk is een ontwerpbeslissing, elk hoort in het bestand, elk bevindt zich momenteel ergens anders. In een plaknotitie, in een Slack-bericht, in een apart spreadsheet, in het hoofd van de engineer op vrijdagmiddag om 16.00 uur.

De oplossing is geen heldhaftige designer of heldhaftige engineer. Het is een workflowwijziging op teamniveau: elk interactief component levert een focusvariant, elke afbeelding draagt alternatieve tekst op één door plugins beheerde locatie, leesvolgorde wordt als overlay aangebracht op elke niet-triviale pagina, animaties specificeren hun verminderd-beweging-equivalent, donkere-moduscontrast wordt apart van het lichte gecontroleerd, en het bestand wordt geleverd naast een tokencontract dat elke variabele benoemt waaraan de implementatie wordt gekoppeld. Geen van deze stappen is nieuw, geen vereist een tool die we nog niet hebben, en elk team dat ze als release-gate stappen hanteert, zal de meeste gemeten gaten in één releasecyclus sluiten.

De diepere bevinding is dat design-systeemteams dit al doen op ruwweg tweemaal de frequentie van productteams. De lift die de design-systeemteams leveren, is precies de lift die de discipline van het bouwen van een systeem oplegt: componenten zijn benoemd, eigenschappen zijn opgesomd, varianten zijn zichtbaar, tokens zijn expliciet. Dezelfde discipline toepassen op product-level bestanden — zelfs zonder een volledig design-systeem eronder — sluit het grootste deel van het overdrachtskloof. Het is geen toolingprobleem meer. Het is een workflowkeuze.

”Het bestand zou moeten aankomen met de toegankelijkheidsbeslissingen al genomen. Alles anders betekent dat de engineer ze uitvindt op het slechtst mogelijke moment, met de minst mogelijke context, tegen de krapste mogelijke deadline.”

— disabilityworld.org engineering desk, slotnotitie