Zum Inhalt springen
BFSG compliance since 2025
Semantic HTML5WAI-ARIA 1.2Keyboard-FirstWCAG 2.2 AA

Accessible web development: Built for everyone from the ground up

Accessibility does not start with testing but with the first line of code. We develop websites and web applications that are accessible to all users from the start: with semantic HTML, correct ARIA, thoughtful keyboard navigation and screen reader compatibility.

Retroactive accessibility optimization of an existing website is typically far more effort and expense than accessible development from the start. When semantic HTML, correct ARIA attributes and keyboard navigation are integrated into the development process from the beginning, accessible code emerges almost automatically without additional effort per feature. We support development teams in establishing these practices: through training, code reviews, architecture consulting and the development of accessible component libraries. Our goal is to empower your team to independently develop accessible solutions.

The Pillars of Accessible Web Development

Accessible web development is based on four technical pillars that work together to make a website accessible to all users. Each pillar addresses specific user needs and is essential for conformance with WCAG 2.2 AA.

Semantic HTML

Correct use of HTML5 elements is the foundation of every accessible website. Headings (h1-h6) form a logical hierarchy, landmarks (header, nav, main, aside, footer) enable quick navigation, lists (ul, ol, dl) structure enumerations and forms use correct label-for associations. Screen readers use this semantics to give users an overview of page structure and enable efficient navigation.

WAI-ARIA 1.2

Where native HTML is insufficient, ARIA supplements the missing semantics. Roles (role="tablist", role="dialog"), states (aria-expanded, aria-selected) and properties (aria-label, aria-describedby) make interactive widgets understandable for assistive technologies. Important: ARIA is a supplementary tool, not a replacement for semantic HTML. The first rule of ARIA: do not use ARIA if a native HTML element can do the job (Source: W3C WAI).

Keyboard Navigation

All interactive elements must be reachable and operable via keyboard (WCAG 2.1.1). Tab order must match the visual reading order. Focus indicators must be visible with sufficient contrast. Modal dialogs must correctly trap focus and reset it to the triggering element on close. Dropdown menus must be navigable via arrow keys.

Screen Reader Compatibility

A website is only accessible when it is usable with real screen readers. NVDA and JAWS on Windows and VoiceOver on macOS and iOS interpret HTML and ARIA differently. We test and optimize for all three platforms, ensuring content, navigation and interactive elements are correctly outputted and operable.

Accessible Component Development

Modern websites consist of reusable components: navigation, tabs, accordions, modals, dropdowns, carousels, tooltips and forms. Each component has specific accessibility requirements defined in the WAI-ARIA Authoring Practices 1.2 (Source: W3C WAI-ARIA Practices). We develop components that correctly implement these patterns and seamlessly integrate into existing design systems.

Navigation and Menus

Accessible main navigation with correct role="navigation", aria-label and keyboard submenu support (arrow keys, Enter, Escape). Mobile hamburger menus with aria-expanded and correct focus management on open and close.

Tabs and Accordions

Implementation per WAI-ARIA Authoring Practices: tabs with role="tablist"/"tab"/"tabpanel", arrow key navigation and automatic focus management. Accordions with aria-expanded, aria-controls and correct heading semantics.

Modal Dialogs

Modals with role="dialog", aria-modal="true", correct focus trap keeping tab focus within the modal, closing via Escape key and focus reset to the triggering element after closing.

Autocomplete and Comboboxes

Search fields with autocomplete as role="combobox" with aria-expanded, aria-activedescendant and role="listbox" for the suggestion list. Arrow key navigation through suggestions and ARIA live announcement of result count.

Dynamic Status Messages

ARIA live regions (aria-live="polite" or "assertive") for status messages, form validation, loading progress and notifications. Correct use of role="alert", role="status" and role="log" depending on urgency and context.

Forms and Validation

Accessible forms with visible labels, aria-required for mandatory fields, aria-invalid and aria-describedby for error messages, grouping related fields with fieldset/legend and meaningful error texts with correction hints.

Color Contrasts and Visual Accessibility

Visual accessibility goes beyond color contrasts. WCAG 2.2 requires a minimum contrast of 4.5:1 for normal text and 3:1 for large text (18pt or 14pt bold) per success criterion 1.4.3. Additionally, information must not be conveyed by color alone (1.4.1), text spacing must be adjustable (1.4.12) and content must be usable at 200 percent zoom without horizontal scrolling (1.4.10).

Special attention is required for focus indicators, form error states and interactive elements in various states (hover, active, disabled). We ensure every state has sufficient contrast and that focus indicators remain visible even on complex backgrounds. For design systems we develop color palettes that provide accessible contrast ratios from the ground up while remaining visually appealing.

Automated Accessibility Testing in CI/CD

Accessibility must be embedded in the development process, not as a downstream check. We integrate automated accessibility tests into your CI/CD pipeline so WCAG violations are detected at commit time. axe-core as a linting tool in the editor gives developers direct feedback during coding. In the build pipeline Pa11y checks all rendered pages against WCAG criteria. Playwright tests simulate user interactions and verify keyboard navigation and screen reader output.

Integrating automated tests significantly reduces manual effort for accessibility checks. New barriers are immediately detected before reaching production. However, automated tests do not replace manual testing: they cover only about 30 to 50 percent of all barriers (Source: WebAIM 2024). That is why we recommend combining automated tests in the pipeline with regular manual WCAG 2.2 audits.

