Node.js:
Chromium:
Electron:
Browser:
Every browser reads controllers differently (or not at all). See compatibility stats
here.
Started from the MDN example
here.
Source code is available
here.
Press a button on your controller to start