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.
