Problem
Tab audio and screenshot capture depend on getDisplayMedia, which is unavailable or limited on many mobile browsers. The current UI can expose controls that will fail at runtime.
Evidence
apps/web/js/capture.js:184-198 calls navigator.mediaDevices.getDisplayMedia directly for tab/system audio and screen capture.
index.html:1508-1510 defines the + Tab Audio button without mobile/feature-specific capability gating in the markup.
Acceptance criteria
- Detect
navigator.mediaDevices?.getDisplayMedia before showing/enabling tab-audio and screenshot capture controls.
- Provide clear unavailable-state UI when the browser cannot support the feature.
- Ensure unsupported mobile browsers do not throw uncaught errors when users tap related controls.
- Add a browser smoke check for both supported and unsupported capability states.
Problem
Tab audio and screenshot capture depend on
getDisplayMedia, which is unavailable or limited on many mobile browsers. The current UI can expose controls that will fail at runtime.Evidence
apps/web/js/capture.js:184-198callsnavigator.mediaDevices.getDisplayMediadirectly for tab/system audio and screen capture.index.html:1508-1510defines the+ Tab Audiobutton without mobile/feature-specific capability gating in the markup.Acceptance criteria
navigator.mediaDevices?.getDisplayMediabefore showing/enabling tab-audio and screenshot capture controls.