The present invention relates generally to user interfaces, and more specifically to a method and system for providing a fully accessible object on a modal dialog box.
In many graphical user interfaces, visual constructs referred to as “dialog boxes” are used to present information to and/or obtain input from a user for a variety of purposes. In this context, dialog boxes typically appear temporarily within the display screen, disappearing after they have obtained a requested input.
Dialog boxes may be either “modal”, or “non-modal” (a.k.a. “modeless”), with modal dialog boxes being the most common. A modal dialog box changes the mode of input (or “focus”) of a program from a previous display to the dialog box. While a modal dialog box is displayed, the user cannot switch from the modal dialog box to another display object in the same program. The user must explicitly end the dialog box, for example by clicking on a graphical button marked “OK” or “Cancel”. A non-modal dialog box allows the user to switch to another display within the same program, such as the display preceding the dialog box. In many circumstances, it is desirable to use a modal rather than a non-modal dialog box, forcing the user to provide an input, such as an acknowledgement or other type of input, or close the dialog box, before continuing to use the program. In the context of the World Wide Web (“Web”), it is common to use modal dialog boxes within Web pages, providing modal dialogs that keep the focus of the Web browser program in the dialog box until the user explicitly closes the dialog box.
In general, in consideration of users having a range of capabilities and preferences, it is desirable for user interfaces to provide a full range of access options, including mouse, keyboard, and screen reader program accessibility. In particular, visually impaired users may have difficulty using a mouse, and rely on keyboard and screen reader access to interact with a computer. A screen reader program is software that assists a visually impaired user by reading the contents of a computer screen, converting the text to speech. An example of an existing screen reader program is the JAWS® program offered by Freedom Scientific® corporation. Additionally, users other than the visually impaired may not be able to use a mouse, for example as a result of an injury or disability, and may need an interface providing keyboard access as an alternative to mouse access. With the growing importance of content provided over the Web, there is especially a need to provide full keyboard and screen reader access to Web pages, in addition to mouse click access.
HyperText Mark-up Language (“HTML”) is used to format content presented on the Web. The HTML for a Web page defines page layout, fonts and graphic elements, as well as hypertext links to other documents on the Web. A Web page is typically built using HTML “tags” embedded within the text of the page. An HTML tag is a code or command used to define a format change or hypertext link. HTML tags are surrounded by the angle brackets “<” and “>”.
As it is generally known, a common approach to creating clickable objects, such as buttons, on a Web page using HTML is by using an <a> (“anchor”) tag, surrounding an <img> (“image”) tag, defining a graphic image for the object. The <a> tag has an “href=” (“hypertext reference”) attribute, followed by a value, such as a name or URL (Uniform Resource Locator), that defines the action to be taken when a user selects the clickable object by clicking on the graphic image with a mouse. When creating clickable objects in HTML, it may be desirable for the <a> tag to contain an href=“javascript:functionName( )” attribute definition, in order for a JavaScript function to be invoked when the user clicks on the image, rather than navigating to a new URL (Uniform Resource Locator) in response to the click. However, an <a> tag with an href=“javascript:functionName( )” attribute definition cannot conveniently be used in a modal dialog box. This results from the operation of some Web browser programs, which don't recognize the use of a JavaScript value for the href=attribute within a modal dialog. As a consequence, when the user clicks on the object, the program attempts to open a new page, even though the value of the href=attribute is not a URL. An error results reporting that a page was not found, since the JavaScript function call is mistakenly treated as a URL. It is possible to define an event handler to be invoked in response to detection of a click on the object using an “onclick” attribute within the anchor tag. However, this approach requires definition of an href=attribute value that is never called, resulting in confusing and inefficient program code.
Accordingly, in order to create a clickable object that can invoke JavaScript on a modal dialog page, without requiring use of a “dummy” href=attribute value, a different approach must be used. One possibility is using an <img> tag with an “onclick=” event handler. Unfortunately, the onclick=handler alone does not provide keyboard or screen reader support—it only works with a mouse.
For these reasons and others, it would therefore be desirable to have a new system for providing a keyboard and screen reader accessible object within a modal dialog box, that invokes an executable function or program, such as JavaScript. The new system should be applicable to operation in connection with the display of a Web page.
In accordance with principles of the invention, a method and system for creating a fully accessible display object are disclosed. The disclosed system may advantageously provide a fully accessible display object within a modal dialog box displayed in association with Web page. The disclosed system forms the display object using an image command, and associated parameters, within a document containing formatting information for a user interface. The image command of the disclosed system includes parameters defining event handlers that respond to keyboard actions of the user, as well as mouse actions, and that enable full screen reader program access to the dialog box containing the toolbar button, including the toolbar button, even within a modal dialog box provided from a Web page. The disclosed system is operable to successfully invoke a call to an executable program in response to selection by the user of the object using the keyboard and/or mouse
In one embodiment, the disclosed image command is an HTML <img> tag, providing a display object definition for a modal dialog box within a Web page. In this embodiment, the <img> tag includes HTML tabindex, onclick, and onkeypress attributes associated with respective event handlers, in order to provide full accessibility. Creating a display object in this way allows the HTML code for the object to invoke JavaScript functions within a modal dialog box provided from a Web page.
In another embodiment, the disclosed system provides multiple display objects within a modal dialog box, where the display objects are each buttons representing alternative actions that otherwise would be performed by clicking on portions of a toolbar. Such buttons may be referred to as “toolbar buttons”. In this embodiment, the user may generate the modal dialog box using a first keyboard operation, toggle through the buttons within the modal dialog box using a second keyboard operation, and then select a current button using another keyboard operation. Such a set of toolbar buttons may, for example, serve as a keyboard accessible alternative to mouse clickable portions of a toolbar.
Thus there is disclosed a new system for providing a display object within a modal dialog box, that is operable to invoke an executable function or program, such as JavaScript. The new system is operable in connection with the display of a Web page, and may be used to provide a set of toolbar buttons that are fully keyboard and screen read program accessible, and that may be used as alternative to mouse accessible portions of a toolbar.
In order to facilitate a fuller understanding of the present invention, reference is now made to the appended drawings. These drawings should not be construed as limiting the present invention, but are intended to be exemplary only.
As shown in
In the illustrative embodiment shown in
While the modal dialog box of
At step 52, the graphical images within the modal dialog box are displayed in accordance with the present disclosure. Specifically, the buttons 12, 14, 16, 18 and 20 are displayed within the modal dialog box using image commands having attributes defined with appropriate values to permit full accessibility.
At step 54, the disclosed system operates to allow a keyboard user to access each object displayed within the modal dialog box 10. As the user accesses a new object, that object becomes the new current object. An initial current object may be predetermined, such as an object located in the upper left hand corner of the modal dialog box 10.
Specifically, the disclosed system may operate to process tab key presses by the user to move through the buttons 12, 14, 16, 18 and 20. Each time the user presses the tab key, a new one of the buttons 12, 14, 16, 18 and 20 is accessed. As each of the buttons 12, 14, 16, 18 and 20 are accessed in this way, their display may be changed, for example by formation of a second, dotted box (or outline) around the new current one of the buttons 12, 14, 16, 18 and 20, or changing their display in some other way. Further, as each one of the buttons 12, 14, 16, 18 and 20 is accessed in this way, a screen reader program may operate to read information about and/or describing the new current button.
At step 56, the user is allowed to select the current button using a keyboard operation such as pressing the enter key. In response to selection of one of the buttons in the modal dialog box 10, the disclosed system operates to execute an associated program routine, such as a JavaScript function, at step 58. In the example embodiment of
The <img> tag 100 of
Further in the image command 100, an “onkeydown” attribute 104 is also shown including a parameter value of “javascript:simpleKey(‘Bold’)”. The value of the onkeydown attribute defines the action taken upon detection of a keyboard key being pressed by the user. In the example of
The image command 100 of
The accessibility of the display object is improved through the addition of the tabindex attribute 106. For example, the Microsoft® Internet Explorer Web browser program automatically tabs through <a> tag elements and any form elements on a page using a “tab order”. Since the an <img> tag is not a form element, it would not automatically be added to the tab order on the page. The disclosed system adds the tabindex attribute 106 to the image command 100 to enable the resulting display object to get focus via pressing of the tab key.
Also shown in the image command 100 of
As shown in
Thus the disclosed system advantageously combines the use of onclick and onkeydown attributes and associated event handlers with a tabindex attribute in an image command. Additionally, the disclosed simpleKey( ) function shows a technique for properly capturing the enter key to invoke the action associated with the display object, thus providing access to a keyboard or screen reader user. Further, the disclosed system solves the problem of creating an accessible display object that can invoke JavaScript within a modal dialog box.
Those skilled in the art should readily appreciate that programs defining the functions of the present invention can be delivered to a computer in many forms; including, but not limited to: (a) information permanently stored on non-writable storage media (e.g. read only memory devices within a computer such as ROM or CD-ROM disks readable by a computer I/O attachment); (b) information alterably stored on writable storage media (e.g. floppy disks and hard drives); or (c) information conveyed to a computer through communication media for example using baseband signaling or broadband signaling techniques, including carrier wave signaling techniques, such as over computer or telephone networks via a modem.
While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed. Moreover, while the preferred embodiments are described in connection with various illustrative program command structures, one skilled in the art will recognize that the system may be embodied using a variety of specific command structures. Accordingly, the invention should not be viewed as limited except by the scope and spirit of the appended claims.