Your basic philosophy is spot on. We just need to be aware not to break default browser behaviors. In your Button (mis)behaviour example, the enhanced button is broken and weird because of your javascript enhancement. For example, a user wanting to right-click the button to copy the link address or open the link in a new window, is not allowed to do so. And if I select a paragraph of text on the page and accidently release the mouse over the button, I will be sent away from the current page.
It may not be an issue for most users, but as you say, we must provide fallbacks and error resolutions in even the rarest of scenarios
Your basic philosophy is spot on. We just need to be aware not to break default browser behaviors. In your Button (mis)behaviour example, the enhanced button is broken and weird because of your javascript enhancement. For example, a user wanting to right-click the button to copy the link address or open the link in a new window, is not allowed to do so. And if I select a paragraph of text on the page and accidently release the mouse over the button, I will be sent away from the current page.
It may not be an issue for most users, but as you say, we must provide fallbacks and error resolutions in even the rarest of scenarios