Suddenly I cannot cast from Microsoft Edge or Google Chrome. I had been doing it for years, but now on each browser I get "source not supported". Is there a way around this, other than hook up an HDMI and not use Roku?
That's a Chromium/Chrome issue (happens on occasion with Chrome/Chromium updates) and Chromecast Protocol (aka Google Cast)/DIAL module issue (happens on occasion with Chromecast Built-in module updates on Android/Android TV devices).
For the record, it (loss of casting from Chrome) doesn't affect just Roku devices - it also happens with my WebOS LG TVs, Android/FireTV based devices, and everything else that accepts mirroring/casting etc.
You need to direct the issue/complaint to Google (or MS, for Edge, though of course its based on Chromium, so its best to go to Google with the issue).
You can try the troubleshooting steps at the following link as well:
https://support.google.com/chromecast/answer/3249268?hl=en
So I took some time to test Chrome/Edge (older and latest release versions of each), and they are working as they ever did: GCP/CCP (GoogleCast/ChromeCast Protocol) mirrors the (entire) desktop/tab/files to Chromecast Built-in devices (e.g. not Roku); otherwise DIAL Protocol sites (e.g. YouTube) cast (not mirrors) the tab to all DIAL compatible devices (e.g. Roku).
Try rebooting all your devices (PC, modem/router/gateway, Roku) and see if the DIAL casting (assuming from a YouTube tab) is working again.