awesome-webhid icon indicating copy to clipboard operation
awesome-webhid copied to clipboard

Curated list of resources relating to the WebHID (Human Interface Device) API

Awesome WebHID Awesome

Curated list of resources relating to the WebHID (Human Interface Device) API

WebHID is a browser API (navigator.hid) that provides access to HID input/output devices. It's a higher level of abstraction than the WebUSB and Web Bluetooth APIs, but lower than the Gamepad API and basic input (pointer/keyboard).

Contributions welcome. Add links through pull requests or create an issue to start a discussion. See contribution guidelines.

Contents

  • Status
  • Good to know
  • Specification & documentation
  • Blogs & articles
  • Talks & videos
  • Devices
  • Tools
  • Bluetooth, USB, & HID reference
  • Libraries
  • Demos, experiments & hacks
  • Real-world applications
  • Inspiration from elsewhere
  • Ideas
  • Forums & discussion
  • Miscellaneous
  • Related

Status

Enabled by default since Chrome 89 (March 2021).

Good to know

  • WebHID is not a W3C Standard nor is it on the W3C Standards Track(ref).
  • Devices that generate trusted input (e.g. keyboards, mice, security keys) will not be accessible. Such devices define their reports in top-level HID collections that will be considered protected usages(ref1), (ref2).
  • Access to a device must be granted by the user via a chooser dialog provided by the browser, similarly to WebUSB and Web Bluetooth. Launching the chooser must be done from the context of a user gesture (e.g. a mouse click).
  • Neither the WebUSB(ref) or Web Bluetooth(ref) APIs allow access to HID-class devices.

Specification & documentation

Blogs & articles

Talks & videos

None yet.

Devices

Devices that work well with WebHID, and device-specific abstraction libraries. Do also file an issue to inform others of devices that don't. Not all devices in the USB HID device class will communicate using the high-level abstractions.

Candidates

Tools

Software that aids working with devices.

  • USBDeview - View device information.
  • USB Device Tree Viewer - View device information including interface and HID descriptors.
  • node-hid - Cross-platform library for accessing USB HID devices from Node.js or Electron.

Bluetooth, USB, & HID reference

Information about the underlying technologies, including specifications and explanations.

Libraries

Demos, experiments & hacks

Real-world applications

Inspiration from elsewhere

Transferrable inspiration from related areas such as general Bluetooth/USB HID, Web Bluetooth, and WebUSB.

Ideas

Great idea, no time or no device? File an issue to share.

  • Device explorer tool - Web tool for conveniently viewing device info, monitoring input reports, and sending output/feature reports; something in the style of this one for Web Bluetooth.

Forums & discussion

Miscellaneous

None yet.

Related

License

CC0