Adafruit WebUSB Arduino Example
I knew WebUSB existed but not much more than the name implying some sort of USB capability for web applications. I was motivated to look into it a bit more after learning about an index of browser diagnostics tools. Initial inconclusive signs were not promising but I kept looking. After a bit I thought: I want to explore this capability for my electronics projects. Maybe somebody at Adafruit has already looked into this? Searching for WebUSB on Adafruit Learn gave me a hit: Using WebUSB with Arduino and TinyUSB. So yes, they have!
I was happy to see the hardware in this example was Adafruit's Circuit Playground Express (3333), because I have one already on hand. When following an example for the first time, it's always nice to have the exact same hardware that I know will work, rather than similar hardware that should work. Despite that advantage it was not smooth sailing. I got stuck when it came to changing my Arduino IDE's Tools/USB Stack to "TinyUSB": there wasn't a "USB Stack" option under "Tools" menu! I ran around in circles for a while before I eventually figured out I was using the wrong Arduino board support package. This example required "Adafruit SAMD Boards" and not "Arduino SAMD Boards". I was thrown off because "Arduino SAMD Boards" included support for a bunch of Arduino boards and Adafruit's Circuit Playground Express. I was able to select the proper board without realizing I was in the wrong board support library. I don't know why Arduino claims support for boards that aren't theirs, when the manufacturer has provided their own board support. It's confusing, this is the second time they bit me, and I'm not happy.
Anyway, once I installed Adafruit's board support library and selected Circuit Playground Express under Adafruit's umbrella, I had a "USB Stack" option under "Tools" and could proceed to follow along with the example with no further issues. My first run used Chrome on my desktop computer, and after that success I tried it with Chrome on my Android phone. It works there, too!

And I can verify chrome://device-log
is no longer empty on the phone, it now shows the newly-connected USB hardware.
This is huge! WebUSB might enable many project ideas that involve using one of my retired Android phone as the display (or more) of an electronics project. Which ones? I won't know for sure until I learn more about the constraints of Android Chrome WebUSB support. I would have to pick a relatively simple one as a starting point before jumping into the more complex ideas. There's a lot of study ahead. This Adafruit example was unfortunately lacking on background and theory of WebUSB so I'm on my own. I think it was written for people who already have the appropriate background, and that's not me. Well, not yet. I need a refresher course on web development, and I will need to learn technical details of USB as well.