Notice that the behavior for gamepads can vary quite a lot between platforms and different browsers:
Buttons with an analog response may be detected as binary buttons on some platforms or as axes on others. This is common with the bottom triggers on the front face of the controllers (also known as R2/L2, ZR/ZL, RT/LT... and many other names). Be aware of this, it can cause some problems. Notice also that the threshold for deciding if an analog trigger is pressed or not is fairly arbitrary. Ebitengine uses a threshold of approximately 0.12.
Vibration support is still fairly limited on Ebitengine, but also on many browsers. Chrome seems to do quite well. If vibration doesn't work for your gamepad on one browser... try another. In my experience, Firefox is not great on this front.