Projects

Open-source tools I have built: an accessible terminal, NVDA add-ons that sharpen everyday screen reader workflows, and infrastructure for testing accessible software automatically.

Acter

An accessible terminal for screen reader users. Its default mode is conversational: you type a command in an edit field and the result lands in a reviewable buffer where each command is a heading, so you navigate your session history the way you navigate a web page. Short output is read automatically, longer output is announced, and a single keystroke switches to full terminal emulation for ncurses programs such as nano. Written in Rust with Tauri 2, Windows first. In active development.

View acter on GitHub

EnhancedFindDialog for NVDA

Implements search improvements for NVDA, including search history, regular expression search, search wrapping per profile, case sensitivity, and contextual search information.

View EnhancedFindDialog on GitHub

EnhancedDictionaries for NVDA

Brings profile-specific speech dictionary capabilities to NVDA. Allows dictionary entries and regular expression substitutions to trigger conditionally based on the active application profile.

View EnhancedDictionaries on GitHub

Timer for NVDA

Brings flexible timer and stopwatch functionalities directly into NVDA, complete with progress monitoring, custom audio alarms, and easy-to-use settings dialogs.

View TimerForNVDA on GitHub

CustomAppModulesMapper for NVDA

Allows users to dynamically associate applications with existing NVDA app modules (or detach them completely) without writing any Python code.

View CustomAppModulesMapper on GitHub

screen-readers-mcp

A Model Context Protocol (MCP) server that lets AI agents drive screen readers like NVDA: sending keyboard gestures, reading spoken and brailled output back, and running automated functional tests of screen reader add-ons.

View screen-readers-mcp on GitHub