About enhanced JFW compatibility with Access 97
Posted by: Jamal Mazrui
Date Mailed: Sunday, December 13th 1998 12:05 PM
Date Mailed: Sunday, December 13th 1998 12:05 PM
Thought this may be of interest, Jamal ---------- From the web page http://www.hj.com/JFW/Scripts/MSAccessScript.html Microsoft Access 97 Script Documentation for JAWS for Windows 3.20.X By Joseph Dunn August 26, 1998 This page contains the documentation for the JAWs for Windows Microsoft Access 97 Scripts. * General Notes * JAWS Hotkeys * Features and Supported Screens * Wizards * Design Views * JAWS Help * Known Problems * Notes to Database Designers and Application Programmers * Special Thanks General Notes These scripts have been written and tested using JAWS for Windows version 3.20.09 and Microsoft Access 97. Some of the features listed below may work in earlier versions of Access but features relying on the exposed object model of Access 97 will not work in prior versions of Access. JAWS Hotkeys The following Hotkeys have been defined in these scripts. For further information about the scripts themselves, see the following sections: Insert+f1 gives Screen Sensitive Help in most areas including the Wizard and Design View screens. This keystroke will also give you valuable information about the field you are in when entering data into a table. The information includes the field name, data type, size in characters, ordinal position, total number of fields and whether data in this field is required or optional. In verbosity levels higher than beginner, this information is trimmed down but still includes the vital information. Insert+h lists hotkeys which may be used in certain contexts, including any hotkeys defined on forms or subforms to access controls such as checkboxes etc, immediately. Control+shift+d speaks a summary of the open database including the name and number of objects defined by the user. Objects include tables, queries, modules, relationships, forms etc. Control+shift+t speaks a summary of the table currently displayed including the name, data type, size and total number of fields. Insert+tab says the control with focus. Control+shift+f reads the active form and any subforms in control order. This order depends on how the programmer designed the form. Control+shift+b allows you to select a toolbox control to place on a form or report in design view. Control+shift+r reads the active report. Control+shift+l lists all of the controls on the current form and allows you to select a control and set focus on it provided it can receive the focus. If you select a subform control then a further list will allow you to select a subform control. Control+shift+c is used to create a relationship by pressing the keystroke once on the source field in the source table and then again on the destination field of the destination table. You can press control+insert+c after the first press of control+shift+c to clear the relationship setup process. This function only works in the Relationships screen accessed from the tools menu and is subject to the normal Access 97 constraints. Control+shift+s will tell you if the field you are on in the listbox of fields for a given table participates in a relationship or not. Again, this keystroke only works in the Relationships screen accessed from the Tools Menu. For example, in the Northwind database which comes with Microsoft Access 97, in the relationships screen, pressing control+shift+s when the Supplier ID field is selected in the supplier table, JFW will tell you that this field is referenced by the Products table. Similarly, if the Product ID field in the products table is selected, pressing control+shift+s causes JFW to tell you that Product ID is referenced by the Order Details table. Pressing control+shift+s when the product ID field is selected in the Order Details table causes JFW to say that Product ID references the product table. So, JFW will tell you when a field references or is referenced by another table. If the User Verbosity is set to anything higher than beginner, a trimmed down version of the same information is spoken but the table name containing the selected field is left out, assumed to be known by the user. Control+shift+j is used to create a join in the Query Design View Grid by pressing the keystroke once on the source field and then again on the destination field. You can press control+insert+c after the first press of control+shift+j to clear the join setup process. This function only works in the Query Design View Grid and is subject to the normal Access 97 constraints. Insert+f8 toggles Label Search on and off. See note 3 in the section entitled "Notes for Database Designers and Application Programmers,", for further explanation. Insert+delete reads the status line (if any text is displayed there), coordinates of the focused field in a Datasheet, or helpful wizard text (if in the Wizard screens) is spoken. Control+shift+w reads any wizard text displayed. Insert+f7 repeats the spell checker dialog. Insert+control+down arrow reads the current screen. Control+shift+v says the version of Access you are running. Features and Supported Screens The following screens are all supported in this release of the scripts: * Database Wizard * Table design view * Table Datasheet View * Table Wizard * Relationships Screen * Query Design View * Simple Query Wizard * Crosstab Query Wizard * Form Wizard * Form Design View * Reading of forms, subforms, reports and subreports * Report Wizard * Report Design View * Macro creation screen * Spell Checker The next sections contain information specifically for the screens supported. Wizards All of the wizards in the standard installation of Microsoft Access 97 are supported. When you select a wizard, the control with focus will be spoken. To hear any descriptive text or questions related to the controls on a wizard screen, either use control+shift+w, control+shift+f, Insert+delete or Insert+f1. The differences between these keys is discussed below: Control+shift+w just reads the text on the wizard form not associated with any other controls; Control+shift+f reads the wizard text followed by all the controls on the form, in the control order; Insert+delete is a general keystroke which gives relevant information such as statusline text, datasheet coordinates and in wizards, the wizard text; Insert+f1 is screen sensitive help and in the wizards, it tells you which wizard you are in and the descriptive text for the current screen. After making the necessary selections or responses on each wizard screen, press Alt+n to proceed to the next screen or Alt+b to backtrack one screen. Press Alt+f to finish or Escape to exit the wizard without creating anything. Design Views Most of the design views are supported by JFW in this release. Here are some notes to help you with specific screens: Table Design View The Table Design View has two panels, the top panel allows you to specify the field name, data type and size of each field in your table. The second panel allows you to set properties for the selected field in the top panel. You will not be able to switch panels until you have defined at least one field. Use f6 to switch between the field definition panel and the field properties multipage dialog. As you press the tab key, JFW will announce the prompt and setting in both panels and display this information on your Braille Display. To exit the Table Design View, press control+f4. Query Design View Before the actual Query Design View is displayed, a dialog appears which enables you to choose the tables and fields you want listed in the Design View to work with. Select these items using the add button and then press the close button to get to the actual Design View. This Design View also consists of two panels. The top panel contains listboxes of the items just selected in the previous step while the second panel contains a grid with headings down the left hand side. Use f6 to switch between these panels and ensure the application is maximized (Alt+minus followed by x) so that field names are spoken as you move from grid row to grid row. To select a field and/or table from the lists in the top panel, use your arrow keys and press Enter on the item you want placed on the grid. JFW will announce that it is placing the item on the grid. If somehow your cursor gets stuck outside the grid in no-mans-land, place the JAWS cursor back in either the grid or lists and click the left mouse button. (The ability to select an item with the Enter key is a feature of these scripts as Microsoft did not see fit to implement this and thus forces the sighted person to drag and drop onto the grid.) Control+shift+j is used to create a join in the Query Design View Grid by pressing the keystroke once on the source field and then again on the destination field. You can press control+insert+c after the first press of control+shift+j to clear the join setup process. This function only works in the Query Design View Grid and is subject to the normal Access 97 constraints. To exit this screen, press control+f4. Form and Report Design Views The Form and Report design views are only partially accessible. When you invoke these screens you can tab from section to section and press Enter to open the properties multipage dialog for the selected section. Once in the properties (section) dialog, you can set the properties by tabbing within each page or using control+tab to move from page to page. Press Alt+f4 to close this dialog and return to the top panel. Press control+f4 to close the top panel and return to the database window. (Again, the ability to press Enter on an item to bring up its properties (section) dialog is a feature of the scripts as Microsoft did not implement this.) The toolbox is now also accessible. When you press control+shift+b, a list of the controls available in the standard toolbox will be presented. When you select one of these controls by pressing Enter, you will then be permitted to select the parent control if appropriate (if there are any controls to choose from). Controls which may have their parent property set include: labels, checkboxes, option buttons )otherwise known as radio buttons) and toggle buttons. The control will then be created in the chosen section on the form or report with the parent property set to the specified control. You can then set the properties for this control by focusing on the Object Combo on the Format (Form/Report) toolbar. To ensure this toolbar is visible, check it in the View/Toolbars menu. Once the toolbar is visible, you can get to it by pressing Alt to activate the Menu bar and then by pressing Control+tab until the Object Combo is announced. Once you have focused on the Object Combo, choose the control you want to set properties for and press Enter, then choose Properties from the View Menu. To return to the Section selector, choose the section from the Object Combo and press Enter. An Example follows: To create a textbox on a form with a label of My Box, do the following: From the Database Window, press Control+tab until the Forms page is in focus. Press the New button and choose Design View. Tab until you hear Detail. Press Control+shift+b and choose Edit. Since there is no controls on the form, and because text boxes do not need to have their parent property set, you will not be asked to choose the parent control. Instead, a message will be spoken telling you that the control has been created. Press Control+shift+b again and choose Label (the first option). Now JFW will ask you to choose the parent. So, choose Text0 (or whatever the textbox was called in the previous announcement. Once you have chosen the parent, this control will be added to the form. Now you must set the labelis caption property and to do this, you need to get to the Object Combo on the Format (Form/Report) toolbar. If this toolbar is already visible, skip to 12. To ensure this toolbar is visible, choose it from the View/Toolbars menu. Press Alt, release it, then press Control+tab and you will be placed on the first visible toolbar. If JFW does not say something like Object Combo, Detail, press control+tab until it does. Now choose the label control you just created, it will probably be called something like Label0 (press enter). Choose Properties from the View Menu and set its Caption Property to My Box. Now, to test it out, close the properties sheet with alt+f4 and then close the form Design View with Control+f4. Now open the form by Pressing the Open button and you will land on the Edit field and JFW will announce "My box." To repeat it, press Insert+tab. This is the end of the example. Macro Creation Screen If you select New to create a new macro, you will be placed in the Action column of the design grid. You can tab to the comment column and press f6 to switch to the properties multipage dialog. Press Control+f4 to close this screen. JAWS Help You can get help with using JAWS with Access 97 at any time by using any of the following keys: Insert+f1 will speak screen sensitive help; Insert+h will tell you about any hotkeys relevant to that screen; Insert+f1 twice quickly will bring up this document. Known Problems You must maximize the screen in order for prompts to be spoken in Table design view grid. Wizard text from the parent form is still spoken even when a subform has appeared with possibly more text. This subforms text is spoken after the main forms text. Though JFW cannot see the main form text, it is sometimes still visible according to the object model. When an option Group (groupbox) is displayed on the Braille display, you cannot use routing buttons to access the group objects. this is because JFW cannot know where to click. In fact, even when speaking the group box, its objects never get the focus with the tab key as stated in the VBA documentation. You must use the select control list or a hotkey (if there is one) to select controls within a group box. The Insert+v, control+shift+l and control+shift+b scripts occasionally fail due to an unknown JFW problem whereby the dialog will instantaneously appear and disappear without allowing the user to make a selection. You cannot select controls on a SubSubForm using control+shift+l. When trying to focus on a control within an Option Group and its state is spoken (using control+shift+l dialog), the state may be inaccurate. To hear the correct state, focus on the group box (option group) itself and press Insert+tab to hear the correct state. Braille tracking sometimes lags behind the speech. To correct this, you can Alt+tab away from and back to the application. If the table or database summary keys seem to give information which is not up-to-date, eg it speaks the name of a table which you have already deleted, it may be necessary to shutdown and restart Microsoft Access 97. If you get the message that a control was not created when trying to add controls to a form or report in Design View using the control+shift+b script, it may be that the parent control cannot accommodate child controls until you adjust the size properties. You may get this message when trying to add controls to a Group Box (option Group). The advanced wizards which may be installed for Microsoft Access 97 have not been directly supported in this release of the scripts but they are quite useable anyway. You may find though that some of the control's labels are not located correctly but an experienced user will certainly manage. Just remember to use the help facilities built-in to these scripts, control+shift+w, insert+f1 insert+h and insert+delete. Occasionally when you try to perform a join with control+shift+j or create a relationship with Control+shift+c, it will appear that JFW has locked up. To escape this bind, just move your physical mouse a twich and speech will resume. Sometimes control+shift+r does not read the whole active report. This is a quirk with Microsoft Access's underlying object model not being updated. The best way to get around this problem is to export the report as HTML and read it in your Web Browsing software. Notes to Database Designers and Application Programmers A more standard method of associating labels with their controls on a form has been used in this version of the scripts. To ensure that JFW will correctly identify a control's label, use one of the following methods: 1. Set the control's caption property to the text describing the control; 2. Set the control's ToolTipText property to the text describing the control; If you create a separate label control for another control, set its parent property to point to the control it is labeling. JAWS will look at the parent's name property and match it with the control's name property for which the label is associated. If Label Search is off, only the first two methods will be used to determine a control's label, otherwise, JAWS will look at each control on the form whose ControlType property is not AcLabel and see if the label's parent's name matches that control's name. If it does then the label control's caption is used as the label for the control. Please note also that the Speak Database Summary script ignores objects whose names either start with Msys or which contain a ~ Tilde character as these are objects maintained by Microsoft Access 97 and not visible to the user. Please do not name user objects in this way or JFW will ignore them when this script is invoked. Special Thanks I would like to thank Jeff Bishop for his hundreds of hours testing of this, most complex scripting project so far. His intimate knowledge of Microsoft Access 97 and Visual Basic for Applications was extremely useful in conquering this inaccessible and unfriendly beast. I would also like to thank Mike Pedersen of Henter-Joyce for the many hours of consultation time and for the privilege granted me to tackle such a mammoth task. I would like to thank my dear wife Florence for putting up with me during the development time, for which I literally lived and breathed Access and VBA. I would finally like to thank my Lord Jesus Christ who has endowed me with the ability to program. I am eternally grateful! ---------- End of Document -- TNET Mail to News Gateway For information about this gateway, email info@tnet.com

