Installing NetBSD requires operating an interactive curses program (sysinst(8)) that runs on the text console. Other operating systems (e.g. Debian GNU/Linux) provide an option to start a speech synthesizer so that vision-impaired users can install the OS. NetBSD currently doesn't.

If the user is installing NetBSD over a serial console (or QEMU's "-display curses" option) from an operating system that already has accessibility features enabled, this isn't a problem. However, it becomes problematic when directly sat in front of the hardware, and that hardware is a laptop that lacks a console port.

Modifying sysinst(8) to add speech synthesis would be an easy way to make it accessible. However, once the installation is complete, the user is still stuck until they get a chance to install Orca or similar. A more general solution that allows the text console to speak to the speech server would be strongly preferable. There is a niche Linux distribution that appears to support this, ADRIANE.

NetBSD's text console (with vt100 emulation) is implemented in the kernel. Writing a userspace vt100 emulator that outputs to the wsdisplay(4) framebuffer would make this project a lot easier, and has other advantages - it would be easier and safer to add support for more complex functionality e.g. bidirectional utf-8 scripts, and sixel graphics. However, this is probably beyond the initial goal of making installing NetBSD accessible.

Luckily, we don't need to implement speech synthesis from scratch. There's a very nice BSD-licensed implementation already, flite.

Tasks:

This project requires some experience with C programming.