You are discounting the ubiquity of both Flash and Java. I could easily imagine you not taking seriously other plugins like Shockwave, Unity, etc., but if your argument is based on what a given person will have installed on their machine by default, you've still got Flash and Java.
That's not perfect, but it definitely works in a pinch. Just add an opening angle bracket before br. I couldn't get the formatting correct
-If you prefer 2D, it is just as easy to bind it to libSDL. I didn't make much use of the graphics, but I used the basic sound functions to create a 256 channel additive sine synthesis soft instrument. Again, plenty of room to optimize (didn't even use sdl_mixer), and it meant that I was able to tweak the instrument code while it was running.