This sounds perhaps a bit rude but it isnt possible to optimize for every possible use case someone somewhere may have. At the end of the day, a line has to be drawn.
It's not about optimizing, it's about not doing additional work just to break the expected behavior of the web platform. So far there was no explanation of where default behavior breaks keyboard usage, for example, only opinions.
I meant optimizing every possible usecase. Did you know the button on this very site is not selectable? When you use real semantic html with submit inputs, not buttons, there is text that is not selectable. But it is a button? See what I mean? Draw the line somewhere.
As mentioned in other comment, not all html which looks like a button is a button. It does in fact take extra work to make everything selectable. On native apps it is even harder because the frameworks do not have selection as built in.
To be clear, I HATE that almost everything isn't selectable. It is one of many reasons why I never use mobile apps. Still, somewhere there has to be a line to ship anything.
I think this is where semantic HTML comes in. Doing other wack or bespoke things is, IMO, not just bad form - it's more work. Just do things the easy way and it'll work.