U.S. patent application number 11/260572 was filed with the patent office on 2007-05-03 for method and apparatus for providing extensible document access to assistive technology providers.
Invention is credited to Joseph D. Aaron, Samuel R. Detweiler, Catherine K. Laws.
Application Number | 20070100794 11/260572 |
Document ID | / |
Family ID | 37997764 |
Filed Date | 2007-05-03 |
United States Patent
Application |
20070100794 |
Kind Code |
A1 |
Aaron; Joseph D. ; et
al. |
May 3, 2007 |
Method and apparatus for providing extensible document access to
assistive technology providers
Abstract
A method, system, and computer program product for providing an
access engine that functions as an intermediary between a specific
object and a renderer.
Inventors: |
Aaron; Joseph D.;
(Jonestown, TX) ; Detweiler; Samuel R.; (Cedar
Park, TX) ; Laws; Catherine K.; (Austin, TX) |
Correspondence
Address: |
DILLON & YUDELL LLP
8911 N. CAPITAL OF TEXAS HWY.,
SUITE 2110
AUSTIN
TX
78759
US
|
Family ID: |
37997764 |
Appl. No.: |
11/260572 |
Filed: |
October 27, 2005 |
Current U.S.
Class: |
1/1 ;
707/999.003 |
Current CPC
Class: |
G09B 21/007
20130101 |
Class at
Publication: |
707/003 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A method of rendering document objects to individuals with
vision impairment, the method comprising the steps of: creating an
access engine; transmitting navigation commands to the access
engine during the navigation of a document object; receiving
information related to the document object from the access engine
in response to the transmitted navigation commands; and rendering
the received information.
2. The method of claim 1 further comprising the step of: querying
the access engine for supported navigation actions of the document
object.
3. The method of claim 1 wherein the step of rendering the received
information includes: providing the received information
audibly.
4. The method of claim 1 wherein the step of rendering the received
information includes: providing the received information in
Braille.
5. The method of claim 1 wherein the step of creating an access
engine includes the step of: instantiating the access engine in
response to a predetermined event.
6. The method of claim 1 wherein the step of creating an access
engine includes the step of: instantiating the access engine when a
new process begins.
7. The method of claim 6 wherein the method further comprises the
step of: querying the access engine for supported navigation modes
of the document object.
8. An apparatus for rendering document objects to individuals with
vision impairment, the apparatus comprising: means for creating an
access engine; means for transmitting navigation commands to the
access engine during the navigation of a document object; means for
receiving information related to the document object from the
access engine in response to the transmitted navigation commands;
and means for rendering the received information.
9. The apparatus of claim 8 further comprising: means for querying
the access engine for supported navigation actions of the document
object.
10. The apparatus of claim 8 wherein the means for rendering the
received information includes: means for providing the received
information audibly.
11. The apparatus of claim 8 wherein the means for rendering the
received information includes: means for providing the received
information in Braille.
12. The apparatus of claim 8 wherein the means for creating an
access engine includes: means for instantiating the access engine
in response to a predetermined event.
13. The apparatus of claim 8 wherein the means for creating an
access engine includes: means for instantiating the access engine
when a new process begins.
14. The apparatus of claim 13 wherein the apparatus further
comprises: means for querying the access engine for supported
navigation modes of the document object.
15. A computer program product comprising a computer usable medium
having computer usable program code for rendering document objects
to individuals with vision impairment, the computer program product
including: computer usable program code for creating an access
engine; computer usable program code for transmitting navigation
commands to the access engine during the navigation of a document
object; computer usable program code for receiving information
related to the document object from the access engine in response
to the transmitted navigation commands; and computer usable program
code for rendering the received information.
16. The computer program product of claim 15 further comprising:
computer usable program code for querying the access engine for
supported navigation actions of the document object.
17. The computer program product of claim 15 wherein the computer
usable program code for rendering the received information
includes: computer usable program code for providing the received
information audibly.
18. The computer program product of claim 15 wherein the computer
usable program code for rendering the received information
includes: computer usable program code for providing the received
information in Braille.
19. The computer program product of claim 15 wherein the computer
usable program code for creating an access engine includes:
computer usable program code for instantiating the access engine in
response to a predetermined event.
20. The computer program product of claim 15 wherein the computer
usable program code for creating an access engine includes:
computer usable program code for instantiating the access engine
when a new process begins.
Description
BACKGROUND
[0001] 1. Technical Field of the Present Invention
[0002] The present invention generally relates to computers, and
more specifically, to intermediate software that provides an
interface between applications and assistive software that assists
an individual with vision impairment.
[0003] 2. Description of Related Art
[0004] Technological advances have allowed the electronic industry
to take a more active and, often times, critical role in assisting
individuals with various disabilities. In particular, these
advances have enhanced the number of options in which information
can be presented to an individual.
[0005] Personal computers are examples of the type of technology
that have been adapted to assist individuals with vision
impairment. In general, visual information is displayed on a
monitor and data can be added or manipulated via keystrokes upon an
associated keyboard. Screen readers or renderers (e.g. JAWS.TM. by
Freedom Scientific) have enabled visually impaired individuals to
hear what is being displayed on the monitor via a speech
synthesizer and/or felt on a refreshable Braille display.
[0006] The renderers can support applications such as the Internet
Explorer with special features, such as, links lists, frame lists,
forms mode and reading of HTML labels and graphic labels included
on web pages. Upon entering an HTML document via an Internet link,
the speech synthesizer will speak the number of frames in a
document being read in Internet Explorer and the number of links in
the frame currently being displayed. The speech synthesizer will
also read graphics labeled by alternate tags in HTML code.
[0007] In order to provide the appropriate assistance, the renderer
must have knowledge concerning each document type that is to be
rendered (e.g. navigation, display properties etc.,).
Unfortunately, each document type has its own set of objects and
attributes that are described in its Document Object Model (DOM)
such as HTML, XHTML, PDF, Flash, and Daisy. Some of these DOMs will
have proprietary protection schemes to ensure that the document
content is used in accordance with its license (e.g., password
protection scheme). As a result of the definition of DOMs becoming
more document specific, the complexity of attempting to interface
with DOMs has increased. For example, a chart is different than a
paragraph and a table is different than a graphics image. Some
objects are completely enclosed in their own renderer and appear as
a hole (e.g. an embedded object) in the main document.
[0008] As the types of complex documents increase, the above noted
issues and others will continue to arise, and the ability of
renderers to continue to provide the same functionality as the
displayed information is becoming increasingly difficult. More
specifically, the application developers must have detailed
knowledge of the semantics of each document type and how to access
each renderer's proprietary access methods (e.g., programming
interfaces). Unfortunately, this information is not readily
available, and often times, limited to a specific group of
individuals.
[0009] It would, therefore, be a distinct advantage to provide an
interface that would provide application developers with the
ability to interact with these DOMs without having detailed
knowledge of the DOMs themselves.
SUMMARY OF THE PRESENT INVENTION
[0010] In one aspect, the present invention is a method of
rendering document objects to individuals with vision impairment.
The method includes the step of creating an access engine. The
method also includes the step of transmitting navigation commands
to the access engine during the navigation of a document object.
The method further includes receiving information related to the
document object from the access engine in response to the
transmitted navigation commands. The method then renders the
received information.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The present invention will be better understood and its
numerous objects and advantages will become more apparent to those
skilled in the art by reference to the following drawings, in
conjunction with the accompanying specification, in which:
[0012] FIG. 1 is a block diagram illustrating a computer system
that implements a preferred embodiment of the present
invention;
[0013] FIG. 2 is a data diagram illustrating the interactions
between a DOM, a Renderer, and an Access Engine according to the
teachings of the present invention; and
[0014] FIG. 3 is a flow chart illustrating the method for using the
access engine of FIG. 2 according to the teachings of the present
invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE PRESENT
INVENTION
[0015] The present invention is a method, system, and computer
program product for assisting individuals with vision impairment.
More specifically, the present invention provides an access engine
that intermediates between the renderer and the specific document
(DOM). The access engine provides a convenient and specific
location from which the DOM can publish the Application Specific
Interface (API) calls, methods, procedures, and a list of supported
events that can be processed by the DOM. Any software that is
required to interface with the specific content DOMs can use the
access engine.
[0016] Reference now being made to FIG. 1, a block diagram is shown
illustrating a computer system 100 that implements a preferred
embodiment of the present invention. Computer System 100 includes
various components each of which is explained in greater detail
below.
[0017] Bus 122 represents any type of device capable of providing
communication of information within Computer System 100 (e.g.,
System bus, PCI bus, cross-bar switch, etc.) Processor 112 can be a
general-purpose processor (e.g., the PowerPC.TM. manufactured by
IBM or the Pentium.TM. manufactured by Intel) that, during normal
operation, processes data under the control of an operating system
and application software 110 stored in a dynamic storage device
such as Random Access Memory (RAM) 114 and a static storage device
such as Read Only Memory (ROM) 116. The operating system preferably
provides a graphical user interface (GUI) to the user.
[0018] The present invention, including the alternative preferred
embodiments, can be provided as a computer program product,
included on a machine-readable medium having stored on it machine
executable instructions used to program computer system 100 to
perform a process according to the teachings of the present
invention.
[0019] The term "machine-readable medium" as used in the
specification includes any medium that participates in providing
instructions to processor 112 or other components of computer
system 100 for execution. Such a medium can take many forms
including, but not limited to, non-volatile media, and transmission
media. Common forms of non-volatile media include, for example, a
floppy disk, a flexible disk, a hard disk, magnetic tape, or any
other magnetic medium, a Compact Disk ROM (CD-ROM), a Digital Video
Disk-ROM (DVD-ROM) or any other optical medium whether static or
rewriteable (e.g., CDRW and DVD RW), punch cards or any other
physical medium with patterns of holes, a programmable ROM (PROM),
an erasable PROM (EPROM), electrically EPROM (EEPROM), a flash
memory, any other memory chip or cartridge, or any other medium
from which computer system 100 can read and which is suitable for
storing instructions. In the preferred embodiment, an example of a
non-volatile medium is the Hard Drive 102.
[0020] Volatile media includes dynamic memory such as RAM 114.
Transmission media includes coaxial cables, copper wire or fiber
optics, including the wires that comprise the bus 122. Transmission
media can also take the form of acoustic or light waves, such as
those generated during radio wave or infrared data
communications.
[0021] Moreover, the present invention can be downloaded as a
computer program product where the program instructions can be
transferred from a remote computer such as server 139 to requesting
computer system 100 by way of data signals embodied in a carrier
wave or other propagation medium via network link 134 (e.g., a
modem or network connection) to a communications interface 132
coupled to bus 122.
[0022] Communications interface 132 provides a two-way data
communications coupling to network link 134 that can be connected,
for example, to a Local Area Network (LAN), Wide Area Network
(WAN), or as shown, directly to an Internet Service Provider (ISP)
137. In particular, network link 134 may provide wired and/or
wireless network communications to one or more networks.
[0023] ISP 137 in turn provides data communication services through
the Internet 138 or other network. Internet 138 may refer to the
worldwide collection of networks and gateways that use a particular
protocol, such as Transmission Control Protocol (TCP) and Internet
Protocol (IP), to communicate with one another. ISP 137 and
Internet 138 both use electrical, electromagnetic, or optical
signals that carry digital or analog data streams. The signals
through the various networks and the signals on network link 134
and through communication interface 132, which carry the digital or
analog data to and from computer system 100, are exemplary forms of
carrier waves transporting the information.
[0024] In addition, multiple peripheral components can be added to
computer system 100. For example, audio device 128 is attached to
bus 122 for controlling audio output. A display 124 is also
attached to bus 122 for providing visual, tactile or other
graphical representation formats. Display 124 can include both
non-transparent surfaces, such as monitors, and transparent
surfaces, such as headset sunglasses or vehicle windshield
displays.
[0025] A keyboard 126 and cursor control device 130, such as mouse,
trackball, or cursor direction keys, are coupled to bus 122 as
interfaces for user inputs to computer system 100.
[0026] The execution of application software 110 on computer system
100 according to a preferred embodiment of the present invention is
explained in greater detail below.
[0027] Reference now being made to FIG. 2 a data diagram is shown
illustrating the interactions between an application 202 having a
specified format such as DOM, a Renderer 206, and an Access Engine
204 according to the teachings of the present invention. The
application 202 can represent an HTML document such as a web page,
and the renderer 206 can be, for example, the JAWS.TM. renderer by
Freedom Scientific.
[0028] In the preferred embodiment of the present invention, an
access engine 204 is created that provides a convenient, consistent
and knowledgeable interface between the renderer 206 and the
application 202. The access engine 204 provides information about
the types of objects supported, and information concerning the
rendering of each supported object such as supported navigation
modes, displayed information, event handling and the like.
[0029] The renderer 206 and access engine 204 communicate with one
another using external configuration information such as data type
mappings or configuration file settings.
[0030] An example of how the Access Engine can be implemented as a
class instantiation is provided below in pseudo code.
TABLE-US-00001 Public class AccessEngine( ){ Void AccessEngine( ){
}; //return supported reading modes // character, word, line,
sentence, paragraph, page, image, etc public List get Modes( );
//get a list of movement increments // previous/current/next, each
object type public List getMovementIncrements( ); //return pointer
to next object in the direction specified //type = char, word,
line, page, start, end, etc public ObjectgetObject(Movement
direction type); //direction = previous, current or next }
[0031] The pseudo code provided above is merely representative of
how the access engine 204 can be implemented and is not to be
considered a limitation on its applicability to other
implementations or the functionality described herein.
[0032] In the preferred embodiment of the present invention, the
application 202 would have methods for extracting object
information and states as noted below in exemplary pseudo code.
TABLE-US-00002 { //get text to speak public String getText( );
//get state to speak public String getState( ); //like checked or
not checked // get the input/output mode public String getMode( );
//etc. }
[0033] Reference now being made to FIG. 3, a flow chart is shown
illustrating the method for using the access engine of FIG. 2
according to the teachings of the present invention. The method
begins upon the instantiation of the access engine 204. The
instantiation can be the result of the initiation of a document
process and/or an event such as changing focus or indication that a
new user interface object is being presented to the end user (Steps
300-302). For multi-document renderers, such as the Home Page
Reader.TM. by IBM, the access engine 204 can be instantiated upon
the loading of a new document.
[0034] Upon instantiation and a predetermined event, the renderer
206 queries the access engine 204 to determine the navigation modes
supported for the application 202 and provides the renderer with
choices that can be user selectable (e.g. word, sentence, line,
paragraph, etc.) (Step 304).
[0035] During the navigation of the application 202, the renderer
206 sends navigation and possibly other commands (e.g. input) to
the access engine 204 and receives rendering information for the
current focus object, or as the case may be, the next object to
receive focus. For example, the navigation command could be `next
object` or `next page`. The access engine 204 and application 202
focus would advance to the next supported object (e.g. chart in a
drawing application) using a navigation mode. In addition, the
access engine 204 accesses the application 202 to query and extract
attributes about the next object for presentation such as content,
descriptive text, state, value, and supported actions (e.g. press
enter to activate a link).
[0036] Thus, the document provider dynamically enhances the
capabilities of the renderers by supplying extended functions to
supply the new attributes for new document object types. This
provides the renderer 206 with the ability to dynamically adjust to
the application 202 content semantics. (Step 306).
[0037] The renderer 206 uses the information provided by the access
engine 204 to provide rendering such as speech output, Braille,
font enlargement and the like (Step 308).
[0038] It is thus believed that the operation and construction of
the present invention will be apparent from the foregoing
description. While the method and system shown and described has
been characterized as being preferred, it will be readily apparent
that various changes and/or modifications could be made without
departing from the spirit and scope of the present invention as
defined in the following claims.
* * * * *