There's a fairly minimal Gamepad API extension spec that defines gamepad haptics: https://w3c.github.io/gamepad/extensions.html#dom-gamepadhapticactuator-pulse. I imagine it would be relatively straightforward to thunk this to GameController/GCDeviceHaptics. Naturally, this should require a user gesture.
<rdar://problem/70315481>