Hey all,
I have some (hopefully) excellent news regarding the accessibility of computers running UEFI-based firmware. On August 11 I joined the EDK2 RFC list, which is a list where people can propose changes to the EFI Development Kit 2 (EDK2). EDK2 is pretty much the reference implementation of UEFI, and is fully open-source. That same day I submitted an email to open discussions on implementing accessibility features as a mandate in the specification. Today (at 11:25 AM CDT) I got an email back from Leif Lindholm from Linaro describing exactly what EDK2 can and can't do regarding the UEFI specification. Additionally, he CC'd the response (and I have CC'd those same people) as well to get suggestions and ideas from them; those other people include Rafael Machado (who did a PhD on firmware accessibility, including a prototype implementing an audio driver for EDK2), Andrew Fish from Apple, Laszlo Ersek from RedHat, and Michael Kinney and Cetola Stephano from Intel. In summary, the eventual goal is to provide a reference implementation of an accessibility subsystem in EDK2, which would take "a pretty spectacularly incompetent product owner not to incorporate it in their products", according to Leif.
If all goes to plan, we'll be taking it by stages and not implementing everything at once. (That includes the fact that this first iteration will not include support for braille displays.) In the first stage, we hope to:
Implement protocols for communicating with audio outputs;
Implement protocols/hooks/events that can be intercepted in the Human Interaction Interface subsystem (HII) by a foreground/background UEFI driver/application; and
Implement some kind of method to allow the accessibility protocols to read what is drawn to the text when navigating around.
The third item on this stages agenda will prevent the accessibility subsystem from doing a "say all" every time something new pops up, which would get annoying. I would like your guys's opinions on this progress and what you would like to see in the future. Do remember that this is not an operating system. This is a preboot environment that is only used when your computer is starting and not while an operating system is active. Therefore, please keep your suggestions to "reasonable" ones; i.e.: we don't need speech recog or natural language processing in UEFI.
You can find the full discussion as is at https://edk2.groups.io/g/rfc/topic/32841464
My Github