Back to portfolio

Accessibility engineering project

Komplete Kontrol: adding VoiceOver support to a music production app with none.

Native Instruments' Komplete Kontrol is a widely used music production application for browsing, auditioning, and playing virtual instruments. It has no VoiceOver support whatsoever. I engineered an accessibility layer that adds screen reader navigation, keyboard access, and accessible labeling to the application on macOS.

Platform macOS
Technologies Objective-C, NSAccessibility, dynamic library integration
Type Accessibility integration layer
Status Active development

What this project shows

A complete accessibility layer built from the outside for an application that exposes nothing to assistive technology.

Komplete Kontrol renders its entire UI through a custom graphics engine with no accessibility tree. VoiceOver sees a blank window. I reverse-engineered the application's internal structure, identified the UI components, and built an accessibility library that creates a navigable interface for VoiceOver users.

Skills demonstrated

  • Reverse engineering proprietary UI component hierarchies
  • macOS accessibility API implementation for third-party applications
  • Dynamic library architecture and loader integration
  • Keyboard navigation implementation for custom-rendered interfaces
  • Iterative accessibility design informed by real user testing

What I built

Practical accessibility improvements that make the application usable for daily music production workflows.

Accessible preferences

The application's preferences window is now fully navigable with VoiceOver, including all settings panels and controls. Keyboard shortcut support was added so the preferences window can be opened and closed without a mouse.

Toolbar label correction

The application's toolbar buttons had no accessible labels. The accessibility layer identifies each button and applies descriptive labels so VoiceOver can announce their purpose instead of reading generic or empty text.

Keyboard navigation

Standard macOS keyboard commands like Cmd+comma for preferences and Cmd+W to close windows now work as expected. These conventions are essential for keyboard and screen reader users but were not implemented in the original application.

The challenge ahead

The browser content area, which includes the preset list, tag filters, and product grid, is rendered entirely as a bitmap by a proprietary widget toolkit. Making this content accessible requires walking the internal widget tree and creating NSAccessibilityElements for each item. This is active work in progress.

Technical approach

Building accessibility into an application that was not designed for it.

Dynamic library architecture

The accessibility layer is implemented as a dynamic library that integrates with the application at launch. A lightweight loader handles the connection between the application binary and the accessibility code, keeping the two cleanly separated.

UI component discovery

The application uses a proprietary widget system for rendering. Understanding its internal structure required reverse engineering the component hierarchy to identify which objects correspond to visible controls and how to attach accessibility information to them.

Minimal footprint

Rebuilding the accessibility layer requires only a simple build script and an application restart. No administrator access is needed for day-to-day development, and the accessibility code can be updated independently of the application itself.

Why this matters

Music production software should not exclude blind musicians and producers.

Komplete Kontrol is one of the most widely used instrument browsers in modern music production. Without accessibility support, blind musicians cannot browse presets, audition sounds, or configure instruments. This project demonstrates that meaningful accessibility progress is possible even when the vendor has not prioritized it, using platform-level engineering and deep knowledge of both the accessibility APIs and the music production domain.

Built with

  • Objective-C and macOS Accessibility APIs
  • Dynamic library integration
  • Runtime introspection and UI component analysis
  • Custom build and deployment tooling

Want to see more of my work?

The portfolio includes web and mobile accessibility audits alongside these engineering projects.