Wednesday, February 9, 2011

Case Study 5


Case Study 5
Accessibility and Usability Guidelines

ACCESSIBILITY GUIDELINES

           1. Tab order:
                    Provide a logical tab order and ensure that users can navigate all content using a keyboard. By default, the tab order is determined by the order of the elements in the underlying code. It can also be set programmatically with the tabindex attribute if needed, but this should be done sparingly and thoroughly tested whenever it is used.
             2. Toolbarbuttons:
                        By default, toolbar buttons cannot receive focus with a keyboard. The recommended way of fixing this is that all functionality associated with a toolbar be duplicated elsewhere in the application, such as in a menu item or context menu. 
             3. Mouse dependent scripting:
                     Functionality associated with mouse events such as onmouseover, onmousemove, and ondrag can only be activated with the use of the mouse. Provide keyboard-accessible alternative access points for this functionality. Consider using context menu items or other XUL elements along with keyboard shortcuts.
             4. Scrolling:
                      Ensure that scrolling is keyboard accessible. Many XUL elements can be set to scroll using CSS. Other elements, such as arrowscrollbox and listbox, are made to scroll automatically. As a general rule, elements set to scroll are inaccessible if the user cannot scroll to all the content using the keyboard.
             5. Testing keyboard access: 

                        To test keyboard accessibility, simply unplug or disable your mouse and attempt to use your application with only your keyboard. Verify that the tab order is logical. Make sure you have access to all functionality either directly or through alternative means such as menu items or context menus. Ensure that the user can read all content.
              6. Title:
                    Provide unique titles to window container elements such as windows, wizards, and dialogs. Titles provide users the most basic information about the application. The title is often the first thing spoken by a screen reader when an application is opened or activated.
              7. Alternative text:
                    Provide alternative text for meaningful images. Alternative text is not needed when an image serves a purely decorative function. Use the "alt" attribute to describe HTML images and use the "tooltiptext" attribute on XUL elements that use images (i.e. image elements, buttons with images).

              8. Initial dialog focus:
                    The initial focus in a XUL dialog (i.e., the focus when the dialog is first opened) should always be on a specific control, not on the dialog itself. In a tabbed dialog, focus should normally start on the first control in the selected tab.

              9. Context menus:
                         The context menu is the small menu activated with a right mouse click on a content area or element (or with Shift + F10 or VK_APPS on Windows and Ctrl + Click or Ctrl + Space on a Mac).

              10. Trees:
                     Provide alternative functionality for inaccessible operations. The column picker and column headers in XUL trees are not keyboard accessible, consistent with the standard tree behavior on most contemporary operating systems.




USABILITY PRINCIPLES
  1. Visibility of system status:
always keep users informed about what is going on, throug providing appropriate feedback within reasonable time
  1. Match between system and real world:
speak the users' language, using words, phrases and concepts familiar to the user, rather than system-oriented terms
  1. User control and freedom:
provide ways of allowing users to easily excape from places the unecpectedly find themselves, by using clearly marked :emergency exits"
  1. Consistency and standards:
avoid making users wonder whether different words, situations, or actions mean the same thing
  1. Help users recongize, diagonse and recover from errors:
use plain language to decribe the nature of the problem and suggest a way of solving it
  1. Error prevention:
where possible prevent errors foccurring in the first place
  1. Recongnition reather then recall:
make objects, actions, and options visible
  1. Flexibility and efficiency of use:
provide accelerators that are invisible to noivce users, but allow more experienced users to carry out tasks more quickly
  1. Aesthetic and minimalist design:
avoid using information that is irelevant or rarely needed
  1. Help and documentation:
provide information that can be easily searched and provides help in a set of concrete steps that can easily be followed