Responsive and Mobile Accessibility

Mobile accessibility poses additional requirements: touch target areas must be at least 24x24 CSS pixels per WCAG 2.5.8. VoiceOver on iOS and TalkBack on Android interpret HTML and ARIA partly differently than desktop screen readers. Gesture-based navigation (swiping, rotating) must be available for users with accessibility features enabled. We test on real devices with screen readers enabled, not just browser emulators.

Responsive design and accessibility overlap in several areas. The reflow requirement (WCAG 1.4.10) demands that content at 400 percent zoom (equivalent to 320 CSS pixel viewport width) remains usable without horizontal scrolling. Mobile-first development with flexible layouts typically fulfills this requirement automatically. Additionally, touch event handlers must also support keyboard interactions, and hover effects need touch equivalents for mobile users.

Using Frameworks and Libraries Accessibly

Modern web applications are built on JavaScript frameworks like React, Vue, Angular or Svelte. These frameworks bring their own accessibility challenges: client-side routing interrupts the natural page navigation of screen readers, dynamically rendered content may not be detected by assistive technologies, and virtual DOM implementations can complicate focus management.

We know the accessibility-relevant specifics of common frameworks and how to correctly address them. For React we recommend React Aria from Adobe, for Vue the use of headless UI libraries, for Angular the built-in a11y utilities. In Svelte we work with native HTML elements and minimal ARIA extensions. Regardless of framework: client-side routing must update the page title and correctly set focus, dynamic content must be announced via ARIA live regions and state changes must be communicated to assistive technologies.

Frequently Asked Questions About Accessible Web Development

Making Single-Page Applications Accessible

Single-page applications (SPAs) pose particular accessibility challenges as they replace the traditional page-load model with client-side routing. When a user clicks a link in a SPA no new page is loaded from the server; instead page content is dynamically replaced. Screen readers do not automatically detect this page change, meaning blind users do not know that content has changed. The solution requires active focus management: after every route change the page title must be updated, focus must be set to the new main content and the page change must be announced via ARIA live region.

Additionally SPAs must take special care implementing ARIA live regions for status messages. When a user performs an action whose result only becomes visible after a loading time, this delay must be communicated (for example through a loading indicator with role="status"). Error messages that appear dynamically must be announced via role="alert" or aria-live="assertive". Success messages use aria-live="polite" to inform the user without interrupting the current reading flow. These patterns require a systematic concept for the status message architecture of the entire application, not just point fixes.

Design Systems with Accessibility as a Core Principle

If your company uses a design system or component library, integrating accessibility at this level is the most efficient approach. Correctly implemented accessible components are automatically accessible in every instance without developers manually adding ARIA attributes at each use. We support the development of accessible component libraries that correctly implement WAI-ARIA Authoring Practices: tabs with automatic focus management, modals with correct focus trapping, dropdown menus with arrow key navigation and forms with programmatically linked validation.

An accessible design system documents for each component not just visual specifications (colors, spacing, typography) but also accessibility requirements: which ARIA roles and attributes are required, how keyboard interaction works, what screen reader output is expected and which variants are available for different contexts. This documentation ensures that even developers without deep accessibility knowledge use components correctly. Long-term an accessible design system significantly reduces costs for accessibility audits and remediations as systemic issues are fixed at a central point.

Performance and Accessibility: Two Sides of One Coin

Accessible web development and performance optimization go hand in hand. Semantic HTML is not only important for screen readers but also for fast page delivery: clean, semantically correct code is easier to parse, easier to cache and generates fewer reflows in the browser. Correct heading hierarchies and landmarks reduce the need for complex CSS selectors and JavaScript-based layout adjustments. Eliminating ARIA workarounds in favor of native HTML elements simplifies code and reduces JavaScript payload.

Particularly relevant is the connection between accessibility and Core Web Vitals: Largest Contentful Paint (LCP) benefits from optimized images with correct dimension attributes (also relevant for alt texts). Cumulative Layout Shift (CLS) improves through correct image size specifications and stable layouts that simultaneously meet WCAG 1.4.10 reflow requirements. Interaction to Next Paint (INP) is improved by efficient event handlers that correctly process both mouse and keyboard events. We therefore always optimize websites holistically: accessibility and performance as a shared goal, not competing requirements.

Documentation and Knowledge Transfer

Accessible web development requires specialized knowledge that must be shared within the team. That is why we place great emphasis on documentation and knowledge transfer. For every accessible component we develop we create documentation covering: ARIA roles and attributes with explanations, expected keyboard behavior with an overview of all supported keys, expected screen reader output with transcripts for NVDA and VoiceOver, visual specifications for focus indicators and contrast ratios and component variants and states. This documentation becomes part of your design system or component library and ensures even developers without deep accessibility knowledge can correctly use the components.

Accessible web development is not a restriction of creative or technical possibilities but an expansion of quality standards. Teams that understand accessibility as a natural part of their craft develop better code: cleaner, more semantic, more maintainable and more performant. The investment in accessible development competence pays off over years as it improves not just accessibility but the entire technical quality of every project your team works on. Contact us to discuss the accessible architecture of your next project.