Many thanks to André (PY2KGB / VE2ZDX) who shares a link to his web-browser-based CW practice tool. André notes:
I’m writing to share a tool I wrote to help myself with learning CW. I recently found out that people have been enjoying this tool so I’m sharing it with you and if you think it’s something worth sharing feel free to do so.
It was made mobile first and if you can’t hear the sound, disable the silent mode. It outputs the sound the same way WebSDRs do so it has that little issue with the sound that SDRs do, but it is browser related.