This invention relates to selecting preferences and setting options in computers and other programmable entities.
Computer users may customize user interfaces presented by programs, and these preferences may be saved so that the preferred interface style will be presented if the program is closed and then reopened. For example, user-adjustable settings that are supported by the telnet.exe terminal emulation program include the font, the size of the font, the foreground color and the background color. Or, Internet browsers allow users to specify operational and display references that are then applied to every web page.
Operating systems use configuration files to store information and settings for hardware and software. For example, the MS DOS and early versions of the Windows operating systems use .INI files—text organized in a simple format that can be read and written using special routines available to programs. A SYSTEM.INI file is used for all internal settings. A WIN.INI file is used for user preferences. Also, each application has an .INI file, usually named after itself.
To tidy up the profusion of per-program .INI files and the difficulty of tracking them all, later versions of the Windows operating system replaced .INI files with a Registry. A Windows Registry is a central directory that stores all the settings and options for the system. It contains information and settings for all the hardware, operating system software, most non-operating system software, users, preferences of the computer, etc. For example, whenever a user makes changes to Control Panel settings, file associations, system policies, or most installed software, the changes are reflected and stored in the Registry.
Other operating systems use separate configuration files for separate application subsystems, but group them together for ease of management.
Although configuration files enable per-user per-program preferences to be set, current practice requires that each preference that differs from predefined default settings be manually entered separately by each user for each hardware or software entity. Not only is this tedious, but it also requires a fairly-sophisticated knowledge of the computer by the user—a knowledge that at least some users of the computer may not possess.
People with disabilities often take advantage of the options-setting functionality of operating systems in order to accommodate their disability. For example, individuals with cataracts may find that black text against a white background is difficult to see on a computer screen, and so they will set their display preference in their word-processing program, such as Microsoft Word, to bold white font against a black background in order to make displayed text more legible. Unfortunately, making this change will cause the document to be printed with those settings. For this reason, a preferred approach may be to choose the “Accessibility” option of the Microsoft Windows operating system, and then select “Magnifier” and “Reverse Video” options. This will affect the computer display without changing the document or the appearance of the print-out.
A problem with this approach is that the system-wide display settings are applied to all programs, which in some cases results in the settings being applied inappropriately. For example, if “Reverse Video” is selected, a document that has white text on a black background (which is the desired view in the example presented above) will now be undesirably displayed as black text against a white background. Or, if a person with poor vision uses the “Magnifier” option to select a certain magnification to increase small font size, that magnification will be applied to all programs, including those that do not use a small font size. Therefore, if the system-wide settings are wrong, a user must reset the preferences manually for each program.
A complicating factor is that the U.S. Code of Federal Regulations, 36C.F.R. Part 1194.21(b), prohibits individual programs from overriding display preferences that have been set via a system-wide accessibility feature. This effectively bans the use of program-specific or document-specific display preferences if a system-wide accessibility preference has been activated.
According to one aspect of the invention, system preferences are specified by the desired outcome (irrespective of what actions or lack of action it takes to achieve the outcome) and options are automatically selected and set to achieve the desired outcome. For example, rather than specifying “Reverse Video,” a person with cataracts is enabled to specify “always show white or yellow text against a black background.” Or, rather than specifying “3× magnification,” a person with poor eyesight is enabled to specify “make text a preferred font and large enough to be legible.” The system compares the desired outcome against the characteristics of target devices, programs, or documents, and if a mismatch is detected, the system automatically determines what modification to the characteristics is needed to produce the desired outcome and then automatically modifies the characteristics accordingly. Illustratively, the system performs this activity for each entity in real-time when the entity is invoked or opened. Alternatively, the system performs this activity on a per-program basis when a user invokes the program, and it automatically adjusts settings in the Registry or .INI files for that program.
According to a further aspect of the invention, a user specifies a characteristic of the user as opposed to of the system—such as a particular disability, for example—and the system automatically determines the desired system outcomes for that characteristic. For example, if the user specifies “macular degeneration” as a user characteristic, the system determines “make text a preferred font and large enough to be legible” as a desired outcome. Or, if the user specifies “keyboard compatibility with documents” as a desired outcome, opening of an English-language document or accessing of a web page that does not have a country designation causes a US keyboard layout to be enabled, whereas opening of a German language document or accessing a web page with a .de designation causes a German keyboard layout to be enabled.
As used herein, “automatically” means the opposite of “manually,” that is, by machine without human involvement.
These and other features and advantages of the invention will become more apparent from considering the following description of an illustrative embodiment of the invention together with the drawing, in which:
As described so far, system 100 is conventional.
According to an illustrative embodiment of the invention, data 158 include data that is used by processor 152 for setting system options, which data illustratively takes the form of a table 200 that comprises one or more entries 202. Each entry 202 corresponds to a different outcome that may be achieved by option setting. The outcome is specified in field 212 of entry 202. Each outcome corresponds to zero or more user conditions for which this outcome is desirable. These conditions are listed in a list of conditions 210 of entry 202. Each outcome may be achieved by following one or more rules which form sub-entries 204 of entry 202. Each rule illustratively takes for form of an “if-then” statement, wherein the “then” portion of the rule, stored in field 216 of sub-entry 204, specifies what action is to be taken when the present conditions of the system are as indicated by the “if” portion of the rule, stored in field 214 of sub-entry 204. Illustratively, table 200 takes the form of an Extensible Mark-Up Language (XML) file.
Although a text-based approach like XML that is parsed by a standardized, cross-platform, interpreter is good for generalized applicability, the interpreted format may need to be converted to a form that runs on and impacts the choices of the specific platform in question. This may be effected by a program that collects the conditions and rules and then adapts and manages that for the particular platform. The actual format of the table, and the representation of the data, may be individualized for the particular platform on which it is being used, although the user interface of the program is preferably standard, and may be similar to that of web browsers.
Below are some illustrative entries 202 that could be employed in system 100 (with an indication of the problem and the prior art in parentheses):
(Problem: Cataracts are a clouding of the lens inside the eye. On a back-lit computer screen, black text against a bright white background can be difficult to see.)
(Prior Art: “Reverse Video” is Allowable as a Global Preference.)
Condition: Cataracts
Outcome: Always show white or yellow text against a black background.
Rules:
(Problem: Macular degeneration is a deterioration of the retina that reduces people's ability to see small details. At normal viewing distances, text below a certain size is not legible. Sans-serif fonts, such as Arial, Helvetica, and Verdana, are better for people with low vision.)
(Prior art: Screen magnification software that makes everything larger.)
Condition: Macular degeneration
Outcome: Make text a preferred font and large enough to be legible.
Rules:
(Problem: For people who are moderately hard-of-hearing, speech from electronic sources at normal levels of amplification can be heard but is hard to understand. In most cases, this is because the low-amplitude components of human speech, notably unvoiced fricatives, such as “F” and “S”, and unvoiced plosives, such as “P” and “T”, are below the listener's hearing threshold.)
(Prior art: Amplification techniques that make everything louder by the same amount. “Method and apparatus for improving the intelligibility of digitally compressed speech”, U.S. Pat. No. 6,889,186, can introduce unacceptable levels of distortion when applied to non-speech signals, such as music.)
Condition: Moderate hearing loss
Outcome: Enhance speech signals to improve their intelligibility.
Rules:
(Problem: State of keyboard Caps Lock key applies to all applications)
(Prior art: Once pressed, the Caps Lock key state is dominant for all applications. The state remains active until the key is pressed again to turn Caps Lock off)
Condition: Text entry errors caused by inappropriate Caps Lock setting.
Outcome: “context-based Caps Lock”
(Problem: Play-along game that enables a game player to simulate playing of a bass guitar along with selected song requires a manual change of guitar from left-handed to right-handed play to play along with a left-handed artist such as Paul McCartney.)
Condition: none
Outcome: change hand with artist
Rules: (1) If music is by The Beatles, then switch guitar play from right-handed to left-handed.
Illustratively, table 200 may be provided with predefined (default) entries 202. These entries 202 may then be modified by a user and/or may be supplemented by the user or by an administrator with additional entries 202.
According to an illustrative embodiment of the invention, programs 156 include an options setting program 300, shown in
Of course, various changes and modifications to the illustrative embodiment described above will be apparent to those skilled in the art. For example, the options-selection arrangement can be applied to a wide spectrum of input and output devices, game systems, mobile devices, configuration shifts (e.g., portrait/landscape print mode, different tablet-PC behaviors, keyboard/voice/drawing pad interface, single/multiple screen view, cell phone/computer behavior), detection of diacritical marks to effect keyboard changes, etc. Or, if someone's name contains a special character (e.g., Ø), the use case may be automatic detection of entering a Name field of a form or a document and in response automatically configuring the keyboard to a mode that allows entry of the special character. Such changes and modifications can be made without departing from the spirit and the scope of the invention and without diminishing its attendant advantages. It is therefore intended that such changes and modifications be covered by the following claims except insofar as limited by the prior art.