proposed Form Techniques (Accessibility Topic 3.5)

aloha, y'all!

the following would replace the 3 unordered list items that precede the line

quote
Statement of form submission problems from Gregory Rosmaita:
unquote

in the current (5 november) draft version of the UAGL Techniques document
located at (long wrapping URI warning):
http://www.w3.org/TR/1999/WD-WAI-USERAGENT-TECHS-19991105/#form-techniques

one note -- due to time constraints, i did not suggest specific references
which could be hyperlinked from the techniques proposed below, mainly because i
did not have the opportunity to quadruple check each URI, as is my wont, but
also because i did not want to clutter the proposal with extraneous
information...  however, i do have a (partial) listing of such references, and
will post them to the list (or simply send them to ian) as required slash
instructed, although, with only a few exceptions, the terms and specifications
which could be referenced are obvious...

gregory.

--- begin proposed techniques

the following would replace the 3 unordered list items that precede the line

quote
Statement of form submission problems from Gregory Rosmaita:
unquote

in the current (5 november) draft version of the UAGL Techniques document
located at (long wrapping URI warning):
http://www.w3.org/TR/1999/WD-WAI-USERAGENT-TECHS-19991105/#form-techniques

one note -- due to time constraints, i did not suggest specific references
which could be hyperlinked from the techniques proposed below, mainly because i
did not have the opportunity to quadruple check each URI, as is my wont, but
also because i did not want to clutter the proposal with extraneous
information...  however, i do have a (partial) listing of such references, and
will post them to the list (or simply send them to ian) as required slash
instructed, although, with only a few exceptions, the terms and specifications
which could be referenced are obvious...

gregory.

--- begin proposed techniques

