Ben Bucksch wrote:
>...
Other bugs in the spec, besides those which Ben pointed out ...
General problems:
* The URL of the page is wrong. It should be
<http://mozilla.org/mailnews/specs/offline/>, not
<http://mozilla.org/mailnews/specs/offline/Offline.html>. See `Use
index.html' (and also `File names are lower case') in the
mozilla.org style guide <http://mozilla.org/README-style.html>.
* The title of the page (`CodeName') is wrong.
* A Mozilla specification should not have a `Marketing' person. That's
just silly.
* The abbreviation `sync' should not be used anywhere in the UI;
`synchronize' should be used instead. See `Abbreviations' in the
Windows UI guidelines
<http://msdn.microsoft.com/library/default.asp?URL=/library/books/winguide/ch14d.htm>.
* Nothing should ever be described as a `closed issue', unless results
of a usability lab study are online showing that one approach is
clearly better than the other. Describing some points as `closed
issues' is particularly inflammatory when the points have not been
discussed in the newsgroup.
Specific problems:
* There is only need for one menu item, `Go {Online|Offline}'; a
submenu is not necessary.
- `Download/Sync Now ...' is unnecessary, as you should be asked
whether you want to synchronize when you go online or offline.
This would replace the individual dialogs about sending unsent
messages and downloading unread messages.
- `Offline Settings' is available from the Account Manager, and
anyone savvy enough to use offline mode at all will know where
to find it.
- `Get Selected Messages' and `Get Flagged Messages' should not be
in the submenu, they should be in the Synchronize dialog. I
might want to simultaneously download all messages in groups I
had specified, along with flagged messages in all the other
groups, for example.
* In the message that is displayed for a non-cached message, `The body
of this message' could be changed to `This message', for a slight
increase in comprehension and zero loss in accuracy.
* In the message that is displayed for a non-cached message, the whole
of the second paragraph could be replaced by a link reading `Open my
offline settings for {accountName}'.
* The (multiple!) `Offline & Disk Space' Account Manager panels could
be replaced by an `Advanced ...' dialog accessed from a button in
the `Synchronize' dialog, since synchronization settings should be
deeply persistent between synchronizations.
* For `Startup Mode', does anyone actually *use* `Ask me at startup'?
If so, why?
* The dialog in the `When Going Online' section has four problems.
- The text of the dialog does not explain why the dialog has
appeared. I suggest: `Would you like to send the messages in
your Unsent Messages folder once you are online?'
- The title of a dialog box should be the name of the action,
the object, or (if both of those the former two would be
confusing or redundant) the application which the dialog box has
come from. So the title of this dialog should be `Going Online',
not `Send Unsent Messages'; if the title was `Send Unsent
Messages', the meaning of the `Cancel' button would be unclear.
- `Yes' and `No' should be avoided as names for buttons, as they
slow the user down by making them read the text of the dialog
thoroughly -- the old `Save changes? ( Yes ) ( No )' vs. `Are
you sure you want to discard changes? ( Yes ) ( No )' problem.
For this dialog, `Send' and `Don't Send' should be used instead.
- Negative text should never be used for checkboxes, as it
confuses the usual meaning of a checkbox as something which
turns things *on*. So in this dialog, the checkbox should not
read `Don't ask me this again'; it should read `Always ask me
when I go online'.
Using the general form `Always ask me when {situation}' for a
checkbox in an alert or dialog has two additional benefits.
Firstly, it gives the user an idea of when (and how often) they
will be presented with the dialog, allowing them to make a
better-informed decision about whether they need to see the
alert or dialog each time. Secondly, it allows exactly the same
wording to be used in the alert or dialog, as is used in the UI
which must be provided elsewhere (e.g. in the preferences) to
allow the user to turn the alert or dialog back on again.
* The same four problems apply to the dialog in the `When Going
Offline' section:
- the title should be `Going Offline';
- the text should be `Do you want to download messages for offline
use before you go offline?';
- the checkbox should be `Always ask me when I go offline';
- the buttons should be `Download', `Don't Download', and
`Cancel'.
* In the `Download and Sync' (aka `Synchronize') dialog:
- There do not need to be two separate interfaces for selecting
which folders/groups are updated -- a crude one in the
`Synchronize' dialog, and a more granular one activated from the
`Select ...' button. Instead, a single dialog with a tree
control should be used -- one which would appear (in its default
state) just as simple as the dialog shown in the spec, but which
could be expanded to allow synchronizing of individual folders
and groups <http://deja.com/=dnc/getdoc.xp?AN=717466635>.
(A checkbox for `flagged messages' could be added to the dialog
I drew in that messsage.)
- The `Go offline once synchronization is finished' checkbox
should be below all of the UI for folder/group selection, not in
the middle of it. That is, if the `Select ...' button is
retained, it should be above the checkbox.
* In the `Select Items for Offline Usage' dialog:
- The title of the dialog is too long -- I suggest `Items to
Synchronize'.
- The checkboxes should not be all in the same column; they should
be aligned under the name of the parent account/folder for
greater clarity.
* In the `Synchronizing' progress window:
- The window should not be a modal dialog. A user should be able
to access their address book, browse the Web, set up mail
filters, or whatever while the synchronization is in process.
If the dialog is modal, that should be recorded in the spec as
being a temporary measure while the synchronization code is
insufficiently advanced.
- The `Cancel' button should not be at the bottom of the window,
as this makes the window look unnecessarily similar to a dialog
(which in turn may cause some users to inadvertently cancel a
synchronization thinking that they had to confirm it). It should
be at the right of the progress meter.
- The button should not be labelled `Cancel', since (if at least
one folder or group has been synchronized already) the button
does not revert the system state to how it was when the window
opened. The button should be labelled `Stop' instead.
- The progress meter should show overall progress of the
synchronization (as measured by the number of folders/groups
synchronized so far), not progress of the individual folder or
group. Showing progress of the individual folder or group could
easily be misleading to a user who glanced at the window and saw
that the synchronization was nearly finished, when in fact it
was only the synchronization of the first folder which was
nearly finished.
To summarize all that, the window should look like this:
+---------------------------------------+
| Synchronizing ::::::::::::::::::::::::|
+---------------------------------------+
| Items remaining to synchronize: 14 | [no. of folders/groups]
| |
| [@@@@@)::::::::::::::::::::] ( Stop ) |
| |
| Server: smtp.foo.bar |
| Folder: Unsent Messages |
| Synchronized: 27 of 32 messages |
| This message: 42 kb of 168 kb | [not usually shown]
+---------------------------------------+
To avoid flickering, the `This message:' row should normally be
hidden -- it should only be displayed if it is calculated that the
current message is going to take more than two seconds to finish
downloading/uploading. (This was a frequent source of confusion for
me in 4.x -- thinking that a synchronization had stalled, when it
was just a large message downloading and no fine-grained progress
was shown.)
* In the `Get Messages' dialog, the buttons should be labelled
`Go Online' and `Cancel', not `Yes' and `No'.
* In the text `Select this {folder|group} for offline use', the word
`Select' is tautological since you're using a checkbox. The text
should be something like `Include this folder when synchronizing'.
* In the Folder/Newsgroup Properties dialogs, just as in any other
tabbed dialog, the tabs themselves should not have mnemonics --
there is already a more easily accessible and memorable keyboard
combination to switch between tabs (Control+Tab), and using
mnemonics for tabs prevents any of the tabs from using the same
mnemonic anywhere else.
* If you are going to allow group-by-group customization of the number
of days downloaded messages are retained (why on earth?), this fact
should be mentioned in the `Offline and Disk Space' settings UI, so
that users don't set the default settings and then wonder why they
don't work for some groups.
--
Matthew `mpt' Thomas, Mozilla user interface QA
Mozilla UI decisions made within 48 hours, or the next one is free