You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



Navigator Seamonkey
UI Specification
Navigator QuickFill
Last Modification:
Author German W. Bauer
Initial Creation Date:  08 Mar 1999 

Status: M3

complete revamp after change in direction from server based ecommerce feature to client-side only generalized form fill-in

Quick links: 
Design Overview
Design Cheat sheet
Design Details 

Overall Seamonkey Product Requirements Document
Seamonkey QuickFill PRD

QuickFill Engineering Spec

UE Framework for Seamonkey
Overall Seamonkey UI Specs Page on gooey

Feature Team
 
 
Backend Client Engineer Steve Morse
Marketing QuickFill Kevin Yen
XPFE ?
QA Manager ?
UI Design German Bauer
 

Older spec, will be updated

Summary/Overview


The QuickFill is a new feature in Seamonkey which will help end-users
users with the repetitive task of filling out forms. The technology on the client side behind this is described in Steve's algorithms document.

The older version of the spec is here.

Goals for our end users

  • Balance pleasant experience of form filling by convenient re-use of user's personal data with providing a sense of privacy and secure handling of this personal data.
  • Give users an easy way to see and manage personal data is stored on their computers
  • Generally simple end-user (no-) interface, things 'should do the right thing automatically' when used first. Adding many screens will negatively impact acceptance of technology.
  • Take into account that filling forms will be only used in Navigator and only for x% of user's online time, such design so that it does not get in the way of regular Internet browsing.
  • Minimize user confusion and keep design orthogonal to server based ecommerce/shopping solutions such as AOL Quick Checkout, which generally lead you to a 'different place'


Target Audience

The target user for this feature are Communicator Seamonkey users as described in the Seamonkey PRD.


