Design System · WCAG 2.1 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 AA-compliant design system through stakeholder alignment, structured handoff workflows, and knowledge transfer to engineering teams.

Client

Bundesagentur für Arbeit

Via

Capgemini

Role

UX/UI Specialist · Accessibility Engineer

Timeline

May 2024 – present

Overview

The Bundesagentur für Arbeit (Federal Employment Agency) is one of the largest public digital services in Europe, used by millions of citizens to access employment support, benefits, job listings, and training programs. Via Capgemini, I was engaged as the design lead responsible for accessibility-first design system development during a complex, multi-team design transition.

The engagement required extensive cross-functional collaboration - working with POs, legal compliance teams, frontend engineers, and QA - while owning design quality from initial Discovery through to production sign-off. I facilitated stakeholder workshops to align on component standards, presented recommendations to enterprise decision-makers, and transferred knowledge to both design and development teams through documented workflows, annotation libraries, and hands-on sessions.

WCAG

2.1 AA - all components

5+

Tools unified

M+

Citizens served

40+

Core components

Process

The design system was built through a structured four-phase approach aligned with an agile delivery cycle. Each phase included stakeholder checkpoints - design decisions were documented, presented, and signed off before moving to the next phase, ensuring enterprise clients remained informed and in control throughout.

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 multi-tool handoff workflow connected Figma as the source of truth through to Axure prototypes, Storybook component documentation, Jira tickets, and Confluence specs - ensuring every team could work in their tool of choice while referencing the same component standards.

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

Design Tokens

The token system formed the foundation of the design system - a single source of truth for colour, typography, spacing, and elevation. All tokens were defined in Figma variables and exported to CSS/JSON for engineering consumption.

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

The component library was built with a strict accessibility-first approach. Every component includes documented keyboard interactions, ARIA attributes, focus management rules, and contrast ratios. Below are selected components from the system.

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 in the design system was built with a comprehensive accessibility annotation layer - instructions embedded directly in Figma that told developers exactly how to implement each element correctly without needing to interpret design intent.

Accessibility is not a layer added at the end - it is a structural decision made at the component level. Every token, spacing rule, and interaction pattern was designed with assistive technology in mind from day one.

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

Figma Axure RP Storybook Jira · Confluence · VS Code WCAG 2.1 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