The XRInputSourcesChangeEvent() constructor creates and returns a new XRInputSourcesChangeEvent object, representing an update to the list of available WebXR input devices. You won't typically call this constructor yourself, as these events are created and sent to you by the WebXR system.


new XRInputSourcesChangeEvent(type, eventInitDict)



A string indicating the type of event which has occurred. This string must always be inputsourceschange.


An object that provides options to configure the event. It may contain the following properties:

  • added: An array of zero or more XRInputSource objects, each representing one input device which is newly available to use.
  • removed: An array of zero or more XRInputSource objects representing the input devices which are no longer available.
  • session: The XRSession to which the event applies.

Return value

A newly-created XRInputSourcesChangeEvent object configured based upon the input parameters provided.

Event types


Delivered to the XRSession when the set of input devices available to it changes.


The following snippet of code creates a new XRInputSourcesChangeEvent object indicating that a single new input source, described by an XRInputSource object named newInputSource, has been added to the system.

let iscEvent = new XRInputSourcesChangeEvent("inputsourceschange", { session: xrSession,
                           added: [newInputSource], removed: [] });


WebXR Device API
# dom-xrinputsourceschangeevent-xrinputsourceschangeevent

Browser compatibility

BCD tables only load in the browser