Folks can thumb their noses at Reddit but the top comment in every post about iOS updates since 26.0 was released is some variation of "fix the keyboard." The problem seems very real for a lot of users.
Something like this:
var result = [];
body = document.body;
sel = window.getSelection(); range = document.createRange(); range.selectNodeContents(body); sel.removeAllRanges(); sel.addRange(range);
selString = sel.toString();
// Call completion to finish completion(selString);
It was pretty hilarious to me that for so many years the keyboard on iOS only had CAPITAL letters. No matter the state of the shift key, the letters on the keyboard just stayed the same. After many years they finally figured it out, but it's one example of many about how Apple just doesn't have the great UX people claim they do.
What drives me insane though, is double tapping a word is supposed to select that word. But I think starting in iOS 18 it started selecting the word and a random amount of surrounding words, but only about half the time. I couldn't tell you what it could possibly be trying to do but it's maddening.
If you tap while a word is selected, it won’t appear. If you tap on the cursor while a word isn’t selected, it will appear.
… is not being able to paste into an empty box unless I type a letter there and select it/clobber it/overwrite it
And I just LOOOOOVE not being able to tap a URL in safari and get to the end of it to add parameters or change a path anymore…
Just gave my MacBook that hasn’t been turned on in months away(i haaaaate Tahoe) and been using GrapheneOS on a pixel 7a.
so far I’m not in love with it but I’m getting used to it and starting to like downloading apps anonymously (if I name the app, I’ll probably get scolded) anyway this might be the end of the line for me and Apple.
If it's 1st or 2nd, then it's ok.
But the correction offers are still okay for me, I can mash keys around my email username and one of the corrections offered will be my username...
Example but the issue not limited to web browsing; Safari will do nothing, I tap again, it does the thing, then it does the thing again due to the second tap. I have to tap back to get to where I really wanted to go.
I remember seeing the videos about cpu usage spiking over 40% just to show the control center.
And similarly, even on a Mac I find myself clicking on links and button multiple times, just for things to work. It has a dedicated keyboard, how is it that they messed it up so much that a physical keyboard stops working. It's an interrupt based interface, it takes less than a millisecond to process things, how can someone mess things up so freaking stupidly.
Apple makes money selling hardware; they have a vested interest in making things slower/worse to incentivize people to buy newer hardware.
This is why you can never really trust Apple and also why no matter how bad Windows gets, it's still a better deal because at least you can count on the fact that PC businesses will compete on the hardware front to get your money.
Choosing Apple is a lot like being in an abusive relationship; you can't leave because the switching cost are quite high, so you tolerate a lot more abuse than you would be willing to otherwise.
And this is the reason people try to not rely on Apple software too much; if you do, they truly have you by the balls.
Sounds like Apple management enabled a quality assurance failure that is fostering so many distractions for users it's turning people against Apple.
Tim Cook handing his replacement a dumpster fire.
It's kind of a paradox, but in many cases you need to actually discard touch inputs until your UI state has transitioned as a result of previous inputs. This gets extremely nuanced and it's hard to write straightforward rules about when you should and shouldn't do this. Some situations I can think of:
- Navigation: User taps a button that pushes a screen on your nav stack. You need to discard or prevent inputs while the transition animation is happening, otherwise you can push multiple copies of that screen.
- Async tasks: User taps a button that kicks off an HTTP request or similar, and you need to wait on the result before doing something else like navigation or entering some other state. Absolutely you will need to prevent inputs that would submit that request twice. You will also need some idempotency in your API design to handle failure/retries. A fun example from the 1990s is the "are you sure you want to make this POST request again" dialog that Web browsers still show by default.
- Typing: You should never discard keystrokes that insert/delete characters while a text input field is focused, but you may have to handle a state like the above if "Enter" (or whatever "done" button is displayed in the case of a software keyboard) does something like submit a form or do navigation.
Essentially we're all still riding on stuff that the original Mac OS codified in the 1980s (and some of it was stolen from Xerox, yes), so the actual interaction model of UIs is a mess of modal state that we hardly ever actually want to fully realize in code. UI is a hard problem!
So it’s not like some longstanding industry-wide UI issues they’ve ignored forever, it’s that Apple has introduced new tradeoffs or lowered their quality standards to the point that some users feel their experience has worsened.
I have seen, far too many times, naive approaches like wrapping all click handlers in a "debounce" function cause additional issues and not actually solve the underlying problem.