Accessibility
Accessibility is not optional
The federal brand system meets at least WCAG 2.1 level AA, in line with the Belgian Accessibility Decree and EU directive 2016/2102. Where feasible, we aim for AAA.
Contrast
Contrast between text and background is enforced at the token level, not at the component level. Specifically:
- Body text (
color.text.defaultoncolor.background.default): contrast ratio ≥ 7:1 (AAA). - Secondary text (
color.text.muted): ≥ 4.5:1 (AA). - Text on coloured backgrounds (buttons, banners): the pipeline rejects combinations that do not meet AA — a merge blocker in CI.
Keyboard navigation and focus
Every interactive element has a visible focus indicator (color.border.focus with at least 2 px border width). Tab order follows reading order.
Multilingualism and script support
The specifications explicitly require Latin, Cyrillic, Arabic, Greek, Japanese and Chinese support. Typography tokens define a fallback stack per script:
font.family.primaryfor Latin, Cyrillic and Greek (Inter)font.family.arabicfor Arabic (Noto Sans Arabic)font.family.cjkfor Japanese and Chinese (Noto Sans CJK)
The render pipeline automatically chooses the right stack based on the lang attribute.
Validation
WCAG checks run automatically in CI. A new or changed token that breaks the contrast rule blocks the merge until it complies or is explicitly marked as an exception by the Chancellery.