Device Access

WebHID

Probing…

WebHID is a web platform capability in the Device Access category. Communicate with human-interface devices beyond keyboard/mouse. Supported in Chromium 89+; not available in Firefox and Safari. Requires a secure context (HTTPS or localhost) and a user gesture such as a click or tap.

Secure contextUser gesture

Try it

Loading demo…

Code

const [device] = await navigator.hid.requestDevice({ filters: [] })
console.log(device.productName, device.collections.length, 'collections')

await device.open()
device.addEventListener('inputreport', (e) => {
  const bytes = [...new Uint8Array(e.data.buffer)]
  console.log('report', e.reportId, bytes)
})

Browser support

Chromium
89
Firefox
No
Safari
No

Frequently asked questions

Which browsers support WebHID?

Supported in Chromium 89+; not available in Firefox and Safari.

Does WebHID require HTTPS?

Yes. WebHID needs a secure context, so it only works over HTTPS (or on localhost during development).

What is WebHID used for?

Communicate with human-interface devices beyond keyboard/mouse.

Can I try WebHID in my browser?

Yes. shwcs.net runs a live WebHID demo that probes your current browser and lets you try the API. Everything runs locally — nothing is sent anywhere.

MDN reference ↗ Specification ↗