User Tasks

 
Fundamental Tasks Intermediate Tasks Advanced Tasks
  • Fill forms with personal user data
    • Change/Update personal data (e.g. when user has new address)
    • Turn off automatic filling out of forms
    • change password to access QuickFill data
  • Clear all data stored on computer aka the red button (e.g. when user cannot remember password)

  • Design Cheat sheet

     


    Design Details

    How Filling a form will work

    In order to prevent spoofing in forms (like zero-length fields that would get automatically filled in without the user ever seeing it) as well as letting users select from multiple proposed values, it was suggest to supply a 'preview' that shows each field (or select element) and what is being filled in or selected.

    Issues: this dialog can potentially get very big and cover up the page, and since the field names are sometimes not very descriptive is hard for them to see things in context. Also some users may want to do "the green button like on copier" thing, i.e. not being bothered by a preview, that is they want to go ahead and have the form filled anyway.

    Designs for Fill Preview (to be decided)

    Design A: (lowest cost)

    Fill preview is shown as a dialog on top of the form currently being filled out.

    Elements that were originally Textfields on the form are shown as select popups, with the most likely fill-in selected and shown, and with other choices also being listed. An additional item "Other..." should be included that lets users get a prompt dialog to fill in a new value which gets added to the values database.

    Elements that were originally select popups or lists on the form will also be shown as select popups with the choices filled in that the form provided and the choice selected that matches one of the entries in the user database if there is a match.

    Both types of elements should show the field name from the mapped schema such as name.first, to provide at least some explanation of what the field is used for

    Pros: Most simple to implement. Quick generation/redraw of dialog. User will recognize this as a preview vs. the real form.

    Cons:No context whatsoever is provided to the end user, therefore it's hard to make out which element on the dialog maps to which on the form. Bringing up 'another' dialog may be annoying to some users.

    Design B: (simple plus)

    Like A, Fill preview is shown as a dialog on top of the form currently being filled out.

    Elements that were originally Textfields on the form are shown as text field with a small popup button attached to it, with the most likely fill-in shown in the text field, and with other choices being listed once the popup menu is opened. Users can override the value in the text field with a new value which gets added to the user's values database..

    Elements that were originally select popups or lists on the form will be shown as select popups with the choices filled in that the form provided and the choice selected that matches one of the entries in the user database if there is a match.

    Both types of elements should show the field name from the mapped schema such as name.first, to provide at least some explanation of what the field is used for.

    Pros: Simple to implement. Quick generation/redraw of dialog. Better context information since text fields remain text fields. User will recognize this as a preview vs. the real form.

    Cons:It's hard to make out which element on the dialog maps to which on the form. Bringing up 'another' dialog may be annoying to some users. Dialog gets pretty big, and may cover up the form on smaller screens

    Design C: (preview with context)

    Like A and B, Fill preview is shown as a dialog on top of the form currently being filled out.

    To provide the user with context however, we would try to render the dialog with the context of the original form, that is with its background, colors, HTML text etc. Like in design B, we would 'annotate' text fields with popups next to them, in order to provider zero-length spoofs.

    Pros: Provides reasonable context information, because rendered inside the pages 'real' context.

    Cons: Users may confuse it with the real form. Some portions of the form layout may be covered up by wallet elements like the popups next to text fields. Bringing up 'another' dialog may be annoying to some users.

    Design D: (no preview, always direct fill in of forms)

    This design would enter the most likely values directly into the form text fields and preselect the 'select' elements for the end user. and highlight. Much like in C, we would place popups next to text fields in order to show their existence (spoof problem), but also to let users see other possible values that can be inserted here.

    Pros: Very gecko-like: WYSISWYG Preview=the real thing

    Cons: Some portions of the form layout may be covered up by wallet elements like the popups next to text fields. Some users may be concerned with viewing an 'altered' version of the form.

    Accessing fill forms

    Via toolbar button

    positioning it on the main navigator toolbar


    the current plan is that this button appear to the right of the url field

    the current plan is also to let the button completely disappear when the users does not view content with a form in order to make it more recognizable when the functionality becomes available. However if this will appear to busy, we can always just disable the button when not in use.

    Alternatives considered earlier
    • positioning it on the taskbar

      Cons:
      the taskbar is reserved for launching apps/services
      the task bar will appear in every C5 app, even though QuickFill functionality is relevant to Navigator only at this time

    • positioning it on the personal bar

      Cons:
      the personal bar reserved for 'going places' in Navigator (therefore it will be used for things like indicating that AOL Quick Checkout is available)
      users will not expect an action button there that changes the state of a form

    • positioning it on the status area at the bottom of the screen

      Cons:
      the status area is reserved for status information
      the status area has a lower discoverability, i.e.. users may not notice the appearance of a button
      the status area is not usually associated with having action buttons, i.e.. users may not click there

    It would be nice to add an implicit update function, that is when the user overrides a pre-filled setting or picks something not in the list of stored data, that we ask the user whether they want to add to this to their personal data for later re-use


    Menu Design

    Edit Personal Data submenu:      
         
    The item "Prefill Form" is only enabled when the users is currently at a page that contains a form.

    QuickFill management functions

    Password Access dialog to personal data

    This will be invoked every time users want to access personal data in the QuickFill (Question: do we let users set this to remember login throughout one session). This dialog occurs when:

    • they invoke form fill
    • they need to manage personal data stored on the computer
    • change their login/password

     

    Manage Personal Data dialog

    Designed to let users inspect and change personal data stored on their computer

    HTML mockup:
    can be invoked by clicking here...

     

    The above is a rough mockup based on HTML 3.2, we can make it better looking later using XUL (See illustration below)

    It would be nice to add an implicit update function, that is when the user overrides a pre-filled setting or picks something not in the list of stored data, that we ask the user whether they want to add to this to their personal data for later re-use

     


    Open Issues

    • Detecting form elements that could not be filled out: Certain type of form elements can currently not be used with QuickFill such as check boxes and radio buttons. In the case of text fields that have not been filled out (due e.g. to new field names that could be mapped to the QuickFill database), we can provide users with some assistance:

      • drawing a colored border around that form element
      • using a different background color/style for that form element
      • placing/overlaying a prompter image (e.g. arrow) pointing to that form element

    In addition (or as a low-cost alternative) we can provide a more generalized way to key-navigate to 'the next empty' form text field.


    Other

    Context Menus


    None planned at this point

    Preferences

    In trying to keep things simple we are hoping to only have one global preference, and that is turn QuickFill features on or off.

    Error Messages and Dialogs
     
    Condition
    Message
    User Choices
         
         
         


    Archived Documents

    Examples of special formatting:

    Revisions

    Rev 1: first stab, based on  UI design docs on PM feedback
    > Rev 2: complete revamp based on the fact that we are now focusing on a client-only form fill functionality

    Special Notes

    This is a pre-release document based on refined designs