The Chromium web browser has support for Web Bluetooth.
This is still considered experimental on Linux and must be enabled in the Browser setting via chrome://flags/#enable-experimental-web-platform-features.
Although technically it is experimental, we have found that it works perfectly well for our web app. https://code.pybricks.com/
The app can detect if a browser supports Web Bluetooth or not. For example if using Firefox (which doesn’t have Web Bluetooth support) or using Chromium with experimental web features disabled, users will see this error message when clicking the Bluetooth button.
If Web Bluetooth is enabled, users will see this dialog box instead.
However, we recently discovered that Chromium installed via snap does neither. Clicking the Bluetooth button simply does nothing. This can be fixed by manually connecting the Chromium snap to the BlueZ interface.
It does not seem reasonable to expect all web developers using Web Bluetooth to add a special case to their web app to detect Chromium running in a snap without bluez connected (and this is very probably not even technically possible at this point in time) and to communicate to their users that there are extra steps needed to manually configure their web browser via a terminal window.
Therefore we are requesting that the chromium snap be allowed to automatically connect to the bluez interface.