Design System · WCAG 2.1/2.2 AA · Enterprise · Public Sector

Federal Employment Agency
Design System

Leading Discovery, cross-functional collaboration, and design quality ownership for Germany's largest public employment platform - delivering a WCAG 2.1/2.2 AA-compliant design system through stakeholder alignment, structured handoff workflows, and knowledge transfer to engineering teams.

Client

Bundesagentur für Arbeit

Via

Capgemini

Role

Design Lead

Timeline

Jul 2024 - Feb 2026

Overview

The Bundesagentur für Arbeit (Federal Employment Agency) is one of the largest public digital services in Europe - a multi-persona regulated workflow used daily by citizens, case workers, internal admins, and compliance teams. Via Capgemini, I led accessibility-first design system development during a complex, multi-team transition where every component had to ship audit-ready.

"User-friendly" in this context wasn't about a polished surface - it was about a case worker getting through a 40-step intake flow without losing context, and a screen-reader user reaching the same outcome through the same component. I owned design quality from Discovery to production sign-off, coordinating with POs, legal compliance teams, frontend engineers, and QA. I facilitated stakeholder workshops to align on component standards, presented recommendations to enterprise decision-makers, and ran knowledge transfer sessions for both design and development teams. The accessibility annotation templates and documented workflows I built were later adopted as a standard across the wider Capgemini design practice - work that outlasted the engagement and travelled across other client teams.

WCAG

2.1/2.2 AA - all components

5+

Tools unified

2

Token targets: Compose & SwiftUI

40+

Core components

Discovery & multi-persona research

The platform serves five distinct user populations with entirely different mental models, technical contexts, and regulatory exposures. No design framework could hold across all five unless Discovery surfaced what each population actually does in a given week - not what their role title suggests they do. The persona who owns the binding workflow decision was rarely the most visible one; case workers in particular shaped more component decisions than any other group, because their daily friction was where the system either earned trust or lost it.

Personas served

Discovery methods I ran

Stakeholder Discovery workshops Cross-functional alignment sessions Accessibility audits (WCAG 2.1/2.2) Component inventory + research-driven prioritisation Screen reader testing (NVDA, VoiceOver) Knowledge transfer workshops

AI-augmented practice on this engagement

Interview synthesis and policy-document review accelerated with Claude and ChatGPT - themes that previously took days to surface from raw transcripts now land in hours, leaving more time for second-round validation with stakeholders. Perplexity for cross-referencing regulatory framework updates against component decisions. Stakeholder decks and review docs drafted with Gamma and Claude. AI accelerates the synthesis loop; the judgment, the persona-to-workflow translation, and the sign-off conversations stay human.

Process

Four phases mapped onto the agile delivery cycle, structured so that no component shipped without three audit trails: a research rationale, an accessibility annotation, and a stakeholder sign-off. Each phase ended at a checkpoint where decisions were documented and presented before the next phase opened - slower upfront, faster across the lifecycle because rework after handoff is the expensive kind.

01

Audit

Component inventory across all active surfaces. Accessibility gaps catalogued and prioritised with stakeholder input in a structured Discovery session.

02

Define

Token system and component spec templates established. Presented design standards framework to client stakeholders for alignment before build began.

03

Build

Figma library + Axure widget sets built in parallel. Knowledge transfer sessions run with engineering team to embed standards into the build pipeline.

04

Validate

Automated a11y tests + manual screen reader testing (NVDA, VoiceOver). QA sign-off checklist.

The handoff workflow connected Figma (source of truth) through Axure prototypes, Storybook docs, Jira tickets, and Confluence specs - every team in their tool of choice, referencing the same component standards.

Figma
Zeplin / Dev Mode
Storybook
VS Code
+
Confluence
+
Axure RP

Design Tokens

Tokens form the foundation of the system - colour, typography, spacing, elevation - defined in Figma variables and mapped directly to code for engineering: CSS/JSON for the web layer, Jetpack Compose for Android, and SwiftUI for iOS. One source of truth across all three platforms.

Color Tokens

Color Palette - BfA Brand tokens/colors.json

brand.primary

#003882

brand.primary-light

#00589A

brand.accent

#00A3C4

brand.cta

#E05B00

semantic.success

#2E7D32

