w3c / aria-at-automation-driver

A WebSocket server which allows clients to observe the text enunciated by a screen reader and to simulate user input
Other
10 stars 6 forks source link

Swap out Node.js module for simulating keypresses in Windows #25

Open jugglinmike opened 1 year ago

jugglinmike commented 1 year ago

Currently, this project uses the Robot.js Node.js module to simulate keypresses in Windows. Unfortunately, the project is no longer maintained, and the package can not be installed using current versions of npm.

I originally submitted a solution for this in gh-15, but @mzgoddard and I ultimately decided that approach would be detrimental to the project in the long term.

Z is working on an alternative short-term solution which relies on a fork of the Robot.js project. We would prefer to address this by depending on a more widely-used module, namely Nut.js. We're defering this fix because we're not certain it will work (the operating system events generated by Nut.js may not be sufficiently low-level for the purposes of this project) and because it will require additional effort to research and implement.

WestonThayer commented 1 year ago

I know JAWS support is still on the roadmap, so you may already be aware of this, but just in case — in my tests Robot.js was not able to send keyboard shortcuts that JAWS picks up. It looked like Nut.js uses the same techniques under the hood. Just sharing on the off chance it's helpful!