Linked List: July 1, 2008

Tooltips for Disabled Menu Items 

Lukas Mathis suggests that Mac OS X apps should provide tooltips to explain why menu items are disabled.

Balloon Help 

System 7’s Balloon Help had an elegant solution to the “Why is this menu item disabled?” problem. Apple encouraged developers to provide separate Balloon Help strings for each state an item could be in; so, you could hover over a disabled menu item and Balloon Help would explain why the item was disabled.

iPhone 3G Is Totally Screwed 

I don’t think there’s ever before been an iPod (or iPhone) that’s had exposed screws.

Regarding AT&T’s iPhone 3G Upgrade Policy 

M. Jackson Wilkinson explains what I was missing with regard to AT&T’s upgrade policy for existing AT&T customers. In short, original iPhone owners can buy new iPhone 3Gs for $199/299 because the original iPhone wasn’t subsidized. But if you purchased a subsidized phone from AT&T and are still in your mandatory two-year contract period, you’re still paying off your last subsidy with your monthly fees, and so you’ve either got to wait or pay full price for an iPhone 3G ($499/599).

What this means, though, is that when Apple comes out with next year’s new iPhone(s), iPhone 3G owners are going to have to pay a penalty to upgrade.

Features Are a One-Way Street 

Ryan Singer:

The lesson: Once your user base has grown beyond a certain point, you cannot take features away from them. They will freak out. Whether the feature is good or bad, once you launch it you’ve married it.

Jacqui Cheng on AT&T’s iPhone 3G Pricing/Plans 

Sounds like current AT&T customers who are under contract with phones other than the original iPhone are stuck paying significantly higher up-front prices. I don’t get it.

‘What Happened Here’ 

Perhaps you think of Jeffrey Zeldman as a designer or as a web standards evangelist. He is those things, but first and foremost the man is a writer, and all else he does stems from that. This is the good stuff.

This is why I think today’s news about Google and Yahoo indexing Flash content is bad news:

Adobe is providing optimized Adobe Flash Player technology to Google and Yahoo! to enhance search engine indexing of the Flash file format (SWF) and uncover information that is currently undiscoverable by search engines.

It’s completely closed and opaque. Adobe is only providing the magic recipe to Google and Yahoo; all other search engines remain locked out.

Rogers’s Exorbitant Early Cancellation Fees 

This is usury:

An Early Cancellation Fee (EECF) applies if, for any reason, your service is terminated prior to the end of the service agreement. The ECF is the greater of (ii) $1100 or (iii) $220 per month remaining in the service agreement, to a maximum of 400 (plus applicable taxes), and applies on each line in the plan that is terminated.

Outrageous.

Update: Apparently it was a typo that has since been corrected. The page now reads: “The ECF is the greater of (ii) $100 or (iii) $20 per month remaining in the service agreement, to a maximum of $400,” which is reasonable.

Regarding Disabled Menu Items 

Joel Spolsky recommends not disabling menu items in context where they can’t be used:

Instead, leave the menu item enabled. If there’s some reason you can’t complete the action, the menu item can display a message telling the user why.

This is why Spolsky is a Windows developer, not a Mac developer. Disabling menu items when they can’t be used is a fine practice — it means that the visual state of a menu item reflects the actual state of the command it represents. One can argue that this can be confusing for users who don’t understand why a particular menu item is currently disabled, but it’s a classic trade-off. Spolsky’s suggestion — that you leave all menu items enabled all the time and show an alert when they’re chosen but can’t be used — would be irritating as hell every time you ran into it. (I’m reminded of Mac apps which don’t supply any Help content but which leave the default Help menu in place, with an “AppName Help” menu item that does nothing but show an alert stating that “Help is not available for AppName.”)

Spolsky’s suggestion is also predicated on the assumption that the user is stupid. Better is to assume that the user is clever and curious and will be able to figure out for themself why a certain command is currently disabled.

Google Learns to Crawl Flash 

Not sure if this is good news or bad news.

iPhone 3G Guided Tour 

Bob is back for another video tour.