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

Reply via email to