Fun (/s) example:
- Outlook email client in the browser (Firefox in my case)... typing a new email up. Hold down backspace to delete a bunch of characters... and occasionally my browser will navigate backwards. ("smart" text suggestion lagging, causing keypresses not to be always captured by the email text input box, perhaps?) At least Outlook auto-saves drafts reliably!
- I (probably) can't be mad at the individual programmer though. I'm the oddball that has reverted the browser setting for "treat backspace as browser-back, outside of text fields". I bet that never made it into a test-case anywhere.
- I could be mad at the browsers that changed that default behavior several years ago (I feel like Chrome did it first, but could be wrong), though they did it for the valid reason of protecting the (less aware, imo) users!
- I guess I could be mad at all the websites that poorly implemented form-filling, letting users get burned by accidentally going back a page and losing their input. But I can sympathize with too many "features" and not having time to implement that edge case!
Sigh, my ideals of software quality are all doomed, aren't they?
>less aware, imo
It was always a terrible feature! alt/super+left!
If I test a software requiring network connection, then I need to consider the possible states of two obvious layers: network and the os.
If both layers only have 3 qualities, with 3 distinct states, then they amount to a 3^6=729 total different unique environment my software can run in.
Then I need to test all my unique software states in all of the above cases, which is already impossible.
So are you making the point that the current abstractions are not good enough, because I cannot consider them “invisible”?
I think that's a general rule of thumb for abstractions. (I'm not sure, though; I just made it up.)