On 11/2/26 4:36 p.m., Rob Pitkin wrote:
> If you're just extending WebHID to Android, you don't need LGTMs and this can
just be a PSA, but that assumes no meaningful changes between Desktop and Android.
Can you confirm?
Confirmed: there are no changes to the web-exposed API surface or the
web permission/security model between Desktop and Chrome on Android.
As noted in the summary, Android WebView remains unsupported. On
Android versions prior to Android 17 (API level 37), or if the user
has not enabled Android's system-level HID access toggle for Chrome,
navigator.hid remains exposed in secure contexts and getDevices() /
requestDevice() resolve to an empty list.
Thanks - please proceed with your launch (as you already have permission).
> ~ 6 years ago you said you had plans to convert internal tests to WPT
exposing a test-only API? (and Mike West encouraged additional WPT coverage). Did
that not pan out?
That migration hasn't happened yet - our functional tests in
wpt_internal/hid/ still rely on Chromium-internal MojoJS mocks because
WPT lacks cross-browser virtual HID device automation, though we hope
to revisit this in the future.
Now that HID is part of the Peripheral APIs workstream in WHATWG, maybe
the next step is to propose adding support to WPT via an RFC (or via a
WebDriver extension)?
> Also, https://wpt.fyi/results/webhid?label=experimental&label=master&aligned
<https://wpt.fyi/results/webhid?label=experimental&label=master&aligned>
- there are two "interface object length" failures. Are those known
issues?
Yes - I just filed crbug.com/581011725 <http://crbug.com/581011725> to
track these WPT harness failures (related to crbug.com/40188046
<http://crbug.com/40188046>).
Thanks.
On Fri, Oct 30, 2026 at 6:36 AM Mike Taylor <[email protected]>
wrote:
If you're just extending WebHID to Android, you don't need LGTMs
<https://www.chromium.org/blink/launching-features/#:~:text=Changes%20which%20extend%20an%20already%20exposed%20API%20to%20additional%20platforms%20without%20introducing%20new%20platform%2Dspecific%20risks%20may%20also%20rely%20just%20on%20a%20PSA%2C%20along%20with%20updating%20the%20ChromeStatus%20entry%20to%20reflect%20the%20new%20platform%20support.>
and
this can just be a PSA, but that assumes no meaningful changes
between Desktop and Android. Can you confirm?
~6 years ago you said
<https://groups.google.com/a/chromium.org/g/blink-dev/c/rL1csFYD1Ms/m/g7nxWoROCQAJ>
you had plans to convert internal tests to WPT exposing a
test-only API? (and Mike West encouraged additional WPT coverage).
Did that not pan out?
Also,
https://wpt.fyi/results/webhid?label=experimental&label=master&aligned
<https://wpt.fyi/results/webhid?label=experimental&label=master&aligned>
- there are two "interface object length" failures. Are those
known issues?
On 10/29/26 9:09 p.m., Chromestatus wrote:
*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
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EHID%22>
*Web Feature ID*
webhid <https://webstatus.dev/features/webhid>
*Motivation*
/No information provided/
*Initial public proposal*
/No information provided/
*Search tags*
webhid <http:///features#tags:webhid>, hid
<http:///features#tags: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
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
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 (e.g. links to
known github issues in the project for the feature specification)
whose resolution may introduce web compat/interop risk (e.g.,
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
<https://chromestatus.com>.
--
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
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ae3b5f3.8438a57e.1c08c0.014b.GAE%40google.com?utm_medium=email&utm_source=footer>.
--
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/ce598731-886a-40fa-bb9a-1f759b552978%40chromium.org.