File Choosing Widgets
Michael McCracken has started a discussion about widgets for choosing files (and folders) and displaying the currently chosen item. Apple hasn’t provided any guidance in this matter and uses a variety of designs:
- The Internet preferences pane uses a uneditable, undraggable text field with the form “"Downloads" on volume "HD".” (Yes, it uses straight quotes.) You pick the folder using a Select… button. It also has pop-up menu for picking the default Web browser, which shows the current selection and also has an Other… button.
- Mail uses an editable, undraggable text field showing the ~ path and a Choose… button. It doesn’t care whether the text you type in the field forms a valid path.
- Project Builder is like Mail, except that since its dialog is for creating files, if the path you type doesn’t exist it will create all the necessary intermediate folders.
- Safari uses a pop-up menu with two items: the selected folder and an Other… command.
- Terminal uses an uneditable, undraggable text field that shows the / path and has a Select File… button.
Third-party applications use a variety of designs, too:
- BBEdit shows the ~ path in an uneditable, draggable text field and has a Set… button.
- DropDMG uses a pop-up menu that shows the chosen folder, along with recent folders, favorite folders, and an Other… command.
- EyeTV shows the / path in an uneditable, undraggable text field and has a Change… button.
- iCab has a uneditable, undraggable text field that shows the : path and has a Choose… button.
- Mailsmith uses an undraggable text field that shows the name of the selected file. At the right of the text field is a down-pointing triangle that pops up a menu with an Other… command.
- Internet Explorer uses the same form as the downloads folder portion of the Internet preferences pane, except that the title of its button is Change Location….
- OmniWeb has an editable, undraggable, non-validating text field that shows the / path and has a Find… button.
Here’s my take:
- Text field or pop-up menu?
- Use a pop-up menu when space is scarce or when you want to provide preset choices, such as recent folders or a list of known Web browsers. Otherwise use a text field and a button.
- Should the text field show just the filename, or its path?
- I like to see the full path, starting at ~.
- What if the path is too long to fit?
- It should be ellipsed in the middle.
- Should the text field accept drags?
- Of course!
- Should the text field be editable?
- Some people don’t like this because the user shouldn’t have to deal with paths. On the other hand, it can be a nice time-saver for the user. One thorny issue is what to do about invalid paths. It’s easy to validate the text field after the user’s done typing, and to revert it if the path isn’t valid. However, I don’t like text fields that don’t commit until you press Return and that show invalid data in the interim. Since I haven’t seen how to do this right, I’ll say that the text field should be uneditable.
I’m sure there are many other issues to consider…