platform-ui-home/accessibility/tips.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : tod 1.1
2 :     <html>
3 :     <head>
4 :     <title>UI Component Development Resources for Accessibility</title>
5 :     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
6 :     <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css" type="text/css">
7 :     </head>
8 :     <body>
9 :     <h1>Tips For Making User Interfaces Accessible </h1>
10 :     <p>Below is a series of tips for making something usable to the IAccessibility
11 :     interface provided by Windows. </p>
12 :     <p>1) Use Groups instead of Labels </p>
13 :     <blockquote>
14 :     <p>If you use a Label to title a group of related widgets remove the label and
15 :     replace thier parent composite with a Group whose text is the same as the
16 :     title Label. </p>
17 :     </blockquote>
18 :     <p>2) Avoid intermediate Composites. </p>
19 :     <blockquote>
20 :     <p>IAccessibility tools will read as far up the parent hierarchy of a widget
21 :     with focus as there are widgets to read. Be sure there are no widgets without
22 :     text anywhere in the tree. </p>
23 :     </blockquote>
24 :     <p>3) Use Read Only Texts instead of Labels </p>
25 :     <blockquote>
26 :     <p>A text can be accessed using the keyboard and should be used if you want
27 :     the information in a label to be accessible to keyboard navigation. Please
28 :     note that a label beside a text will be treated as a title and so if you have
29 :     a title:value pair you wish to show it is only required that you make the
30 :     value widget a Text.&nbsp; </p>
31 :     </blockquote>
32 :     <p>4) <font COLOR="#000000"> Read and understand the IBM checklist.
33 :     http://www-3.ibm.com/able/accesssoftware.html</font> </p>
34 :     <p><font COLOR="#000000">5) Assign mnemonics to all menus and menu items.</font></p>
35 :     <blockquote>
36 :     <p>E<font COLOR="#000000">nsure they are unique within a given menu. If a menu
37 :     is dynamically composed from multiple plugins, it may be better to not assign
38 :     mnemonics since conflicts cannot be avoided in general (e.g. the File / New
39 :     list, or Perspective / Show View list)</font></p>
40 :     </blockquote>
41 :     <p><font COLOR="#000000">&nbsp;6) Assign mnemonics to all labels of controls in
42 :     dialogs / preference pages / property pages (e.g. buttons, checkboxes, radio
43 :     buttons, etc)</font></p>
44 :     <p><font COLOR="#000000">Ensure they are unique within the dialog. Be careful to
45 :     avoid collisions with the default buttons (e.g. Restore &amp;Defaults,
46 :     &amp;Apply in preference pages; &amp;Next, &amp;Back, &amp;Finish in wizards).
47 :     Do not assign mnemonics to OK and Cancel buttons. If you make OK the default
48 :     button of the shell, and Cancel is equivalent to closing the shell, then Enter
49 :     and Esc map to these by default. Generally doing something with Esc or Enter is
50 :     a bad idea. </font></p>
51 :     <p><font color="#000000">7) </font>I<font COLOR="#000000">f a control does not
52 :     have its own label (e.g. a text field), use a preceeding label ending with ':'
53 :     and assign a mnemonic to it.&nbsp; Screen readers like JAWS will read this label
54 :     when the control has focus (e.g. see Workbench / Preferences / Workbench)</font></p>
55 :     <p><font COLOR="#000000">8) Avoid extra freestanding labels as you cannot
56 :     navigate to them with the keyboard and screen readers like JAWS skip these since
57 :     they don't take focus</font></p>
58 :     <p><font COLOR="#000000">9) Do not assign mnemonics on controls in the main
59 :     window (other than main menus and main menu items), even if it looks like a
60 :     dialog (e.g. the form editors in WSAD) as these will usually conflict with menu
61 :     mnemonics</font></p>
62 :     <p><font COLOR="#000000">10) Assign shortcut keys for frequently used functions
63 :     (and -only- frequently used functions).</font></p>
64 :     <blockquote>
65 :     <p><font COLOR="#000000">There are currently only two ways to hook shortcut
66 :     keys in SWT:</font></p>
67 :     <ul>
68 :     <li><font COLOR="#000000">by setting an accelerator on a menu item in the
69 :     main menubar (they are ignored in context menus)- JFace actions have
70 :     support for this</font></li>
71 :     <li><font COLOR="#000000">by hooking a key listener on a particular control
72 :     (e.g. in the implementation of a view or editor)</font></li>
73 :     </ul>
74 :     <p><font COLOR="#000000">Consult the table of Eclipse SDK shortcut keys
75 :     (available off of eclipse.org -&gt; Projects -&gt; Eclipse Project -&gt;
76 :     Platform -&gt; UI -&gt; Development Resources -&gt; Accessibility) to avoid
77 :     collision.</font></p>
78 :     </blockquote>
79 :     <p><font COLOR="#000000">12) Avoid Alt+{key} combinations since they may
80 :     conflict with menu mnemonics</font></p>
81 :     <p><font COLOR="#000000">13) Avoid Ctrl+Alt+{key} combinations since they often
82 :     conflict with entering special characters on international keyboards (alt Gr =
83 :     Ctrl+Alt)</font></p>
84 :     <p><font COLOR="#000000">14) Avoid Ctrl+Space+{key} combinations since
85 :     Ctrl-Space is used for mode switching in Asian languages.</font></p>
86 :     <p><font COLOR="#000000">15) Try to save navigation context.</font></p>
87 :     <blockquote>
88 :     <p><font COLOR="#000000">e.g. in Workbench / Preferences, we now remember
89 :     which page you had selected last. This avoids having to navigate through the
90 :     list each time</font></p>
91 :     </blockquote>
92 :     <p><font color="#000000">16) Assign a specific person on the team to be
93 :     responsible for accessibility on your project.</font></p>
94 :     <p><font color="#000000">17) Test for accessibility.</font></p>
95 :     <blockquote>
96 :     <p><font color="#000000">Have your team hold an occasional &quot;unplug your
97 :     mouse day&quot; where they try to use the product using keyboard only. Get a
98 :     copy of JAWS (http://www.freedomscientific.com/) and ensure that your UI is
99 :     usable with it</font></p>
100 :     </blockquote>
101 :     </body>