Uli's Web Site
Recently, I made an offhand comment about the bugginess of auto-completion in iTunes and Safari. I thought I had already blogged about this, but I apparently only filed a bug with Apple. So, let's rectify this in the hope that it'll help other programmers create good implementations of auto-completion.
The problem with iTunes's auto-completion is that it changes the uppercase/lowercase-ness of characters. So if I typed in a string with the wrong spelling before, it will always "mis-correct" the correct spelling I entered to the wrong one. It's the same in Safari's form fields: If I enter case-sensitive text into a form wrong once, there is no way to type it in the right way after that. Every time I close the field, auto-completion is triggered and it "fixes" the spelling.
In addition, Safari takes the longest possible match for its URL auto-completion, which sounds sensible until you have visited Amazon once. Amazon gives you a session ID and encodes it in the URL. So, every time I type in amazon.de, it auto-completes the last session ID I had. Of course that session is no longer valid. Luckily Amazon just gives me a new fresh session in that case, but I end up on whatever page the last session was on (because that part was auto-completed, too).
Essentially, I can't just type in a URL and hit return. I type in a URL, then look whether the computer changed it, delete whatever the computer added an then hit return. This is what other OSs used to do, but why does my Mac do that now???
In MacOS 9 days, I think it was iCab or IE that actually implemented auto-completion the right way: Like in any other text field, when you hit return, the return character would replace the selection. So, if I type in some text and hit return, I get the text I typed in. Since the auto-completed text is always selected, that effectively killed auto-completed text. Hit the right arrow key to accept the auto-completed text by unselecting it before hitting return.
Heck, even REALbasic, the much-ridiculed ugly duckling of programming languages got it right. Auto-completed text was simply a grey shadow. Hit tab to turn it into real text. If you type anything else, the grey text disappears again.
So, what is so bad about Safari's and iTunes's implementations? Auto-completion is broken when it doesn't just complete what I enter, but modifies it. Auto-completion is supposed to be a helpful feature. A ground rule in good UI-design is that the user knows better than the computer, and you'd do better not to get in their way. Provide helpful hints, but leave the final, explicit decision up to the user. When the computer starts telling the user what to do even though the user knows better, the user grows frustrated. Believe me, I'm the living proof.
Luckily, I long ago started using the CDDA menu item to load the names of titles into iTunes, and Safari keeps forgetting what I enter into its forms anyway, so the bugs don't bother me that often anymore. But any other apps with that bug? They have to be very good if they don't want to end up trashed.
Created: 2004-12-27 @001 Last change: 2004-12-27 @068 | Home | Admin | Edit|
© Copyright 2003-2015 by M. Uli Kusterer, all rights reserved.