There's always the option of typing your stuff in another program entirely and copy/pasting. Sure, not everyone would be willing to do that, but it's really not that inconvenient if you know your keyboard shortcuts (ctrl+a, ctrl+c, alt+tab, ctrl+v in that order, easy for a competent computer user). And socially anxious people may be more comfortable with that overall.
There are quite a few browser extensions that make this easier. The best is Pentadactyl, a complete UI overhaul for vi bindings everywhere that lets you hit Control + i to open any text field in any (blocking) external editor (gvim -f by default), so you can type out your message and then type ZZ to send all the text to the field at once. However, it’s only for XUL browsers. I think there are also WebExtensions that offer similar external editor support, but when I use browsers limited to them I use wasavi, which pops up a javascript-powered vi clone inside the browser (but still only sends the text down to the area when you save). IIRC SurfingKeys also has a similar thing, with a codemirror-based editor that’s IME more limited than wasavi. Of course none of these work on exceptionally complicated things like Google Docs, but they often work on simpler WYSIWYG rich text areas, and wasavi and maybe SurfingKeys even support converting the HTML within them to Markdown while editing, and back when you save.
Copy+paste won't trigger keyboard events to my knowledge. So if the page was just simulating a text input field, paste wouldn't work. (Which would cause issues e.g. pasting account numbers to be fair.)