Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The oninputreport event handler of the HIDDevice interface processes inputreport events.

The event fires when a new report is received from the HID device.


HIDDevice.oninputreport = function;
HIDDevice.addEventListener('inputreport', function);


The following example demonstrates listening for an inputreport event that will allow the application to detect which button is pressed on a Joy-Con Right device. You can see more examples, and live demos in the article Connecting to uncommon HID devices.

device.addEventListener("inputreport", event => {
  const { data, device, reportId } = event;

  // Handle only the Joy-Con Right device and a specific report ID.
  if (device.productId !== 0x2007 && reportId !== 0x3f) return;

  const value = data.getUint8(0);
  if (value === 0) return;

  const someButtons = { 1: "A", 2: "X", 4: "B", 8: "Y" };
  console.log(`User pressed button ${someButtons[value]}.`);


# dom-hiddevice-oninputreport

Browser compatibility

BCD tables only load in the browser