Contact emails
[email protected], [email protected], [email protected]


Explainer
https://github.com/whatwg/hid/blob/main/EXPLAINER.md


Specification
https://hid.spec.whatwg.org


Design docs

https://web.dev/hid/
https://web.dev/hid-examples/


Summary
The WebHID API enables web applications to interact with Human Interface 
Devices (HIDs) over USB and Bluetooth beyond standard system input mappings 
(such as mice, keyboards, touchscreens, and standard gamepads). Web 
applications can request user permission to connect to HID devices, send and 
receive input, output, and feature reports, and inspect report descriptors. 
WebHID shipped on desktop platforms (Windows, macOS, Linux, and ChromeOS) in 
Chrome 89. This launch brings the existing WebHID API to Chrome on Android in 
Chrome 158 (relying on new OS support in Android 17 / API level 37 and later) 
with no changes to the web-exposed API surface. Popular uses today include 
customizing mechanical keyboards, keypads, and gaming mice, calibrating 
gamepads, and integrating hardware headset call controls in call centers. 
WebView is not supported, as it does not have a device chooser UI or 
permissions UX affordances. This feature can be controlled by the following 
enterprise policies: * 
[DefaultWebHidGuardSetting](https://chromeenterprise.google/policies/#DefaultWebHidGuardSetting)
 * 
[WebHidAllowAllDevicesForUrls](https://chromeenterprise.google/policies/#WebHidAllowAllDevicesForUrls)
 * 
[WebHidAllowDevicesForUrls](https://chromeenterprise.google/policies/#WebHidAllowDevicesForUrls)
 * 
[WebHidAllowDevicesWithHidUsagesForUrls](https://chromeenterprise.google/policies/#WebHidAllowDevicesWithHidUsagesForUrls)
 * 
[WebHidAskForUrls](https://chromeenterprise.google/policies/#WebHidAskForUrls) 
* 
[WebHidBlockedForUrls](https://chromeenterprise.google/policies/#WebHidBlockedForUrls)


Blink component
Blink>HID


Web Feature ID
webhid


Motivation
No information provided


Initial public proposal
No information provided


Search tags
webhid, hid


TAG review
https://github.com/w3ctag/design-reviews/issues/370


TAG review status
Issues addressed


Origin Trial Name
WebHID


Goals for experimentation
Enable testing on Android for websites that were previously designed to work 
only with the WebHID implementation in desktop Chromium.


Chromium Trial Name
WebHID


Link to origin trial feedback summary
https://github.com/WICG/webhid/


Origin Trial documentation link
https://github.com/WICG/webhid/blob/master/EXPLAINER.md


Risks




Interoperability and Compatibility
No new interoperability or compatibility risks beyond the desktop launch. 
Bringing WebHID to Android improves cross-platform compatibility for existing 
WebHID web applications across desktop Chrome and Chrome on Android.

Gecko: Negative (https://github.com/mozilla/standards-positions/issues/459)

WebKit: Oppose (https://github.com/WebKit/standards-positions/issues/510)

Web developers: Strongly positive (https://crbug.com/40628009) USB headset 
vendors want to use WebHID to improve integration of call control features in 
web-based softphone applications (answer/reject/end call, microphone mute, 
redial, etc): 
https://developer.jabra.com/site/global/sdks/web/documentation/index.gsp 
Hobbyists are using WebHID to control niche devices like Razer Kraken Kitty: 
https://twitter.com/sarahemm/status/1314006489510666241

Other signals:


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that it 
has potentially high risk for Android WebView-based applications?
No information provided



Debuggability
n/a


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, 
ChromeOS, Android, and Android WebView)?
No


Is this feature fully tested by web-platform-tests?
No
External web-platform-tests (https://wpt.fyi/results/webhid) verify IDL 
exposure and permissions policy, but do not exercise the full API because WPT 
cannot simulate connected HID devices. Device enumeration, report I/O, and 
permissions UI are covered by Chromium's internal web tests (wpt_internal/hid/) 
as well as Chromium unit, browser, and Android instrumentation tests.


Flag name on about://flags
No information provided


Finch feature name
No information provided


Non-finch justification
No information provided


Rollout plan
Will ship enabled for all users


Requires code in //chrome?
True


Tracking bug
http://crbug.com/40628009


Launch bug
https://launch.corp.google.com/4459414


Estimated milestones


Shipping on desktop 89

Origin trial desktop first 86

Origin trial desktop last 88

Shipping on Android 158

DevTrial on Android 154




Anticipated spec changes

Open questions about a feature may be a source of future web compat or interop 
issues. Please list open issues (eg links to known github issues in the project 
for the feature specification) whose resolution may introduce web 
compat/interop risk (eg, changing to naming or structure of the API in a 
non-backward-compatible way).
No information provided


Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5172464636133376?gate=4921741292994560


Links to previous Intent discussions
Intent to Prototype: 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGhmGSMSvLAQs-bCNEAuugASEHyRApuG%2B0ob3r%2Bo53GOz%2Bh0fQ%40mail.gmail.com
Intent to Experiment: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/LoyzK8xTRME/m/WQLaGQ99CQAJ
Intent to Ship: 
https://groups.google.com/a/chromium.org/g/blink-dev/c/rL1csFYD1Ms



This intent message was generated by Chrome Platform Status.

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ae3b5f3.8438a57e.1c08c0.014b.GAE%40google.com.

Reply via email to