semantic.warning

#E65100

semantic.error

#C62828

surface.default

#F4F7FB

Spacing Scale

Spacing Tokens - 4px base grid
space.1
4px - micro gap
space.2
8px - tight
space.3
12px - compact
space.4
16px - default
space.6
24px - comfortable
space.8
32px - spacious
space.12
48px - section gap
space.16
64px - layout

Typography Scale

Typography - BundesSans Web
display / 36px Ihre Karriere
heading-1 / 28px Stellenangebote
heading-2 / 22px Beratung & Förderung
body / 16px Finden Sie passende Stellenangebote und Fördermöglichkeiten für Ihre berufliche Zukunft.
small / 13px Pflichtfelder sind mit * gekennzeichnet · Datenschutzerklärung

Component Library

Built accessibility-first. Every component documents keyboard interactions, ARIA attributes, focus rules, and contrast ratios. Selected components below.

Buttons

Button - variants, sizes, states BfaButton

Variants

Sizes

States

Form Fields

Input Field - states & validation BfaInput

Geben Sie Ihren Vornamen ein.

Fokus-Zustand - 3px blauer Ring

⚠ Bitte geben Sie eine gültige PLZ ein (5 Ziffern).

✓ Gültige Eingabe

Status Badges

Badge - semantic status indicators
Aktiv In Bearbeitung Abgelaufen Neu Entwurf Bewerbung eingegangen Prüfung läuft

Alerts & Notifications

Alert - 4 semantic types with role="alert"

Hinweis

Ihre Sitzung läuft in 5 Minuten ab. Bitte speichern Sie Ihre Eingaben.

Erfolgreich gespeichert

Ihre Bewerbung wurde erfolgreich eingereicht. Sie erhalten eine Bestätigung per E-Mail.

Achtung

Das Stellenangebot läuft morgen ab. Bewerben Sie sich jetzt, um keine Frist zu verpassen.

Fehler beim Speichern

Ihre Daten konnten nicht gespeichert werden. Bitte versuchen Sie es erneut.

Navigation Component

Sidebar Navigation - active / hover states
Mein Portal
Übersicht
Stellensuche
Bewerbungen
Förderungen
Nachrichten
Einstellungen
Aktuelle Aktivität 3 Neu
Bewerbungen gesamt12
In Bearbeitung4
Eingeladen2
Abgelehnt3

Accessibility Framework

Every component carries an accessibility annotation layer inside Figma - contrast ratios, ARIA roles, keyboard behaviour, screen-reader expectations, focus rules. A developer building the component doesn't have to interpret design intent or hunt for the right WCAG clause; the spec is on the canvas next to the variant.

Accessibility wasn't a remediation pass at the end of the build. It was a structural input from the first token onward - colour ramps validated against contrast minimums before they entered the palette, spacing rules designed around 44×44px touch targets, focus states drawn before hover states. The component is accessible because the system it came from was.

Annotation System

Component: Primary Button - Accessibility Spec

AA

Colour contrast: White (#FFFFFF) on brand blue (#003882) = 10.2:1 - exceeds WCAG AA minimum of 4.5:1 for normal text and 3:1 for large text.

ARIA

Role: Native <button> element. When disabled, use disabled attribute + aria-disabled="true". Never use <div> or <a> for interactive buttons.

KB

Keyboard: Focusable via Tab. Activated by Enter and Space. Focus indicator must be 3px blue ring - never remove outline.

SR

Screen reader: Button text must be descriptive. Use aria-label for icon-only buttons. Loading state: aria-busy="true" + visually hidden "Lädt...".

Testing Protocol

Outcomes

5
Tools bridged in one workflow - Figma · Axure · Storybook · Confluence · VS Code
WCAG AA
2.1/2.2 AA compliance achieved across the component library
Capgemini-wide
Accessibility annotation templates adopted as a practice standard
Figma Axure RP Storybook Jira · Confluence · VS Code WCAG 2.1/2.2 AA Accessibility Audit Design Tokens Component Design ARIA Annotations Screen Reader Testing Usability Testing

Due to privacy and confidentiality policies, original design assets, screens, and client materials cannot be shared publicly. All visual elements shown in this case study are faithful recreations, not the original production designs.

More case studies

Continue exploring