- Consistency: The same action should do the same thing in different places. Example: if pressing the down arrow scrolls the web page, then it should always scroll the web page.
- Modes: Modes are almost always bad - but when you have to have them, make them clearly visible. I.e., the user should know what mode they are in by looking at the screen. Example: if typing enters text in a specific text box, then that text box should be clearly highlighted so the user knows which textbox will get their text.
The fact that Flash breaks standard web behaviors is bad enough - but it is even worse because it does so completely invisibly. I get used to using my keyboard to control my web browser because - um, I am a human and I am using my computer. So, sometimes it stops working for no apparent reason. There is no way to see this problem, and the only solution is to use your mouse to click on some non-Flash component in your browser. I bet most people just think that web browers are sucky and inconsistent. The real problem is that Web plugins for common activities that take over they keyboard just shouldn't exist.
Bravo Apple. Let HTML5 and built-in web standards for common activities take over.