3.5 Form techniques
  
 * For labels explicitly associated with form controls, make available 
   label information when the user is navigating among the form 
   controls. This information must be provided in a device independent 
   manner, and the user should be able to choose from amongst a list of 
   mechanisms which provide access to the content of the LABEL.

 * For semantic information explicitly associated with groupings of form
   controls (i.e. groupings of radio buttons or checkboxes contained in 
   a FIELDSET), make available the information contained in the LEGEND 
   defined for the FIELDSET to the user. This information must be 
   provided in a device independent manner, and the user should be able 
   to choose from amongst a list of mechanisms which provide access 
   to the content of the LEGEND.

 * Provide information about the percentage of form which has already 
   been filled out as the user moves through the form controls. This 
   information must be provided in a device independent manner, and 
   the user should be able to choose from amongst a list of mechanisms 
   to ascertain what percentage of the form has been completed. The 
   user should also be able to query the user agent through a simple, 
   well documented mechanism (such as a keystroke or keystroke 
   combination) to ascertain the percentage of the form which has 
   already been completed.

     + Providing the user with a means of ascertaining what 
       percentage of a form has been completed as he or she 
       moves through the form (as well as on a query-on-demand 
       basis) would assist users from prematurely submitting 
       an incomplete form. This is particularly important for 
       anyone moving through a form serially (i.e. moving from 
       form field to form field), as the SUBMIT mechanism is 
       often interpreted by the end user as signifying the end 
       of the form. (Refer also to the technique detailing 
       methods of providing users with orientation information 
       about individual form controls when a form control 
       receives focus for a more detailed discussion of this 
       issue.)

 * Provide the user with orientation information about a form. 
   Users should be able to query the user agent for:

     + the presence of a form -- the user should be able to 
       query to user agent for the presence of a form within 
       the document being rendered. Some user agents (such as
       Opera and Netscape Navigator) already indirectly 
       provide such functionality in a non-interactive manner, 
       through the provision of "form navigation" keyboard 
       commands. When invoked, these "form navigation" 
       commands move the user agent's focus to the first 
       form field contained in the document currently being 
       rendered (provided, of course, that the document 
       contains a form. Although the provision of discrete 
       "form navigation" commands endows an end user with 
       the ability to quickly move to the first form field 
       within a document, the end user needs to be explicitly 
       notified if the document does not contain a form. Such 
       notification should be conveyed in a device independent 
       manner, and the user should not be limited to one 
       means of notification (i.e. display a message on the 
       status bar and play a sound).
       
     + the number of forms in a document

     + the dimensions of each form

 * Provide the user with orientation information about individual 
   form controls when a form control receives focus. For example, 
   the most basic orientation information would be to identify the 
   form control with focus as "Field X of Y", where "Y" is the 
   total number of fields contained in the form. 

     + This would prevent users accessing the form serially (such 
       as a blind user using a screen reader or someone using a 
       voice browser over a phone) from prematurely invoking the 
       form's SUBMIT mechanism. It is a common practice for forms 
       (particularly those used to query search engines) to be 
       laid out visually, so that the SUBMIT and RESET buttons (if 
       present) immediately follow a text-entry field, despite the 
       presence of other form controls (such as radio buttons and 
       checkboxes) within the FORM element. A user accessing such 
       a form in a serial manner, therefore, is likely to mistake 
       the SUBMIT button for the end of the form, and activate it, 
       unaware that it is followed by further form controls which 
       could--in the example of a search engine query submission 
       form--prove an invaluable aid in tailoring the content 
       being submitted via the form. Use of such orientation 
       information (i.e. "Field X of Y" or the percentage of the 
       form completed) will also decrease the amount of time needed 
       to submit the form (a crucial consideration when forms are 
       being used to facilitate bidding for online auctions) as 
       well as reduce the frustration of the end user, who--due to 
       the visually oriented layout of the form--is nonplussed when 
       the submission of the form repeatedly leads to a "Form 
       Incomplete--Use your browser's back button to return to the 
       form" message.

 *  When a document contains more than one form, form control 
    orientation information should also include data which will 
    identify to which form the form control with focus belongs. 
    Notification could take the form:

          Form Z: Field X of Y

    where "Z" identifies the form, "X" the form field with focus 
    and "Y" the total number of form fields contained in "Form Z"

 *  The provision of more detailed orientation information pertaining 
    to form is also highly encouraged:

     + When a grouping of radio buttons receives focus, identify the 
       radio button with focus as "Radio Button X of Y", where "Y" 
       represents the total number of radio buttons in the grouping. 
       HTML4 provides for the grouping of radio buttons using the 
       FIELDSET element, which allows authors to group thematically
       related controls and labels. The LEGEND element assigns a caption
       to a FIELDSET. If a LEGEND has been defined for the grouping  
       of radio boxes, use the information contained within the LEGEND 
       to more precisely identify the number of radio buttons in the 
       grouping. For example. if the LEGEND element has been used to 
       identify a FIELDSET of radio buttons, each of which has a LABEL 
       associated with it, as "Connection Rate", identify the radio 
       button as it receives focus as "Connection Rate: Radio button X 
       of Y: 28.8kpbs", where "Y" represents the total number of radio 
       buttons in the grouping and "28.8kbps" is the information 
       contained in the LABEL associated with the radio button with 
       focus.

     + When a grouping of checkboxes receives focus, identify the 
       checkbox with focus as "Radio Button X of Y", where "Y" 
       represents the total number of checkboxes in the grouping.
       HTML4 provides for the grouping of checkboxes using the 
       FIELDSET element, which allows authors to group thematically
       related controls and labels. The LEGEND element assigns a caption
       to a FIELDSET. If a LEGEND has been defined for the grouping  
       of radio boxes, use the information contained within the LEGEND 
       to more precisely identify the number of checkboxes in the 
       grouping. For example. if the LEGEND element has been used to 
       identify a FIELDSET of checkboxes, each of which has a LABEL 
       associated with it, as "Hobbies", identify the checkbox as it 
       receives focus as "Hobbies: Checkbox X of Y: Horticulture", 
       where "Y" represents the total number of checkboxes contained 
       in the grouping and "Horticulture" is the information contained 
       in the LABEL associated with the checkbox with focus.

 * Provide information about what is required for each form control. GUI 
   browsers, for example, could convey such information via context-
   sensitive help. Lynx conveys this information by providing information 
   about the currently selected form control via a status line message:

   (Radio Button) Use right-arrow or <return> to toggle
   (Checkbox Field) Use right-arrow or <return> to toggle
   (Option List) Hit return and use arrow keys and return to select option
   (Text Entry Field) Enter Text. Use UP or DOWN arrows or TAB to move off
   (Textarea) Enter text. UP/DOWN arrows or TAB to move off (^Ve for editor)

     NOTE: The ^Ve (caret-V, e) command, included in the TEXTAREA status 
     line message, enables the user to invoke an external editor defined 
     in the local Lynx configuration file (lynx.cfg).  For more information, 
     please refer to the following technique.

 * Allow the user to invoke an external editor when a TEXTAREA receives 
   focus.

   A user may wish to use an external editor, rather than enter text 
   directly in a TEXTAREA for myriad reasons, including:

     + the ability to more efficiently and expeditiously review the 
       text being input
     + the ability to spell check the text being input
     + the ability to use macros or other special features of the 
       external editor, including the ability to increase the 
       contrast between foreground and background colors, access to 
       a wider range of screen-display fonts, etc.
     + the ability to save a local copy of the text being input
     + the user's familiarity with the external editor will encourage 
       the user to actually enter text into a TEXTAREA--an exercise 
       which is often an extremely daunting task, given the 
       limitations imposed by the physical dimensions of the TEXTAREA. 
       A user will also find it much easier to review what he or she 
       has typed when using an external editor.

  * Provide information about the order of form controls (e.g., as
   specified by "TABINDEX" in HTML). This is important since:

     + most forms are visually oriented, employing changes in font 
       size and color
     + users who access forms serially need to know they have 
       supplied all the necessary information before submitting 
       the form.

 * Provide information about required fields. Since authors often use 
   color changes, font styling, or a graphical symbol alone to express 
   that a field is required, the user should be able to configure the 
   user agent so that it alerts him that the field is required for 
   submission of the form content.  Strategies for achieving this 
   include:

     + Allow the user to view a list of required form fields. Such a 
       list should be invokable via a simple and well documented 
       keybinding.
     + Allow the user to define an alert mechanism (such as the playing 
       of a sound) which will be invoked when a required field receives 
       focus. The user should be able to pick from amongst a list of 
       alert mechanisms (i.e. color or font-style changes to the field 
       label, the playing of a sound clip, a status line message, etc.), 
       and should not be limited to only one type of alert mechanism.
       Do _not_ rely on visual or aural prompts alone to signify a 
       required form field.

 * Allow the user to configure the user agent so that SELECT form fields 
   which use the "multiple" attribute to allow the end user to select 
   more than one OPTION can be transformed into a list of checkboxes. 

     + Preserve the LABELs set for the OPTGROUP and each individual 
       OPTION, and re-associate them with the user agent generated 
       checkboxes. The LABEL defined for the OPTGROUP should be 
       converted into a LEGEND for the resultant FIELDSET, and each 
       checkbox should retain the LABEL defined for the corresponding 
       OPTION.

     + Note: Lynx automatically transforms SELECT form fields which use
       the "multiple" attribute to allow the end user to select more than one 
       OPTION into checkboxes.

 * Allow the user to configure the user agent sot that SELECT form fields 
   can be transformed into a list of radio buttons.

     + Any such transformation should retain the accessibility information 
       defined for the original form controls.

     + Note: Lynx provides this functionality as a configurable option, 
       which can be changed on-the-fly while a page is being rendered. 
       To promote the comprehensibility of the transformed output for 
       users using screen-readers and refreshable Braille displays, 
       Lynx places each OPTION that it transforms into a radio button 
       on a separate line.
--------------------------------------------------------
He that lives on Hope, dies farting
     -- Benjamin Franklin, Poor Richard's Almanack, 1763
--------------------------------------------------------
Gregory J. Rosmaita <unagi69@concentric.net>
   WebMaster and Minister of Propaganda, VICUG NYC
        <http://www.hicom.net/~oedipus/vicug/index.html>
--------------------------------------------------------

Received on Thursday, 18 November 1999 00:33:31 UTC