July 10, 2006

If you can answer this, you are not paying attention

Here is a particularly appalling piece of linguistic blindness on the part of the software authors at a computer company. My instantiation of a mailer that I use has been automatically updated, and when I try to start it up I see a dialog box with this message in it:

Mail has been updated. Do you want to allow the new version to access the same keychain items (such as passwords) as the previous version?

This change is permanent and affects all keychain items used by Mail.

Below are two buttons. One says Don't Change. The other says Change All.

But wait a minute: which of those is supposed to mean "Yes, allow the new version access to the old passwords", and which is "No, I have changed my mind about this, don't allow access?"?

To repeat, the question is "Do you want to allow the new version to access the same keychain items (such as passwords) as the previous version?" Nowhere in this interrogative clause does the lexeme change, or any synonym of it, occur. I am asked a yes/no question about allowing access. Do I want to continue allowing Mail to have access to the necessary passwords to do its job? Yes, I do. But neither button is labeled Yes. (Update: By the way, I'm not suggesting one of them should be labeled yes; there is a matter of policy here, which Bill Poser explains in this very perceptive post. I'm just noting that neither button is labeled with an imperative that means "Yes, allow access".)

Sure, there is a Help panel that can be accessed from this dialog box, but it's completely useless. It tells me what I know, and does not mention the key thing that I don't know and need to know. It just provides another instance of the same problem. It does use the lexeme change, but not in the right context. It says that if an application changes (i.e., is replaced by a new version) it cannot be fully trusted, so it is not automatically permitted access to the same passwords and security codes as the previous trusted version. And it explains that when this happens "a dialog appears asking you to grant permission." But nowhere does it explain how either "Don't Change" or "Change All" could conceivably be interpreted as granting permission.

There is a sense in which I don't want any change: I want all my passwords to stay the same, and I want no change in the usual routine where the Mail application is allowed access to the relevant servers so it can download my mail. "Don't Change" seems a perfectly reasonable command to cover this.

But in another sense, I do want a change: since I do want the new version of Mail to operate, I want the actions of the system to change so that the new version of the Mail program will be granted access to the same servers as the old one. I want all servers and security daemons to change their behavior and respond to the new version. "Change All" seems a perfectly reasonable command to cover this.

It all boils down to this question: Change what? And in the case of "Change All", all what?

How the hell does the writer of this dialog box expect me to know which sense of "changing" things is supposed to be the relevant one? Am I expected to read the mind of the developer? Is it a change when you allow a new program access to old passwords? Yes. Is it a change when you stop a program from getting its familiar access to passwords on grounds that its object code has been tampered with? Yes.

Let me stress at this point that my point here is not about what I should do. I don't want a thousand people to mail me instructions concerning which of the two buttons to click to keep Mail working. (Update: People are doing so already, of course. But then nobody ever listens to what I tell them. Just don't join them, OK?) This is Language Log, not a software users group mailing list. My point is linguistic.

Producing language that other people will be able to understand involves not just having a picture in your mind of the scenario and designing a nice-looking (and policy-compliant) dialog box that you feel represents your view of it. You have to deploy a shared linguistic system, according to established rules, using lexemes of known meaning, to present that picture to others in a way that will work for them. You have to consider whether there are other ways of viewing the situation at hand. You have to examine the wording you have chosen to see if it has ambiguities or unclarities. You have to put yourself in the place of a person who did not work with the developers of the operating system, someone who sees your dialog box without the benefit of any prior experience with the way you conceptualize things, and you have to ask yourself whether they would understand what to do.

Don't worry, I'll find out what to click. I can use trial and error, or call a friend, or consult the excellent gurus at UCSC's Humanities Division, or phone a tech support line... Well, maybe not the latter; I don't have the time to spend three quarters of an hour listening to "The Girl from Ipanema" playing over a phone connection to India. But I'll figure something out. Don't write me about it. Just take note of what the actual point is here, because it is much more general than whether I am just about to enable my Mail program to continue functioning or to disable it by the button choice I make. Sure, there will be some answer to which of the two baffling buttons I should click on, and there is some reason that once seemed sensible to someone concerning why the wording is the way it is. But that is not of interest. It has nothing to do with what I am talking about.

It is a simple matter of the semantics of English that "Do you want to allow the new version access?", having the form of a closed interrogative clause, has exactly two appropriate answers, and neither of them requires or reasonably includes the lexeme change for its expression. The two answers are (1) "Yes (I do want to allow the new version access)", and (2) "No (I don't want to allow the new version access)". Neither of those meanings is expressed either by "Don't Change" or by "Change All". The dialog box is incoherent. That's a purely linguistic observation, and will not be altered by my coming to know which button to click. The message in that box will baffle every user — or at least, those users who are not baffled have not been paying attention. It is a disgracefully and needlessly unfriendly misfeature.

Let me add that the operating system that has done this to me is OS X, running on my Apple Macintosh G4 notebook computer — superb software running on a marvellous machine. It is just astounding that anyone uses Windows machines at all anymore, given that both OS X and Linux are of such overwhelmingly superior quality. This post is not about criticizing Apple's software, which is better than almost anything that can be found in the industry. It is about the inadequacy of the attention to linguistic detail found throughout the industry. It appears that in software development divisions there is typically no one technically trained in syntax, semantics, and pragmatics overseeing the choice of language in the dialog boxes and help panels that are written. The problem is that in most software divisions, the team has no linguist (or linguistically sophisticated technical writer — the degrees held matter less for this purpose than the linguistic acumen).

Posted by Geoffrey K. Pullum at July 10, 2006 11:02 AM