files/en-us/web/api/xrsession/inputsources/index.md
{{APIRef("WebXR Device API")}}{{SeeCompatTable}}{{SecureContext_Header}}
The read-only inputSources property of the
{{DOMxRef("XRSession")}} interface returns an {{domxref("XRInputSourceArray")}} object
which lists all controllers and input devices which are expressly associated with the
XR device and are currently available. These controllers may include handheld
controllers, XR-equipped gloves, optically tracked hands, and gaze-based input methods.
Keyboards, gamepads, and mice are not considered WebXR input sources.
[!NOTE] Traditional gamepad controllers are supported using the Gamepad API.
An {{domxref("XRInputSourceArray")}} object listing all of the currently-connected input controllers which are linked specifically to the XR device currently in use. The returned object is live; as devices are connected to and removed from the user's system, the list's contents update to reflect the changes.
You can add a handler for the XRSession event
{{domxref("XRSession.inputsourceschange_event", "inputsourceschange")}} to be advised
when the contents of the session's connected devices list changes. You can then either
get the value of inputSources to examine the list, or you can refer to a
reference to the list that you've previously saved.
{{Specifications}}
{{Compat}}