Abstract: A computing environment can dynamically respond to user preferences and personal abilities by enabling computer users to configure their computing experience by implicitly gathering information about the users" needs. The system can detect users" issues during the natural course of interaction with the system and offer to make adjustments to make their tasks simpler and more enjoyable. The system can allow for the configuration of settings that can impact users" abilities to receive important information from the system or provide input to the system.
PERSONALIZATION OF USER ACCESSIBILITY OPTIONS
TECHNICAL FIELD
The techmcal field relates to computer hardware and software, more specifically personalizing user accessibility options
BACKGROUND
There are a number of challenges facmg users with disabilities that prevent them from fully expenencmg the power of the personal computer (PC) and other devices One significant contributor is the requirement that users adapt their workmg style, modes of commumcation, and thought processes to suit the device or software they are using The agmg population faces challenges similar to those faced by users with disabilities, such as difficulty seemg the display, heanng the audio, using the mouse, and configurmg their system Also, they often fail to discover features designed to help them Agmg users rarely identify themselves as bemg disabled Therefore, it is important that system capabilities are not marked solely as features for users with disabilities
Cuirent design issues mclude assumptions regarding mput (e g, the mouse and keyboard are the only devices widely supported), assumptions regarding output (e g, many users cannot use "standard" forms of output, such as momtor and speakers), and cumbersome user mterfaces (UIs) (e g, graphical user mterfaces (GUIs) require a user to wade through multiple levels of the UI to accomplish a single task, and the keyboard navigation model is often highly complex and not easily discovered)
Current general usability issues mclude user preferences being ignored (e g,
users are prevented from adjusting then- systems to meet their needs because system
colors, fonts, sizes, and timmg are not consistently respected), local settings (e g, user
settings are stored locally and are therefore not available on other devices, thereby
placing the burden of configuration on the user), setup and configuration (e g,
configunng devices is too difficult for many users, especially semors and users with
disabilities), and hardware that is unaware (e g, users must manually adjust their
systems to compensate for changes in their suiroundings such as lighting and background noise)
Current issues regarding programmatic access to information mclude mcomplete UI mformation (e g, only a small subset of UI information can be retneved by assistive technology (AT) products, which rely on hooks, eqiphcation-specific APIs, and unsupported techmques to collect necessary information), poor magmfication support (e g, current techmques produce low-quality images), loss of information (e g, information conveyed by layout alone, such as visual groupmg or alignment of controls, can not be discovered programmatically and conveyed in another form such as Braille or speech), and madequate automation support (e g, user mput cannot be sunulated by alt mput devices)
While users with disabihties as well as the agmg population are likely to have the most extreme demands, there are many other users that would benefit from improvements m accessibility options because of the various factors that can produce temporary or situational disabilities For example, the use of a display m bright sunlight is comparable to complete or partial bhndness, workmg m an environment with high '
levels of background noise is comparable to bemg deaf, the use of a device by a user whose hands are mjured or occupied is comparable to the user havmg a mobility impairment, and eye strain (e g, a need for magmfication and/or change in contrast) is comparable to low vision Additionally, Repetitive Stress Injury (RSI) is comparable to a mobility impairment
Thus, there still exists a need for improving user accessibility options technology
SUMMARY
The disclosed technology provides systems and methods that can enable
computer users to configure their computing expenence by implicitly gathenng
information about the users' mput and output needs System settings can thus be
modified for users without any knowledge of mdustry jargon and without the need to
know the names of system settings to be changed For example, many users with
limited dexterity in then- hands have difficulty pressmg multiple key combinations and would not be aware of a Microsoft Wmdows feature called "Sticky Keys" that can help them avoid this problem Usmg the disclosed technology, the system can automatically detect these types of problems dunng the users' natural course of mteraction with the system and offer to make adjustments to make their tasks such as typmg on the keyboard simpler and more enjoyable
This computing environment can be dynamic enough to respond to user preferences and personal abibties It embodies the prmciples of usability by presenting easily discoverable features for configunng the system's settings and ensuring the system is usable by all persons, mcluding those with disabilities The disclosed technology is designed to allow for the configuration of settings that can impact users' ability to receive unportant information fiom the system or provide mput to the system
BRIEF DESCRIPTION OF THE FIGURES
FIG 1 is a block diagram showing an exemplary system for personalizmg user accessibility options
FIG 2 is a block diagram showmg another exemplary system for personahzing user accessibihty options
FIG 3 is a flowchart showmg an exemplary method for personalizmg user accessibility options, such as with the system shown m FIG 1
FIG 4 is a block diagram showmg a data structure representing a user profile
FIG S is a diagram dqJicting a general-purpose computing device constituting an exemplary system for unplementing the disclosed technology
DETAILED DESCRIPTION
Overview
In the followmg description of the disclosed technology, reference is made to the accompanymg drawings which form a part hereof, and m which is shown by way of illustration specific embodunents m which the invention may be practiced Other
embodiments may be utilized and structural changes may be made without departing from the scope of the disclosed technology
Example 1-A First Exemplary System for Personabzwg User Accessibibty Options
FIG 1 is a block diagram representing an exemplary system 100 for personalizing user accessibility options In the example, the system mcludes a monitoning service 102 that mom tors and tracks a computer user durmg the user's mteraction with the system The raomtormg service 102 can analyze and store information based on the user's mteraction with the system m a user profile (e g, a file)
The system also mcludes a Personalization Wizard 104 that can suggest or make certam changes to accessibility options withm the system based on the user's mteraction with the system Suggestions presented to the user by the Personalizaton Wizard 104 may be specific (e g, identify specific accessibility options that can be changed) or general (e g, provide the user with general help information regarding a certam category of accessibility options such as visual settings)
Example 2-A Second Exemplary System for Personalizmg User Accessibility
Options
FIG 2 is a block diagram representing another exemplary system 200 for personahzmg user accessibility options In the example, the system mcludes a momtonng service 202 that momtors and tracks a computer user durmg the user's interaction with the system The system also mcludes an mput device 201 (e g, a keyboard or a mouse) that can provide input to the momtonng service 202
The s)^tem fiirther includes a Personalization Wizard 204 that can suggest or make certam changes to accessibility options withm the system based on the user's mteraction with the system System settings 203 (e g, accessibility settings) can be used to control behavior of the computer system bemg used by the user
Example 3 - Exemplary Method for Personalmng User Accessibility Options
FIG 3 is a flowchart showmg an exemplary method 300 for personahzmg user accessibihty options, such as with the system sbownin FIG 1 The methods of any of the examples descnbed herem can be performed m software executing computer-executable mstructions Such instructions can be stored m one or more computer-readable media.
At 302, a user's mteraction with a computer system is momtored (e g, by a momtormg system) A user profile may be created to store information regarding the user's mteraction with the computer system For example, if the user had difficulty performmg double-click operations with the mouse, then such information might be tracked (e g, stored m the user profile)
At 304, the user's accessibility options are optmuzed based on the user's interaction As part of this step, the user profile may be consuhed by a tool (e g, a Personalization Wizard) to determine what changes should be suggested or made For example, if the user had difficulty performmg double-chck operations with the mouse, then the tool might modify the double-click speed m the mouse settings or suggest such a modification Such a modification can tell the system to recogmze two slower clicks as a single double-chck Modifications can be made with or without user approval, as desired Accessibility settings can be used to configure any of the assistive technologies descnbed herem
Example 4 - Exemplary Accessibility Inferences
In any of the examples descnbed herem, momtonng a user's interaction with a computer system can be used to infer accessibility informaton (e g, for any of the assistive technologies descnbed herem) about the user Based on the accessibility information, the system can then make an appropnate configuration change to address the related accessibihty issue or present the option to do so
Example 5 ~ Exemplary User Difficulty with Mouse
In any of the examples described herem, if a user uses a mouse in a particular way that mdicates diflGculty mousing, the system can mfer that the user has difficulty performmg operations with the mouse For example, consider a user that wants to open a file by double-chckmg on the file icon but can't make both clicks withm the allotted time for a double-chck operation Rather than opeiung the file, the clicks might do something else mstead (e g, make the title of the file editable, or select-de-select the icon) If the user repeats this behavior a certam niunber of tunes (e g, two) or withm a certam time penod (e g, ten seconds), or both, the system can mfer that the user has difficulty double-chckmg Accessibihty settings can then be configured accordingly For example, the time between chcks for a double-click operation can be lengthened to allow for greater mtervals of time between chcks, or, the option to do so can be presented
Example 6 - Exemplary User Difficulty with Typing
In any of the examples descnbed herein, the system can infer that a user has difficulty typing based on certam user behavior In one situation, a user might repeatedly press a key (e g, multiple times) or hold a key for more than a certam threshold of tune (e g, one second) (e g, resulting in multiple identical letters, some of which are subsequently deleted) Alternatively or additionally, the user might accidentally press more keys than are needed for whatever operation the user is attempting to do (e g, typmg extra characters and subsequently deleting them) In such situations, the system can mfer that the user might need an assistive aid to help him or her type The system can then configure some settings (e g, change typmg settings to allow for the ignormg of certam bnef or repeated keystrokes, or to mcrease the time after which multiple identical letters are produced) to match the needs of the user, or present the option to do so In some embodiments, the system automatically provides this service to the user
Example 7 - Exemplary User Difficulty with Viewing the Screen In any of the examples descnbed herein, the system can infer that a user has difficulty viewing the screen For example, if a user selects larger fonts m multiple applications or documents, or if the user performs a certam combination of actions (e g, selecting a larger font and using some type of magmfication mechamsm m the same document/application or another), the system can provide for the appropnate configuration of accessibility settings (e g, automatically mcrease font and/or view magmfication), or present the option to do so
Example 8 - Exemplary User Profile
FIG 4 is a block diagram showing a data structure representing a user profile 400 The user profile 400 can contam a great deal of mformation, both specific and general For example, the user profile 400 may contam mformation regarding a user's visual settings 402 or audio settings 404 The user profile 400 may also contam mformation regarding the user's mput settings 406 or cogmtive settings 408 The user profile 400 may contam any of a number of combinations of information regarding the areas listed above and areas not hsted The user profile 400 of FIG 4 is only one example and should not be construed as liimting with regard to what information is stored withm a profile
Example 9 - Exemplary Adaptive Computing Environment (A CE)
In the example, an Adaptive Computing Environment (ACE) can redefine how users mteract with their devices by givmg them greater control over mput and output modahties, the behavior of their device m changmg environmental conditions, and the look and feel of their computing experience Because this environment embodies the prmciples of accessibility, it can provide an ideal solution for people with disabibties Such an ACE can unleash the power of the user and set a new accessibility and usability bar for the computer mdustry
In the example, an ACE mcludes a computing environment that mtelhgently optimizes itself for its user, the device, and its sunoundings For example, an individual
who is blmd can choose synthesized speech or Braille as their primary form of output, and a person who is deaf can see closed cations or descnptive text m place of audio output Additionally, mdividuals with hght-sensitive epilepsy can turn off animations or adjust their speed to prevent seizures, and a portion or all of the display can be magmfied to improve usability and readability for aging consumers Also, users with low vision or color blmdness can adjust colors, sizes, and fonts, and handheld devices can detect glare on the display and, m response, mcrease contrast or switch to synthesized speech output
Example 10 - Exemplary Personalization Wizard
In the example, a Personahzahon Wizard embodies the prmciples of usability by presenting easily discoverable features for configunng the system's settings and ensunng that the system is usable by as many users as possible, mcluding those with disabihties The Personahzation Wizard can allow users to step through each of several settings one by one or to jump du-ectly to specific categones of settings if they know
>
exactly what they want to set Users can use the Personalizabon Wizard to customize
system-wide settings that are related to accessibility, customize and launch accessibility
aids (e g, Narrator, On-Screen Keyboard, and Magmfier), and customize and launch
third-party accessibility aids As the users make changes m the wizard, those changes
will be automatically applied so that the users can benefit fi°om the changes and be
allowed to immediately understand the impact of their changes However, any change
performed by the Personahzation Wizard can be immediately undone by means such as
pressmg the Backspace key on the keyboard or by right clickmg with the mouse This
can allow users to modify a setting that did not have the desired impact on their user
expenence While most, or all, of these settings might be available through Control
Panels elsewhere in the system, the Personalization Wizard can pull all of the settings
relevant for mput or output together mto one convement location
In the example, the Personahzation Wizard can allow the user to customize
visual settings as follows
• Screen resolution
• Colors
• Font face, size, weight, and stroke used to render text throughout the system
• Appearance and thickness of the Focus Indicator
• Appearance and size of Mouse Cursors
• Animaton settings (e g, turn animation ON or OFF m specific UI situations)
• Transparency m the UI (e g, force it to be 100% opaque)
• Size of chckable regions (e g, icons, scrollbars, buttons, wmdow borders)
• Cursor width and blmk rate
• Magnification settings (e g, when other size adjustments are msufficient)
• Alarm notifications for cntical events (e g, low battery, network status changes)
In the example, the Personalization Wizard can allow the user to customize audio settings as follows
• Volume
• Sound schemes
• TTS settmgs (e g, voice, speed, and pitch)
• Provide captions for recorded audio (e g, Show Sounds)
• Provide text equivalents for audio notifications (e g, Sound Sentry and PlaySound)
In the example, the Personalization Wizard can allow the user to customize mput settmgs as follows
• Typmg assistance (e g, Sticky Keys, Bounce Keys, Toggle Keys, and key repeat rate)
• Pomter assistance (e g, Mouse Keys and Mouse settmgs such as buttons, speed, double click mterval, mouse trails, and radar)
• Input hmts for mteractmg with the system (e g, extra keyboard help)
• Configurable timeout mtervals for responding to prompts or questions
• Allowmg key combinations, such as Ctrl+Alt+Del, to be entered by the pressmg ofonekeyatatime
• Support for custom input devices (e g, game controllers to replace mouse, and single switch mput)
In the example, the Personalization Wizard can allow the user to customize cogmtive settings as follows
• Dynamic UI (e g, auto-hiding toolbars, customizable menus, glommmg, and groupmg)
• Complexity of UI (e g, remove "Advanced" button firom dialogs)
In the example, the Personalization Wizard can be folly accessible (e g, adhere to all Microsoft accessibihty giudebnes and folly support Microsoft Wmdows UI Automation) It can also provide advanced UI support to ensure that all users can use it effectively (e g, support text captioning, present self-voicmg UI, offer foil-screen magnification, and automatically detect and utilize a USB Braille device)
In the example, personal profiles (e g, collections of preferences and settings) can be saved, restored, and edited to provide ease of transporting settings to another device and mamtainmg them over time
In the example, the Personalization Wizard can be available at places where the users would want to customize their settings (e g, durmg install, durmg setup, at first logon, on the default desktop munediately after first logon, and dunng subsequent logons and default desktops) The Personalization Wizard can be discoverable by all users (e g, both mainstream and those with mild and severe disabilities) A user is generally not required to self-identify as havmg a disability
In the example, the Personalization Wizard can be the one end-user tool for customizmg accessibility-related settings and aids The Personalization Wizard, along with redesign of built-m assistive technology aids, can better handle launchmg such aids versus customizmg them The Personalization Wizard itself can be folly accessible Additionally, the Personalization Wizard can expose accessibihty settings of the OS and, where possible, application accessibihty settings An end-user generally does not need to turn on a system setting and then turn on the same setting m an application If the Personalization Wizard does not host the application setting, it can pomt the user to the correct place m the application to set it, launch the corresponding configuration UI, or provide Help text explaimng these additional features Users can also use the Personalization Wizard to find out about all accessibility-related features, mcluding third-party AT products
Example 11- Exemplary Personal Preferences and Device Capabiltties that can Shape the Overall User Experience
In the example, a system is designed to base all of its decisions off of the well-known settings contamed m a user profile Smce this profile is generally available at all times, there is usually never a tune when an apphcation author needs to make assumptions about the user's workmg style, expenence level, or hardware devices
In the example, the foUowmg preferences are honored by the system
• Appearance (e g, color, contrast, size, fonts, layout, displaymg text-vs-images)
• Input devices (e g, keyboard, mouse, pen, voice, natural language, Morse Code)
• Output modahties (e g, visual, audio, haptic, prmt, olfactory)
• UI complexity and use of a umversal type-m Ime
• WYSIWYG (what-you-see-is-what-you-get) mode
• Tunmg (e g, timeout periods, flash rates, double chck speed)
• Multimedia settings (e g, animation, video, audio, closed cqitiomng, audio descnption)
• Expenence level (e g, with the system as a whole and with each particular application)
In the example, a new user preferences wizard can employ simple questions and construct decision trees to build a user profile containmg the relevant user preferences The user preferences wizard can be launched at first boot of a device to collect the relevant preferences The user profile can be stored on removable storage so that it can travel with the user across devices and around the world Some user preferences can be dependent on the device (e g, keyboard preferences are generally urelevant for a kiosk) When new system options or device capabihties are detected, the user can be asked additional questions so that theu* profile can be updated Analysis of the user's mput patterns (e g, typmg speed and mouse movement) can allow the system to suggest changes that could improve user productivity
In the example, a system can provide mechamsms to transform GUI output mto alternative formats (e g, speech or Braille) Smart notifications can respect the user context (e g, when runmng a Microsoft PowerPoint presentation, instant messagmg popups will not be displayed) Multimedia content can contam multiple sub-streams
(e g, closed captions or descriptive audio) Skinmng can allow customized views of an application that are optimized for a specific audience
Example 12 - Exemplary Devices that can Detect Changes in the User's Surroundings and System that can Respond Appropriately
In the example, ACE-comphant hardware can mcorporate sensors to detect changes m the user's surroundings and send that information to the system so that it can make any necessary adjustments to the user expenence For example, if the user is hstemng to audio and the ambient noise level increases, the system can automatically mcrease the volume of the audio playback When the ambient noise reaches a specific threshold, the system can switch to the preferred "no audio" mode, which could be closed captions
In the example, new sensors can detect changes m the user's immediate surroundings Examples of such sensors are as follows
• Photocells that can measure mcident light stnkmg the display
• Microphones that can measure ambient noise levels
• GPS that can determme the user's current location
• Gyroscopes that can detect movement
• Galvamc skm response strips that can sense anxiety/state changes
• Cameras that can do proxumty detection and enable face recogmtion
In the example, built-m voice chips can announce problems dunng boot sequence so that bhnd users can troubleshoot their system, and the device can feed environmental information to the system Additionally, the system can use environmental data to decide when to mtelhgently switch between I/O modes (e g, enter "No Audio" mode when background noise reaches a specific threshold), and self-mamtaming devices can commumcate with the system to detect and resolve problems Also, a device can broadcast its I/O capabilities to the system so that the system can optimize the user expenence
Example 13 - Exemplary Assistive Technologies and Specialized Devices thai can Seamlessly Integrate with the System
In the example, ATs can use the current focus and context to alter their behavior (e g, an on-screen keyboard can hide all keys except its numenc keypad when the focus is m a zip code field) Input devices (e g, keyboard, mouse, pen, voice, natural language, Morse Code, and sip-n-puff headsets) and output devices (e g, GUI, synthesized speech, prmt, and Braille) can be supported GUI information can be transformed mto alternative formats (e g, speech or Braille)
In the example, a new accessibibty model can be mtroduced which offers one-stop-shoppmg for all UI information For example, it can insulate AT products from application and OS version dependencies and be fully supported by every Wmdows application Also, ^plications can have integrated support for detecting and utilizing altemative mput/output devices
In the example, AT products can either ship with the system or be added to address the specific needs of individuals, such as people who are blmd or have lunited vision, people who are deaf or hard of hearmg, people with lunited dexterity or mobility, and people with a cogmtive or learmng disability Also, AT products can be offered as web services that can be mstalled on-demand for temporary use by roammg users
Example 14 - Exemplary Applications and Devices that can be Easily Built for an
ACE
In the example, the ACE can dehver tools, docs, and sohd design practices that
greatly reduce the development cost and complexity of shippmg adaptive software For
example, one simple rule for application developers might be as follows '"Get
everythmg you need firom the user profile and do not assume the user is mteracting with
the system m a particular way " Mamstream design, development, and testing tools can
support the new UI platform and offer wizards, tasks, and other productivity aids to help
developers support this adaptive environment with minimal cost In the example,
developers do not need to become accessibility experts to build accessible applications
A new automation model can satisfy the requuements of programmatic access to UI information and become the foundation of automated UI testing tools and AT products Also, tools can simulate changes m the user's profile m order to identify places where an application author has made assumptions instead of using information available in the user profile
Example 15 - Exemplary Assistive Technologies (A Ts)
There are numerous system settings and metncs m an operating system (OS) Some of these settings provide purely state information, but many of the settings serve a much broader purpose and can be associated with specific assistive technologies (ATs) to help the end user The followmg examples provide a description of many important system settings and metncs related to accessibility Traditionally, the term AT refers to a third-party application that provides some form of accessibihty service Smce the various settings discussed below also help to provide accessibihty services to some degree, these settings or classes of settings can also be referred as ATs To differentiate these ATs fi"om third-party ATs, they are sometimes referred to as OS ATs hi some cases, a combmation of two or more settings serves as an AT
Many of the followmg examples first identify a particular problem or issue and then describe an exemplary solution based on certam exemplary system settings As an example for many of the disclosed ATs, an exemplary set of Specific metncs that can be used to solve the problem is specified Additionally, for many of the disclosed ATs, a user scenano of a user with the identified problem and how exemplary settings may be used to address it is also provided Some of the vanous classes of ATs descnbed herem are as follows
• Exemplary Keyboard Settings
• Exemplary Mouse Settings
• Exemplary Display Settings
• Exemplary Audio-Video Settings
• Exemplary Tmimg Settings
• Exemplary UI Effects Settings
Example 16- Exemplary Keyboard Settings
Example - Making it Easier to Type Problem
There are several reasons why some users may need assistance m configunng the way theu- keyboard works
• Some users may have hmited hand coordmation
• Some may have tremors or other motor conditions that cause them to unmtentionally strike the same key more than once
• Some users may have trouble stnkmg an mtended key
• Some users may have slow reaction time that they hold down a key unmtentionally long enough to produce unwanted reiieated characters
Solution
Settings such as the FilterKeys setting in Microsoft Wmdows can provide a way for users to configure and customize then* keyboard repeat rate, acceptance delay, and bounce rate This can enable users to individualize the delay dunng which a key is held down before a key-press is accepted (e g, Slow keys) Such a setting can help customize the delay after a keystroke, dunng which an additional key-press will not be accepted if it is identical to the previous keystroke (e g, Bounce keys) This also enables users to customize the minimal amount of time that they can hold a key down after key-press acceptance before key repeat begms (e g, Repeat keys) Tunung on FilterKeys instructs the keyboard to ignore either bnef or repeated keystrokes The keyboard repeat rate, which generally refers to the rate at which a key repeats when held down, can also be adjusted
Some of the vanous components that can make up a setting such as FilterKeys can be exposed mdependently as follows
• Help me avoid repeating keystrokes (e g, Repeat Keys)
• Hold key down for specified penod before recogmzmg keystroke (e g, Slow Keys)
• Help slow down keyboard repeat rates (e g, Boimce keys)
Specific metrics that can be used to address this issue
SPI_SETFILTERKEYS
SPI_SETKEYBOARDDELAY SPI_SETKEYBOARDSPEED
User Scenario
Bradley is a safety manager for a transportation company At the age of SS, he has developed tremors m his hands that cause him to umntentionally strike the same key multiple times This was a big problem for Bradley, until he used the FilterKeys option m Microsoft Wmdows He has configured his computer to ignore keystrokes repeated faster than 1 5 second The computer now discards umntentional keystrokes caused by his tremors He has also used the Slow keys feature and configured that keys should be held for at least half a second to be recognized This has made his experience with the computer better and a lot less pamiul
Example - Making it Easier to Use Multiple Key Strokes Problem
Users with physical impairments often find it hard to press multiple keys simultaneously
Solution
Settings such as the StickyKeys setting m Microsoft Windows can provide a way for users to enter key combinations by pressmg one key at a time This setting can enable the modifier keys to lock or latch so that the multiple key combinations and key + mouse button combmations can be entered sequentially
Specific metncs that can be used to address this issue
SPI_SETSTICKYKEYS
User Scenario 1
Jacob is a sales manager for a software firm Five years ago, he was m an auto
accident that resulted m him losmg his left hand Bemg an old-timer fiom the Umx
world, he is most comfortable with using the keyboard While he has become
accustomed to using just his nght hand while typing, entermg multiple keys combmations still poses a hard problem for Jacob He has turned on StickyKeys for entermg multiple key combinations, and this proved to be a great accommodation techmque to help Jacob Without the StickyKeys option, hfc would have been even more difficult for Jacob
User Scenano 2
Tanya does not have a disabihty but is trymg to log onto her computer while holding a squirmy kid She is trymg to push Ctrl+Alt+Del but is not able to hold down more than 2 keys at a time A tool can detect this keyboard mput and brmg up a dialog box askmg if she wants StickyKeys turned on
Example - Makmg it Easier to Fmd Out When Kevs with Toggle States are Pressed Problem
Users who are unable to see the keyboard status lights to detentune the current state of a bmary-state keyboard toggle control such as 'Caps Lock' or 'Num Lock' often need alternate ways to get this information
Solution
Settings such as the ToggleKeys setting m Microsoft Windows can allow users who are unable to see the keyboard status of keys such as 'Caps Lock' determme the state using sound When this setting is turned on, the system can mdicate a locked state with an up-tone and an unlocked state with a down-tone
Specific metrics that can be used to address this issue
SPI_SETTOGGLEKEYS
User Scenano
Karen is a supervisor m a customer service department She is blmd She uses a screen reader and a Braille device to help perform her job She uses the ToggleKeys
option to detenmne the state of the 'Caps Lock' and 'Num Lock' keys m her keyboard The tone that is played by her system helps her detennme the whether the keys are locked or not
Example - Makmp it Easier to Identify Keyboard Shortcuts and Access Keys Problem
Keyboard shortcuts and access keys are not always obvious Providing some kmd of visual cues can make it easier for users to identify the keyboard shortcuts and access keys
Solution
Underhmng access keys and providing exphcit keyboard shortcut for menu items can make them easily discoverable Tummg on keyboard preference, menu underlmes, and keyboard cues flags can provide visual cues makmg it easier for a user to identify the keyboard shortcuts Oftentimes, applications (e g, Microsoft Office) have the visual cues on by default, urespective of the state of these flags
Specific metrics that can be used to address this issue
SPI_SETKEYBOARDCUES SPI_SETKEYBOARDPREF SPI_SETMENUUNDERLINES
User Scenario
Steve is a computer programmer m a small software firm He has low vision and generally relies on the keyboard to accomplish most of his tasks He has turned on the "Display keyboard cues" setting so that all the keyboard shortcuts and access keys are visible by default This makes it much easier for him to work with the keyboard
Example - Controllmp the Mouse Cursor using the Keyboard Problem
Users with restricted lunb/hand movement or coordmation often find it very hard to use the mouse
Solution
Settings such as the MouseKeys setting m Microsoft Wmdows can provide xisers with a keyboard alternative to standard pomting devices that enables keyboard control of pomter movement and pomter button functions This can enable the user to use the numenc keypad to control the mouse pomter to chck, double-click, drag, and drop Togglmg the 'Num Lock' can toggle the numenc pad between mouse control mode and normal operation Turmng on the 'snap-to-default button' feature can automatically reposition the mouse cursor to the default buttons m dialogs when the dialogs open, thereby reducmg the need to move the mouse over to the default button m the UI This option can be very helpful m reducmg the movement of the mouse cursor and would woric well m tandem with the MouseKeys feature
Specific metrics that can be used to address this issue
SPI_SETMOUSEKEYS SPI_SETSNAPTODEFBUTTON
User Scenario
Jerry is a computer programmer He recently had an accident and, due to his hand siu-gery, he has lost the use of his right hand temporarily Bemg a nght-hander, Jerry finds it extremely difficult to use the mouse with his left hand Where possible, he uses the keyboard equivalents but, unfortunately, there are still applications that use the mouse extensively He has turned on the MouseKeys option and is currently using the numenc keypad to control the mouse and do other mouse related activities He has also enabled the 'Snap to default button' feature where the mouse automatically moves to
the default button in an app All this helps Jerry to still be able to use the mouse despite the temporary loss of use of his right hand
Example 17- Exemplary Mouse Settings
Example - Making it Easier to Use mv Mouse Problem
Users with limited hand/lunb cooithnation, tremors, or other motor conditions, and users who use the mouse with their feet often have trouble using the mouse by unmtentionally pressmg a mouse key more than once or even having problems with pressmg the mouse button at all
Solution
Settings such as the FilterKeys setting for keyboards but for configunng the way the mouse worics could greatly benefit these users For example, the Mouse Filter Buttons option can provide a way for users to configure and customize the mouse repeat rate and acceptance delay This can facilitate a pre-detemuned delay after a button-press, dunng which an additional mouse button-press will not be accepted This setting can also enable users to customize the minimal amount of time they need to hold a mouse button down for mouse-press acceptance Tummg on FilterKeys can mstruct the keyboard to ignore either bnef or repeated keystrokes The keyboard repeat rate, which is generally the rate at which a key repeats when held down, can also be adjusted
Specific metncs that can be used to address this issue
SPI_SETMOUSEFILTER SPI_SETCLICKOFFTHEMOUSE
Used in tandem with the other settings (e g, double chck sensitivity and drag sensitivity), SPI_SETMOUSEFILTER could enhance a user's experience vwth the mouse
In many cases, small movements needed to chck a mouse can be pamftil to
certain users SPI_SETCLICKOFFTHEMOUSE would move the chck away fi-om the
mouse For example, predetemuned (or user configurable) keys on the keyboard may be used to represent a chck Then the user just has to move the mouse over the required position and instead of clickmg the mouse would press the special key on the keyboard This could also be used for other mouse operations (e g, double click, drag, and drop)
User Scenano
Juha is a claims representative m an insurance company At the age of 55, she often has difficulties with tremors on her fingers It is difficult for her to chck the ' mouse button only once and often her smgle clicks are recogmzed as double clicks She can hold the mouse button down successfully by mamtaimng pressure After implementation of the disclosed technology, however, Julia seldom has this problem anymore For example, she may have enabled the mouse filter button option to avoid accidental repeated button clicks Now the system can prevent her accidental clicks from bemg recogmzed as valid mouse clicks She may also have configured the minimum amount of time needed to hold the mouse button down for it to be recogmzed as a valid mouse chck This can help her m avoiding accidental mouse clicks as she moves the mouse around, greatly improving her user expenence and productivity
Example - Controllmg the Mouse Cursor using the Keyboard Discussed above m Example 16 (Keyboard Settings)
Example - Makme it Easier to see mv Mouse Cursor Problem
Users with low vision often find it hard to see where the mouse cursor is on the desktop when the cursor is not movmg Another potential issue is keepmg track of the mouse cursor when m motion Also, the size of the mouse cursor, the shape of it, and the content on the desktop can all make it harder to see
Solution
Increasmg the size of the mouse cursor can be very helpful m addressmg this issue Features such as the Mouse Sonar feature can cause concentnc circles to be drawn around the mouse cursor when the CTRL key is pressed This can bring a user's attention to the location of the mouse cursor This can often help when the mouse is currently not bemg used and the user wants to find where the mouse cursor is Features such as the Mouse Vamsh feature can hide the cursor when m typmg mode Disabhng such a feature can ensure that the mouse cursor is always displayed Features such as the Mouse Trails feature can provide a visual indication as to where the cursor is when It is m motion
Specific metncs that can be used to address this issue
SPI_SETMOUSESONAR
SPI_SETMOUSETRAILS
SPI_SETMOUSEVANisH
SM_CXCURSOR
SM_SYCURSOR
SPI_SETRESETM0USEL0CATI0N
SPI_SETPROPORTIONALMOUSE
Implementing SPI_SETRESETMOUSELOCATION can result m the resetting of the mouse, by the pressmg of a key combmation, to a pre-deteimmed position (e g, the center of the desktop) on a white background that fades out once the mouse is moved This can provide a user with the abiUty to press a key combmation to move the mouse to a known location The white background can provide sufficient contrast regardless of the background contents at that position
Due to the varied content in a typical desktop and the different mouse cursor shapes, if the mouse cursor grew as it moved (until it reached a pre-determined maximum size), SPI_SETPROPORTIONALMOUSE could provide an easy way for a user to visually identify the mouse cursor when m motion For example, the cursor can shrink agam when it rests
User Scenano
Ian is a sales clerk at a department store The computer termmal at the sales counter runs an application that is heavily mouse-dnven Due to his low vision, Ian has a hard time seemg where the mouse is This affects his ability to do his job and sometunes frustrates his customers The IT department recently configured his PC using the disclosed technology and set up a profile for Ian to help him with his low vision Ian now has mouse trails and mouse sonar turned on to help him easily identify where the mouse cursor is, and the snap to default button has also helped These days he has much happier customers due to his faster response tune at the sales desk
Example - Makme it Easier to Hover mv Mouse over Objects Problem
Users with restricted limb/hand movement or coordination and hand tremors often find it very hard to hover the mouse cursor over objects
Soluboo
For a hover to be detected, the mouse cursor must remam withm a small region for the specified hover time Increasmg the hover-region and/or reducmg the hover-time could help ease this Providing an easy to use a UI that allows users to customize the hover metncs could solve this issue for the users
Specific metncs that can be used to address this issue
SPI_SETMOUSEHOVERHEIGHT SPI SETMOUSEHOVERTIME SPfSETMOUSEHOVERWIDTH
User Scenario
Momca is a secretary in a law finn She has been domg this for almost 40 years,
but with age come illnesses and unpairments She has turned on the "Single-click to
open an item (pomt to select)" feature m Wmdows Explorer smce clickmg the mouse
causes pam m her finger jomts But pomting (hovenng) has not been easy for Momca,
either The items are rather small and, with her tremors, she was finding it hard to hold the mouse over an object She has now implemented the disclosed technology to customize the hover metrics, and her user experience is much better and her productivity has gone up tremendously
Example - Makmg it Easier to Double Chck mv Mouse Problem
Users with restricted limb/hand movement or coordination often find it very hard to use the mouse
Solution
For a double-click to happen, the mouse button should be pressed twice, with a certam maximum time between clicks, and should be withm the double click rectangle Increasmg the rectangle and the tune between the clicks enables users with hand/limb impairments to double click the mouse more easily
Specific metncs that can be used to address this issue
SPI_SETDOUBLECLICKTIME
SPI_SETDOUBLECLICKHEIGHT
SPI_SETDOUBLECLICKWIDTH
User Scenario
John is a DBA m a small firm Because he has severe arthntis, and makmg quick successive finger movements to double-click the mouse is very painfiil, he has configured and set the double-click time to the slowest setting possible John has also specified to allow for a larger double-click area, which mtemally mcreases the doubleclick height and width metncs This gives him more time between the clicks and more room to complete the double-click operation, and these settings make double-clickmg much less painfiil for John
Example - Makmg it Easier to Move mv Mouse Problem
Users with restncted hmb/hand movement and users with limited motor skills often find it hard to move the mouse The mouse either moves too fast for them or is too slow, and is physically pamful
Solution
Providing users with the facihty to adjust the speed and acceleration of the mouse cursor can give them more control over the mouse operations and enhances their user experience
Specific metncs that can be used to address this issue
SPI_SETMOUSESPEED SPI_SETMOUSE
User Scenario
George is a computer programmer He lost his hands m a tram accident several years ago He uses a sip-and-pufTdevice to control the mouse He has adjusted the speed and acceleration settings of the mouse cursor so that be can effectively control the mouse cursor with this extemal device, which has been very useful to George
Example - Making it Easier to Use mv Mouse with Both Hands Problem
The mouse is basically designed for a nght-handed user Users who are left-, handed or users with RSI on their nght hand, who temporanly switch hands to use the mouse, often find it very hard to use the mouse
Solution
Bemg able to switch the functions of the two mouse buttons can provide left-handed users with a more natural feel Many mouse devices are available that are
symmetncal in shape and facilitate easy switchmg between the hands A feature providing the ability to swap buttons easily can provide a good experience to users
Specific metncs that cao be ased to address this issue
SPLSETMOUSEBUTTONSWAP
Alternatively, an extension of the SPI_SETMOUSEBUTTONSWAP feature could be to allow the thumb button to left cbck, as the thumb is often easier to use than the mdex finger
User Scenario
Nicole has been an executive assistant now for over 20 years Over the years, due to extended periods of keyboard and mouse usage, she has repetitive stram mjury that causes great discomfort to her She now uses voice recognition m place of most of her typmg Her nght hand has been more affected because she uses the keyboard and the mouse with her right hand Recently foUowmg the advice of her therapist, she has switched the mouse to her lefl hand, and the button swap feature has made the change a breeze
Example - Makmg it Easier to Drag and Drop using mv Mouse Problem
Users with restncted limb/hand movement and hand tremors often find it very hard to do a lot of activities with the mouse Drag and drop is a relatively complex activity that can be qute painful for people with motor disabilities Conversely, if the drag and drop rectangle metncs are too small, then the smallest mouse movements and mouse clicks could cause accidental drag operations Another aspect of the drag and drop is that the mouse button must be held down while an object is dragged This can also be hard for users with impairments m their hand/hmb
Solution
Drag sensitivity can specify how far (m terms of pixels) the mouse must move with the button held down before the system recognizes that an object is bemg dragged Decreasmg this value can help in increasmg drag sensitivity so that dragging will be easier Increasmg this value prevents accidental draggmg when objects are cbcked Providing a UI for users to customize this setting could greatly enhance their computing expenence Draggmg an object requires that the mouse button to be held down Smce this is a problem for some users, the 'click-lock' feature can come in very handy With this feature on, the user can begm a drag operation and, withm a user-specified time, the mouse 'locks' itself mto a drag operation Clickmg the mouse button agam releases the lock and drops the object This can prevent the mouse button from bemg held down dunng draggmg
Specific metncs that can be ased to address this issue
SPI_SETDRAGHEIGHT SPI_SETDRAGWIDTH SPI_SETMOUSECLICKLOCK SPI_SETMOUSECLICKLOCKTIME
User Scenario
Rachel is a graphics designer Her work is very mouse-mtense and, recently, she's been havmg some pam m her fingers The pam mtensifies if she keeps cbckmg the mouse buttons too rapidly or even holds the mouse button down for relatively long penods of time Recently, she has used the disclosed technology to configure her personal settings The disclosed technology mtelligently first asked her questions and deduced that she had some trouble using her fingers too mtensively and then made it easier for her to drag and drop objects This has reduced the stress on her fingers and mcreased her productivity
Example - Makmg it Easier to Switch between Wmdows Problem
To switch between wmdows, users often need to click on a wmdow to bnng it to the foreground and thus make it the active wmdow Users with restricted lunb/hand movement or those using external assistive technology devices to control the mouse often find it relatively hard to do this
Solution
Providing users with a way to activate and switch between wmdows by just movmg the mouse over the wmdows can make it easier for such users to perform such operation
Specific metrics that can be used to address this issue
SPI_SETACTIVEWINDOWTRACKING
SPI_SETACTIVEWNDTRKZORDER
SPI_SETACTIVEWNDTRKTIMEOUT
User Scenano
Randy is the department head m a software firm A few years ago, he had an auto accident that resulted m him becommg a quadnplegic He uses a sip-and-pufT device to navigate the mouse pointer across the desktop Randy has enabled the 'Make It easier to switch between wmdows' option Now he just has to move the mouse pomter over the right wmdow and it automatically comes to the foreground and gets activated This has greatly enhanced his user expenence and is less demanding to Randy
Example - Miscellaneous Mouse Settings
A SPI_SETWHEELSCROLLLINES setting can determine the number of Imes of text to scroll when the mouse wheel is turned
A SEELINE demo can add a honzontal Ime to the tail of the mouse Such a
feature can help users to read text more easily
Example 18 - Exemplary Display Settings Example - Makme it Easier to See Objects on the Screen by Adiustme Color and Contrast Problem
Users with visual impairments (e g, low vision, and color blmdness) often find It hard to easily make out items on the desktop This could be due to vanous reasons such as insufficient contrast between foreground and background elements, using sub-optimal color combinations such as red-green that affect users with color blindness, and using wmdow elements and text that are too small
Solution:
Providing users with a simple way to control colors and mcrease contrast, and providing a way to just sw^ problem colors could go a very long way m addressing these problems
Specific metrics that can be used to address this issue
SPI_SETHIGHCONTRAST SPI_SETCONTRAST SPI_SETREPLACECOLOR SPI_SETHUEANDSATURATION
The SPI_SETHIGHCONTRAST flag can perform many functions, some of which are as follows
• Change the foreground and background colors
• Increase the font size
• Increase the size of certain controls (e g, scroll bars and icons)
• Remove any background images
Example - Making it Easier to see Obiects on the Screen by Removmp Overlapped
Content
Problem
Users with low vision often find it hard to easily make out items on the desktop The cause for this problem can be a wide array of features that exist m the operating system today, such as background images, textured backgroxmds, water marks on documents, alpha-blending and transparency, etc All of these thmgs can reduce the contrast between the foreground and the background, thereby makmg it hard for some users to see objects on the screen
Solution:
A smgle global flag that can be used to umversally turn on or off unimportant overlapped content m the system could help users with low vision Documents that have watermarks that convey unportant information such as "Confidential" could also be tiuned off, as this does not need to be the only place or means to convey such mformation For example, headers and footers in documents may be used to convey such important information
Specific metrics that can be used to address this issue
SPI_SETDisABLEOVERLAPPEDCONTENT SPI_SETDisABLEUNWANTEDBACKGROUNDIMAGES
User Scenano:
Brad has been visually unpaired smce the age of 10, due to glaucoma, but that has not prevented him fi^ora becommg a computer programmer Brad can view and mteract with the computer with the help of his screen magmfier, but he also requires high contrast to be able to efficiently work on the computer While he appreciates the technological advance of the disclosed technology and the new look and feel, nch features such as overl^ped content, transparency and background images, and textured
backgrounds can serve as a hmdrance to Brad Brad is very impressed with the disclosed technology, however, because it can provide great customizability to turn off all features that hmder him and provide the high contrast that he desires For example, he has made use of the "Disable Overlapped Contents" flag He has enabled this flag and has thus simpbfied his UI There is no more overlap of content The background does not have any more images The transparencies are turned ofl* Now the UI on his computer is simple and provides the nght amount of contrast for him to work effectively Brad thinks the disclosed technology is cool because it provides him a way to turn off all the "cool" features
Example - Makmg it Easier to see Obiects on the Screen by Removing Gradients Problem
Users with low vision often find it hard to easily make out items on the desktop The presence of gradients can reduce contrast between the foreground and the background, thereby affecting readability and makmg it hard for these users to see the objects on the screen clearly Gradients may be considered to be part of overl^ped content The presence of unwanted background images and gradients can reduce the contrast between the foreground and background, thereby reducmg readability Also, gradients are often dependent on themes while background images can be turned off by the apphcation
Solution*
A smgle global flag that can be used to umversally turn on or off all gradients m the system can help users with low vision
Specific metncs that can be used to address this issue
SPI_SETDisABLEGRADIENTS SPI SETGRADIENTCAPTIONS
User Scenano:
Taylor is 13 years old He has very low vision He needs very high contrast between foreground and background images to distinguish thmgs on the computer He Ukes the nch and poUshed features of the disclosed technology, but gradients in buttons, captions, and other places m the system make it really hard for him to read the text, despite using a screen magmfier Thus, he has turned on the "Disable Gradient" flag This setting has smartly turned off all gradients m the system and the plain background helps him see and read the text better He has stored all of his settings m his PUP device and he uses the setting m school and also the pubhc hbrary
Example - Making it Easier to Distm|zuish Focused Elements Problem
Users with low vision often find it hard to distinguish wmdow elements that have the keyboard focus The focus rectangle is generally a single pixel rectangle and that can make it hard to see The width of the text msertion pomt is also related to this Smce It is generally very thm, it is hard for users with low vision to easily see this
Solution:
Providing a way for users to mcrease border thickness can enable them to see focused elements more easily Settings such as the SPI_SETFOCUSBORDERHEIGHT setting can be used to set the height of the top and bottom edges of the focus rectangle Settings such as die SPI_SETFOCUSBORDERWIDTH setting can be used to set the width of the left and nght edges of the focus rectangle Settings such as the SPI_SETCARETWIDTH setting can be used to configure a desu^ width of the caret Another way to make it easier to distinguish focused elements can be to ensure that the nght color combmation is used m Shell themes to separate elements with keyboard focus fiom other elements m the wmdow
Specific metrics that can be used to address this issue:
SPI_SETFOCUSBORDERHEIGHT
SPI_SETFOCUSBORDERWIDTH SPI_SETCARETWIDTH
User Scenano:
Marge is m the sales department of a pharmaceutical company Part of her job is to enter sales details of a large vanety of drugs in her spreadsheet She needs to be sure that the nght information is always bemg entered against the nght drug Due to her low vision, she often has trouble finding the focused element She has used the disclosed technology to make it easier for her to distingmsh focused elements Now the focused elements are surrounded by a thicker focus rectangle and a wider caret, thereby makmg it easier for Marge to accomphsh her job
Example - Makmg it Easier to Read Text fe g. Fonts) on the Computer Problem
Users with low vision often find it hard to distinguish certain text and fonts m the computer
SolutioD.
Providing users with the ability to customize and specify font and font attnbutes that is easy for them to read is very important Once a user selects a particular font and style, this setting can be applied throughout the system to replace all of the fonts in the system A user can use the disclosed technology to specify an appropnate font and its attnbutes The disclosed technology thus automatically sets the font and attnbutes to several UI elements such as icon fonts, cation fonts, menu fonts, and status and message fonts using metncs such as SPI_SETICONTITLELOGFONT and SPI_SETNONCIENTMETRICS The disclosed technology can provide the necessary support to modify the font attnbutes of apphcations using flow layout
Specific metncs that can be used to address this issue:
SPI_SETFONTATTRIBUTES
User Scenario:
Scott is a designer in a pnnting company He designs a great vanety of things from visiting cards to letter heads to mvitations, but Scott has low vision He often finds it easy to read some fonts, but other fonts give him a hard time - especially the scnpt fonts Until using the disclosed technology, he bad to rely on his magmfier to enlarge contents to a really large size Now, he has customized the Font Attributes to change the vanous font attributes (e g, font type, weight, and itahcs) of all the text that would appear across the operating system He promptly changed the scnpt fonts to Anal with standard weight which gives hun better reading speed Now his what-you-see-is-what-you-get (WYSIWYG) ^plications respect the new font styles flag and display his fonts m Anal, thereby makmg it much easier for him to read
Example - Makmp Thmes on the Screen Bigger Problem
Users with low vision and users with restncted hand/limb movements often find It hard to see and use controls that are too small In many mstances m the desktop, there are small fonts that cannot be easily made bigger, and tins can give such users a bad user expenence
Solution.
Providing a way for users to make such thmgs bigger on the screen could enable them to more easily see and use controls that are small By scalmg the desktop or individual wmdows, the issue of layout can be resolved This can enable fonts to be made large enough to suit the needs of the customers
Specific metrics tliat can be used to address tbis issue*
SPI SETACTIVESCALEFACTOR
User Scenario:
Jon has been in the software field for over 2S years Over the years his eye sight has steadily detenorated Though he wears glasses, he would still like thmgs to be a little bigger He uses extra large fonts in his system, but there are places where the settings are not respected Sometimes the layout is affected because he needs to use larger fonts Usmg the disclosed technology, he has enabled the Active Wmdow Scale Factor flag He is now able to Imearly scale application wmdows to bigger sizes He has customized the settings to scale the active window to be 150% of the onginal size Now his active wmdow is always as big as he bkes it When he switches to another ^phcation/wmdow, the previous wmdow resumes its onginal size and the new active wmdow gets scaled up Jon hkes this, because it avoids the clutter of havmg all his wmdows magmfied and it is now very easy for him to say which window has the keyboard focus
Example - Makmg it Easier to mteract with Controls that are Too Small Problem
Users with low vision and users with restncted hand/limb movements often find It hard to use small controls Using controls m ^plications such as Microsoft Wmdows Media Player skins, or even resizmg the windows, are hard because of the very small size of the controls
Solution:
One solution to address this problem is to provide a way to understand the
minimum size the user can mteract with and then try to make sure all the controls that
are drawn are at least as big as the minimum size that is convement to the user Now
the user does not have to specify or change the sizes m multiple places and can enjoy a
consistent user expenence Using the disclosed technology, users can be provided with
a UI that allows them to click on a bulls-eye-like control Based on the users' ability to
chck on small area and their accuracy, the mmimum area that they can mteract with
(e g, SPI_SETMINIMUMHITREGION) can be calculated The disclosed technology
can then automatically set muumum values to non-client elements using a flag such as the SPI_SETNONCLIENTMETRICS, SPI_SETBORDERWIDTH flag Control developers can mom tor this flag, which can automatically change the sizes of controls that do not affect the layout of the appbcation Apphcation developers can momtor this flag and ensure that the flag is respected and that all controls are resized to be at least the mimmum size usable by the user This setting can also affect the icon sizes and the mouse cursor size
Specific metrics that can be ased to address this issae:
SPI_SETMINIMUMHITREGION SPI_SETBORDER SPI_SETNONCLIENTMETRICS SPI_SETICONMETRICS
User Scenario.
Henry is a sip-and-puff device user Because of his paralysis, he is unable to use his hands He controls the mouse cursor by movmg his head Wmdow elements that
T
are too small to use pose a big challenge to Henry He needs to really focus to be able to resize a wmdow or mampulate small controls He has used the disclosed technology to specify the mimmum size necessary for a control to be so that he can comfortably use it Now most of his ^plications have resized their controls to be big enough for him to use Wmdow borders are wider, the buttons on the caption bar are bigger, and even the controls m his favonte Microsoft Windows Media Player skm are large enough for him to work with And the best part m his eyes was that all he had to do was click on a bulls-eye control as close to the middle as possible
Example 19- Exemplary Audio- Video Settings
Example - Providing a Visual Alternate to Sound Problem
There are many instances where a sound is played to indicate that important things are happenmg m the computer Users who are hard of hearmg or deaf often cannot hear these sounds and need alternative visual ways for the sound to be mdicated
Solution.
When a sound is played, providing a visual mdication such as flashmg the caption bar of the active wmdow, the active wmdow itself, or the whole desktop can enable users with heanng difficulties to know that somethmg unpoitant has happened in their computer
Specific metncs that can be used to address this issue:
SPI_SETSOUNDSENTRY
For application-specific changes, some alerts such as a dialog poppmg up, IRC wmdow updates, or a beepmg/flashmg wmdow title bar can be implemented For notifications (e g, friends loggmg on to mstant messaging, emails, etc), a Notification Manager can be implemented For spoken narration (e g, a video clip or an mtroduction to an i^iphcation the first time it's opened), editions can be implemented For music (e g, WMAs and 3D game ambient sounds), visuals may not be needed
User Scenario:
Jessie has been deaf smce buth She is currently a test engmeer m a software company These days all kmds of apphcations use sound to prompt users of somethmg important happemng on the computer Usmg the disclosed technology, she has turned on the SPI_SETSHOWSOUNDNOTIFICATIONS flag and has configured the caption bar of her active wmdow to flash whenever a sound is played She thus uses that to monitor all audio prompts on her machme
Example - Providing Audio Descnption to Video Problem
Users who are visually impaired often cannot see video and need alternative ways to get that information
Solution.
While it is possible for the visually impaired to hear audio and assunilate a lot of information, there is a lot of action gomg on m video that might not have conesponding audio In such cases, a specific audio descnption of what is happemng m the video could help such users a great deal m understanding the overall message of the video better
Specific metrics that can be used to address tbis issue' SPI_SETAUDIODESCRIPTION
User Scenario:
Bianca is a teacher who has very low vision She uses a lot of multimedia in her class to teach her students A lot of content came with closed captionmg and audio descnption built m Bianca always has her audio descnptions turned on so that she has a full understanding of what is happenmg and so that she can answer any questions her students ask Bianca has come to rely upon audio descnption as it provides her with an alternative without which she would not be able to do her job
Example - Providing Closed Captiomng to Audio Problem
Users who are hard of heanng or deaf often cannot hear sounds and audio m streammg media and need alternative ways to get that information
Solution.
Closed cqitiomng can be one solution for users who have sight but no heanng (or are hard of heanng) to get mformation from and understand the content of streammg audio or video When a video and/or audio is played, closed captions can provide a guide as to what is bemg said m the media
Specific metncs that can be used to address this issue: SPI_SETSHOWSOUNDS
User Scenano.
Kramer worics m a manufactunng plant He has lost 80% of his heanng since an accident 8 months ago A large part of his job is to see vanous traimng sessions from other plants and partners and to document the process Smce his accident, Kramer relies 100% on closed captiomng to get the mformation from the traming videos The closed c£^tions provide the best possible alternative for Kramer without which he would not be able to do his job
Example 20 - Exemplary Timing Settings Example - Makmg it Easy to Control the Rate of UI Flashmg Problem
Penodic automatic refreshmg, flashmg, blinlang, flickenng, and movmg of content can all be causes for epileptic seizures Users with photosensitive epilepsy need a way to control flashing so that the rate at which the UI flashes does not adversely affect them
Solution*
Providing a flag that globally controls the rate of flashmg UI m the system can help certam users to avoid an unpleasant expenence Settings such as SetCaretBlinkTimeO and GetCaretBlinkTimeO can be used to set the rate of caret flash Alternatively, a global flag such as SPI_SETUIFLASHRATE can be used to set the
ideal rate of flashmg of all UI m the system, mcluding the caret This could provide users with a smgle consistent user expenence across the OS
Specific metncs that can be used to address this issue.
SPI_SETUIFLASHRATE
User Scenano:
Jordon is a teacher with photosensitive epilepsy Automatic refreshmg, flashmg, bhnkmg, etc, at a particular rate can cause senous seizures The vanous educational software that Jordon uses m school has a vanety of animations with UI flashmg at vanous speeds Usmg the disclosed technology, he is able to set the UI flash rate of his computer to a value of 0 5 tunes a second This can alter the flash/refresh rate of ^plications runmng m his computer to 0 5 times a second Such consistency across the OS can prevent any adverse expenence he might suffer due to seizures
Example - Malane it Easy to Control the Duration of UI Notifications Probiem
There are vanous kmds of notifications that can pop up in the system Users with cogmtive impairments such as ADHD and Dyslexia may need a longer time to read text m the notifications
Solution
Providing a flag that globally controls the duration of the notification 'toasts' can give certam users more control and better enable them to read the content of the notification pop-ups Using a global flag such as SPI_SETMESSAGEDURATION, users can set the duration that is most comfortable to their personal needs This flag can be used by all applications across the OS to provide an excellent user expenence to the end-user with these cogmtive disorders
Specific metrics that can be used to address this issue*
SPI_SETMESSAGEDURATION
User Scenario.
Sandra is a sophomore at college She is dyslexic Over the years she has improved her leanung and reading skills, but she still takes a little longer to read than most people She uses her computer for all ofher educational and social activities One of her biggest problems was that notification toasts disappeared faster than she could read them She could hover the mouse over the toast to make them Imger longer, but it was easier to read them without havmg to move the mouse over the toast each time Usmg the disclosed technology, she has configured her system to have notification durations at the maximum allowable setting (e g, 16 seconds) This has thus provided her with ample time to read the text m a notification
Example 21 - Exemplary UI Effects Settings
Example - Making it Easy to Turn ON/OFF Animations Problem
Penodic automatic refi^cshmg, flashing, blinkmg, flickenng, and moving of content (e g, animations and other transformations) can all be causes for epileptic seizures Users with photosensitive epilepsy may need a way to turn off all such flashmg and animation
Solution*
A smgle global flag that can be used to umversally turn on or off all animations, transformations, and other transitions m the system can help users with photosensitive epilepsy Based on a user's choice to turn on or off animations, a flag such as the SPI_SETDisABLEAhfIMATIONS flag can set a vanety of several other flags to on or off, thereby providing the user with a smgle consistent user experience across the OS
Specific metrics that can be used to address this issue:
SPI_SETDisABLEANIMATIONS
SPI_SETUIEFFECTS
SPI_SETCOMBOBOXANIMATION
SPI_SETLisTBOXSMOOTHSCROLLING
SPI_SETSELECTIONFADE
SPI_SETTOOLTIPANIMATION
SPI_SETTOOLTIPFADE
SPI SETAimtATIONS
User Scenario
Frank is a supervisor m a large department store Frank has photosensitive epilepsy Periodic automatic refreshing, flashing, blmkmg, flickering, and movmg of content are all causes for seizure for Frank The sales apphcation that he uses to enter customer sales transactions has been specially modified so that its caret does not blink at all, but there are other applications and animations that can affect Frank M some cases, he can not even use certain applications Usmg the disclosed technology, he has enabled the 'Disable Ammations' flag m his computer Through the use of this flag, he is able to stop all flashmg and automatic refreshing He is also able to turn off all animations on his machme Smce the enablmg of this flag, all of the applications m his system respect the new setting Now Frank is able to fully use his system without it adversely affecting him anymore
Example 22 - Exemplary Settings That Help Third-Party A Ts
Example - Determimng what Assistive Technology is Runnmg Problem
Applications may need a way to determme what ATs are runnmg on the system
Solution:
Some apphcations may change their default behavior and turn on special accessibility features or an alternative behavior when ATs are nmmng Based on what
AT is running on the system at that tune, an apphcabon can provide certain special services to help a user in need of some kmd of accommodation
Specific metnes that can be used to address this issue.
SPI_SETASSisTIVETECHNOLOGY SPI_SETSCREENREADER
Usmg the above settings, bits such as the foUowmg can be turned on or off
• Screen Reader
• Screen Magmfication
• Input Emulation
• User Assist
User Scenario
Apex Systems has just released its new version of ApexEdit 2 0 This product is an editing tool that handles anythmg from txt files to doc files The programmers at Apex have mtroduced a new feature that outputs text to an output device When a flag such as the SPI_SETASSisTIVETECHNOLOGY flag is set with the Screen Reader bit on, the application automatically converts all of the content to text and directs it to an output device ApexEdit 2 0 supports many vector-based fonts, and this feature easily filters the raw text content, thereby mcreasmg performance and enhancmg the expenence for a user
Example - Makmg it Easy to Turn off OfF-Screen Buffenng Problem
Currently, there is no simple way to tiun off off-screen buffenng
Solution:
When off-screen buffenng is turned on, an AT may need to do many extra operations, which greatly reduces performance In cases where this is not required or when the application m play provides all the necessary information, havmg off-screen
buffenng may not provide any additional value and, m fact, only serve to hinder a user's expenence
Specific metncs that can be used to address this issue.
SPI_SETDisABLEOFFSCREENBUFFERING
Example 23 - Exemplary Mtscellaneous Settings Example - Tummg off all Accessibihrv options Problem
Users who do not need any accessibility settings, but accidentally turn them on, may need a way to turn them off
Solution
Providing a simple way to turn offaccessibihty settings can help users who don't need such settings, thereby enhancmg theu- user expenence
Specific metncs that can be used to address this issue*
SPI_SETDisABLEACCESSIBILrrYOPTIONS
User Scenario
Tom is an avid gamer who is annoyed when the FilterKeys setting gets triggered
automatically He can go mto the FilterKeys settings to turn it off, but he'd much rather have an option nght on the FilterKeys dialog to turn off such accessibility settings Smce he started using the disclosed technology, he has not had this problem Dunng his imtial system customization, he had an option to turn off all accessibility options Now Tom's efforts to get high-scores m his games are not hindered by needless accessibility dialogs
Example 24 - Exemplary Enumeration of Settings
The followmg represent an enumeration of exemplary parameters for keyboard
settings
SPI_GETFILTERKEYS SPI_SETFILTERKEYS SPI_GETSTICKYKEyS SPI SETSTICKYKEYS SPfGETTCXKjLEKEYS SPI SETTOGGLEKEYS SPfGETMOUSEKEYS SPI_SETMOUSEKEYS
The followmg represent an enumeration of exemplary parameters for mouse
settings
SPI_GETMOUSECLICKLOCK
SPI_SETMOUSECLICKLOCK
SPI GETMOUSECLICKLOCKTIME
SPfSETMOUSECLICKLOCKTIME
SPI GETMOUSESONAR
SPfSETMOUSESONAR
SPI_GETMOUSEVANisH
SPI_SETMOUSEVANisH
SPI_GETMOUSEFE.TER
SPI_SETMOUSEFILTER
The followmg represent an enumeration of exemplary parameters for
admmistrative settings
SPI_GETACCESSTIMEOUT SPI_SETACCESSTIMEOUT
The followmg represent an enumeration of exemplary parameters for display
settings
SPI_GETHIGHCONTRAST SPI_SETHIGHCONTRAST SPI_GETFOCUSBORDERHEIGHT SPI SETFOCUSBORDERHEIGHT SPfGETFOCUSBORDERWIDTH
SPI_SETFOCUSBORDERWIDTH
SPI_GETCONTRAST
SPI_SETCONTRAST
SPI_GETREPLACECOLOR
SPI_SETREPLACECOLOR
SPI_GETHUEANDSATURATION
SPI_SETHUEANDSATURATION
SPI_GETMINIMUMHITREGION
SPLSETMINMUMHrrREGION
SPI_GETACTIVESCALEFACTOR
SPI_SETACTIVESCALEFACTOR
SPI_GETFONTATTRIBUTES
SPI_SETFONTATTRIBUTES
SPI_GETDisABLEANIMATIONS
SPI_SETDisABLEANIMATIONS
SPI_GETDisABLEGRADIENTS
SPI_SETDisABLEGRADIEhfTS
SPI_GETDisABLEOVERLAPPEDCONTENT
SPI_SETDisABLEOVERLAPPEDCONTENT
The followmg represent an enumeration of exemplary parameters for AT
settings
SPI_GETSCREENREADER ~
SPI_SETSCREENREADER
SPI_GETSERIALKEYS
SPI_SETSERIALKEYS
SPI_GETASSisTIVETECHNOLOGY
SPI_SETASSisTIVETECHNOLOGY
The following represent an enumeration of exemplary parameters for audio
settings
SPI_GETSHOWSOUNDS
SPI_SETSHOWSOUNDS
SPI_GETSOUNDSENTRY
SPI_SETSOUNDSENTRY
SPI_GETCAPTIONS
SPI_SETCAPTIONS
SPI_GETAUDIODESCRIPnONS
SPI_SETAUDIODESCRIPTIONS
SPI_GETSOUNDNOTIFICATIONS
SPI_SETSOUNDNOTIFICATIONS
The following represent an enumeration of exemplary parameters for icon
settings
SPI_GETICONMETRICS
SPI_SETICONMETRICS
SPI_GETICONTITLEWRAP
SPIJCONHORIZONTALSPACING
SPIJCONfVERTICALSPACING
SPI_GETICONTITLELOGFONT
SPI_SETIC0NS
SPr_SETICONTITLELOGFONT
SPLSETICONTITLEWRAP
The followmg represent an enumeration of exemplary parameters for mput
settings
SPI_GETBEEP
SPI_SETBEEP
SPI_GETBLOCKSENDINPUTREQUESTS
SPI_SETBLOCKSENDINPUTREQUESTS
SPI_GETDEFAULTINPUTLANG
SPI_SETDEFAULTINPUTLANG
SPI_GETKEYBOARDCUES
SPI_SETKEYBOARDCUES
SPI_GETKEYBOARDDELAY
SPI_SETKEYBOARDDELAY
SPI_GETKEYBOARDPREF
SPI_SETKEYBOARDPREF
SPI_GETKEYBOARDSPEED
SPI_SETKEYBOARDSPEED
SPI_GETMOUSE
SPI_SETMOUSE
SPI_GETMOUSEOVERHEIGHT
SPI_SETMOUSEOVERHEIGHT
SPI_GETMOUSEOVERTIME
SPI_SETMOUSEOVERTIME
SPI_GETMOUSEOVERWIDTH
SPI_SETMOUSEOVERWIDTH
SPI_GETMOUSESPEED
SPI_SETMOUSESPEED
SPI_GETMOUSETRAILS
SPI_SETMOUSETRAILS
SPI_GETSNAPTODEFBUTTON
SPI_SETSNAPTODEFBUTTON
SPI_GETWHEELSCROLLLINES
SPI_SETWHEELSCROLLLINES
SPI_SETDOUBLECLICKTIME
SPI_SETDOUBLECLKHEIGHT
SPI_SETDOUBLECLKWIDTH
SPI_SETLANGTOGGLE
SPI_SETMOUSEBUTTONSWAP
The followmg represent an enumeration of exemplary parameters for menu
settings
SPI_GETMENUDROPALIGNMENT
SPI_SETMEhfUDROPALIGNMENT
SPI_GETMENUSHOWDELAY
SPI_SETMENUSHOWDELAY
SPI_GETMENUFADE
SPI_SETMENUFADE
The followmg represent an enumeration of exemplary parameters for UI effects
settings
SPI_GETCOMBOBOXANIMATION
SP1_SETC0MB0B0XANIMATI0N
SPI_GETCURSORSHADOW
SPI_SETCURSORSHADOW
SPI_GETGRADIENTCAPTIONS
SPI_SETGRADIENTCAPTIONS
SPI_GETHOTTRACKING
SPI_SETHOTTRACKING
SPI_GETLisTBOXSMOOTHSCROLLING
SPI_SETLisTBOXSMOOTHSCROLLING
SPI_GETMENUANIMATION
SPI_SETMENUANIMATION
SPI_GETMENUUNDERLINES
SPI_SETMENUUNDERLINES
SPI_GETSELECTIONFADE
SPI_SETSELECTIONFADE
SPI_GETTOOLTIPANIMATION
SPI_SETTOOLTIPANIMATION
SPI_GETTOOLTIPFADE
SPI_SETTOOLTIPFADE
SPI_GETUIEFFECTS SPI_SETUIEFFECTS
The following represent an enumeration of exemplary parameters for wmdow
settings
SPI_GETACTIVEWINDOWTRACKING SPI_SETACTIVEWINDOWTRACKING SPI_GETACTrVEWNDTRKZORDER SPI_SETACTIVEWNDTRKZORDER SPI_GETACnVEWNDTOKTIMEOUT SPI_SETACTIVEWNDTRKTIMEOUT SPI_GETANIMATION SPI_SETAN1MATI0N SPI_GETBORDER SPI_SETBORDER SPI_GETCARETWIDTH SPI_SETCARETWIDTH SPI_GETORAGFULLWINDOWS SPI_SETDRAGFULLWINDOWS SPI_GETFOREGROUNDFLASHCOUNT SPI_SETFOREGROUNDFLASHCOUNT - SPI_GETFOREGROUNDLOCKTIMEOUT SPI_SETFOREGROUNDLOCKTIMEOUT SPI_GETMIN1MIZEDMETRICS SPI_SETMINIMIZEDMETRICS SPI_GETNONCLffiNTMETRICS SPI_SETNONCLffiNTMETRlCS SPI_GETSHOWIMEUI SPI_SETSH0WIMEU1 SPI_SETDRAGHEIGHT SPI_SETDRAGWIDTH SPI_GETMINIMUMHITREGION SPI_SETMINIMUMHITREGION
Example 25 - Exemplary Computing Environment
FIG 5 and the followmg discussion are mtended to provide a brief, general
descnption of an exemplary computing environment m which the disclosed technology
may be implemented Although not required, the disclosed technology will be
descnbed m the general context of computer-executable instructions, such as program
modules, being executed by a personal computer (PC) Generally, program modules
mclude routmes, programs, objects, components, data structures, etc that perform particular tasks or implement particular abstract data types Moreover, the disclosed technology may be implemented with other computer system configurations, mcluding hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electromcs, network PCs, mmicomputers, mainframe computers, and the like The disclosed technology may also be practiced m distributed computing environments where tasks are performed by remote processmg devices that are hnked through a commumcations network In a distributed computing environment, program modules may be located m both local and remote memory storage devices
FIG 5 shows an exemplary system for implementing the disclosed technology that mcludes a general purpose computing device in the form of a conventional PC 500, which mcludes a processmg uiut 502, a system memory 504, and a system bus 506 that couples vanous system components including the system memory 504 to the processmg imit 502 The system bus 506 may be any of several types of bus structiu-es including a memory bus or memory controller, a penpheral bus, and a local bus using any of a vanety of bus architectures The system memory 504 mcludes read only memory (ROM) 508 and random access memory (RAM) 510 A basic mput/output system (BIOS) 512, containmg the basic routmes that help with the transfer of information between elements withm the PC 500, is stored in ROM 508
Tlie PC 500 further includes a hard disk drive 514 for reading from and wnting to a hard disk (not shown), a magnetic disk dnve 516 for reading from or wnting to a removable magnetic disk 517, and an optical disk dnve 518 for reading from or wnting to a removable optical disk 519 (such as a CD-ROM or other optical media) The hard disk dnve 514, magnetic disk dnve 516, and optical disk dnve 518 are connected to the system bus 506 by a hard disk dnve mterface 520, a magnetic disk dnve mterface 522, and an optical dnve mterface 524, respectively The dnves and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules, and other data for the PC 500 Other types of computer-readable media which can store data that is accessible by a PC, such as
magnetic cassettes, flash memory cards, digital video disks, CDs, DVDs, RAMs, ROMs, and the like, may also be used m the exemplary operating envu-onment
A number of program modules may be stored on the hard disk, magnetic disk 517, optical disk 519, ROM 508, or RAM 510, including an operating system 530, one or more application programs 532, other program modules 534, and program data 536 A user may enter commands and information mto the PC 500 through mput devices such as a keyboard 540 and pomting device 542 (such as a mouse) Other input devices (not shown) may mclude a digital camera, microphone, joystick, game pad, satellite dish, scanner, or the like These and other mput devices are often connected to the processmg umt 502 through a serial port mterface 544 that is coupled to the system bus 506, but may be connected by other mterfaces such as a parallel port, game port, or umversal serial bus (USB) A momtor 546 or other type of display device is also connected to the system bus 506 via an mterface, such as a video adapter 548 Other penpheral output devices, such as speakers and prmters (not shown), may be mcluded
The PC 500 may operate m a networked envu-onment using logical connections to one or more remote computers, such as a remote computer 550 The remote computer 550 may be another PC, a server, a router, a networic PC, or a peer device or other common network node, and typically mcludes many or all of the elements descnbed above relative to the PC 500, although only a memory storage device 552 has been illustrated m FIG 5 The logical connections depicted m FIG 5 mclude a local area network (LAN) 554 and a wide area network (WAN) 556 Such networkmg environments are commonplace m offices, enterpnse-wide computer networks, mtranets, and the Internet
When used m a LAN networkmg environment, the PC 500 is connected to the
LAN 554 through a network mterface 558 When used m a WAN networicmg
envmjnment, the PC 500 typically mcludes a modem 560 or other means for
estabhshing commumcations over the WAN 556, such as the Internet The modem
560, which may be mtemal or external, is connected to the system bus 506 via the serial
port mterface 544 In a networked environment, program modules depicted relative to
the personal computer 500, or portions thereof, may be stored m the remote memory
storage device The network connections shown are exemplary, and other means of estabbshmg a coimnumcations link between the computers may be used
Alternatives
The technologies from any example can be combined with the technologies described m any one or more of the other examples In view of the many possible embodiments to which the pnnciples of the mvention may be applied, it should be recognized that the illustrated embodiments are examples of the mvention and should not be taken as a limitation on the scope of the mvention Rather, the scope of the mvention mcludes what is covered by the followmg claims We therefore claim as our mvention all that comes withm the scope and spuit of these claims.
We claim:
1. A method for personalizing user accessibility options, comprising:
monitoring interaction of a computer user with at least one device, wherein the
electronic device is electronically coupled with a computer system;
inferring accessibility information about a computer user by way of the monitoring; and
configuring at least one.accessibility setting within the computer system based on the accessibility information;
2. One or more computer-readable media having computer-executable instructions for performing the method of claim 1.
3. The method of claim 1, wherein configuring the at least one accessibiUty setting comprises adjusting visual settings:
4. The method of claim 1, wherein configuring the at least one accessibiUty setting comprises adjusting audio settings.
5. The method of claim 1, wherein configuring the at least one accessibility setting comprises adjusting input settings.
6. The method of claim 1, wherein configuring the at least one accessibility setting comprises adjusting cognitive settings.
7. The method of claim 3, wherein adjusting visual settings comprises changing at least one setting from the group consisting of resolution, color, font size, font weight, cursor size, ciu-sor blink rate, animation settings, transparency, and alarm notifications.
8. The method of claim 4, wherein adjusting audio settings comprises changing at least one setting from the group consisting of volume, sound schemes, TTS settings, cations, and text equivalents for audio notifications.
9. The method of claim 5, wherein adjusting input settings comprises changing at least one setting from the group consisting of typing assistance, specialized input devices, pointer assistance, input hints, and timeout intervals.
10. The method of claim 6, wherein adjusting cognitive settings comprises changing at least one setting from the group consisting of toolbar auto-hiding,
•J
customizable menus, replacement of UI elements, glomming, and grouping.
11. The method of claim 1, wherein the at least one accessibility setting comprises at least one system-wide setting.
12. The method of claim 1, wherein the monitoring comprises actively detecting at least one accessibility issue that arose during the interaction.
13. The method of claim 12, wherein the configuring comprises presenting to the user at least one recommendation regarding an accessibility setting that can be changed to address the at least one accessibility issue that arose during the mteraction.
14. An adaptiye computing environment, comprising:
a computer system with which a user interacts;
a monitoring service that tracks user behavior during interaction of the user with the computer system; and
a personalization wizard, wherein the personalization wizard configures accessibility settings based on information from the monitoring service.
15. The adaptive computing environment of claim 14, wherein the personalization wizard notifies the user of at least accessibility setting that can be changed based on the information from the monitoring service..
16. The adaptive computing environment of claim 14, fiirther comprising a user profile, wherein the user profile is based at least in part on the information from the monitoring service.
17. ' The adaptive computing environment of claim 16, wherein the user
profile can be modified by the computer system, modified by the user, saved to a file,
and transported inside and outside of the computer system.
18. One or more computer-readable media having encoded thereon a data
structure comprising a computer user profile, the computer user profile comprising:
a plurality of data representing at least one visual setting corresponding to a computer user; and
a plurality of data representing at least one audio setting corresponding to the computer user;
wherein at least one setting is inferred via monitoring user interaction with a computer system.
19. The one or more computer-readable media of claim 18, the computer
user profile further comprising:
a plurality of data representing at least one input setting corresponding to the computer user.
20. The one or more computer-readable media of claim 18, the computer
user profile fiirther comprising:
a plurality of data representing at least one cognitive setting corresponding to the computer user.
-
| Section | Controller | Decision Date |
|---|---|---|
| # | Name | Date |
|---|---|---|
| 1 | 2984-DEL-2005-Correspondence-220819.pdf | 2019-08-26 |
| 1 | 2984-del-2005-Form-13-(31-12-2008).pdf | 2008-12-31 |
| 2 | 2984-del-2005-Claims-(31-12-2008).pdf | 2008-12-31 |
| 2 | 2984-DEL-2005-Power of Attorney-220819.pdf | 2019-08-26 |
| 3 | 2984-DEL-2005-GPA-(16-06-2010).pdf | 2010-06-16 |
| 3 | 2984-DEL-2005-AMENDED DOCUMENTS [08-08-2019(online)].pdf | 2019-08-08 |
| 4 | 2984-DEL-2005-Correspondence-Others-(16-06-2010).pdf | 2010-06-16 |
| 4 | 2984-DEL-2005-Annexure [08-08-2019(online)].pdf | 2019-08-08 |
| 5 | 2984-DEL-2005-Form-1-(24-12-2010).pdf | 2010-12-24 |
| 5 | 2984-DEL-2005-FORM 13 [08-08-2019(online)].pdf | 2019-08-08 |
| 6 | 2984-DEL-2005-FORM 3 [08-08-2019(online)].pdf | 2019-08-08 |
| 6 | 2984-DEL-2005-Correspondence-Others-(24-12-2010).pdf | 2010-12-24 |
| 7 | 2984-DEL-2005-PETITION UNDER RULE 137 [08-08-2019(online)].pdf | 2019-08-08 |
| 7 | 2984-del-2005-GPA.pdf | 2015-01-22 |
| 8 | 2984-DEL-2005-Written submissions and relevant documents (MANDATORY) [08-08-2019(online)].pdf | 2019-08-08 |
| 8 | 2984-del-2005-Form-5.pdf | 2015-01-22 |
| 9 | 2984-del-2005-Form-3.pdf | 2015-01-22 |
| 9 | 2984-DEL-2005-HearingNoticeLetter24-07-2019.pdf | 2019-07-24 |
| 10 | 2984-DEL-2005-Correspondence to notify the Controller (Mandatory) [12-07-2019(online)].pdf | 2019-07-12 |
| 10 | 2984-del-2005-Form-2.pdf | 2015-01-22 |
| 11 | 2984-del-2005-Form-18.pdf | 2015-01-22 |
| 11 | 2984-DEL-2005_EXAMREPORT.pdf | 2016-06-30 |
| 12 | 2984-del-2005-Form-13.pdf | 2015-01-22 |
| 12 | Abstract [16-09-2015(online)].pdf | 2015-09-16 |
| 13 | 2984-del-2005-Form-1.pdf | 2015-01-22 |
| 13 | Claims [16-09-2015(online)].pdf | 2015-09-16 |
| 14 | 2984-del-2005-Drawings.pdf | 2015-01-22 |
| 14 | Correspondence [16-09-2015(online)].pdf | 2015-09-16 |
| 15 | 2984-del-2005-Description (Complete).pdf | 2015-01-22 |
| 15 | Description(Complete) [16-09-2015(online)].pdf | 2015-09-16 |
| 16 | 2984-del-2005-Correspondence Others.pdf | 2015-01-22 |
| 16 | Examination Report Reply Recieved [16-09-2015(online)].pdf | 2015-09-16 |
| 17 | OTHERS [16-09-2015(online)].pdf | 2015-09-16 |
| 17 | 2984-del-2005-Claims.pdf | 2015-01-22 |
| 18 | 2984-del-2005-Assignment.pdf | 2015-01-22 |
| 18 | Details under section 8.pdf | 2015-06-24 |
| 19 | 2984-del-2005-Abstract.pdf | 2015-01-22 |
| 19 | new covering letter.pdf | 2015-06-24 |
| 20 | MTL-GPOA - PRS.pdf | 2015-03-13 |
| 20 | new covering letter.pdf_4118.pdf | 2015-06-24 |
| 21 | FORM-6-501-600(PRS).11.pdf | 2015-03-13 |
| 21 | MS to MTL Assignment.pdf | 2015-03-13 |
| 22 | FORM-6-501-600(PRS).11.pdf | 2015-03-13 |
| 22 | MS to MTL Assignment.pdf | 2015-03-13 |
| 23 | MTL-GPOA - PRS.pdf | 2015-03-13 |
| 23 | new covering letter.pdf_4118.pdf | 2015-06-24 |
| 24 | new covering letter.pdf | 2015-06-24 |
| 24 | 2984-del-2005-Abstract.pdf | 2015-01-22 |
| 25 | 2984-del-2005-Assignment.pdf | 2015-01-22 |
| 25 | Details under section 8.pdf | 2015-06-24 |
| 26 | 2984-del-2005-Claims.pdf | 2015-01-22 |
| 26 | OTHERS [16-09-2015(online)].pdf | 2015-09-16 |
| 27 | 2984-del-2005-Correspondence Others.pdf | 2015-01-22 |
| 27 | Examination Report Reply Recieved [16-09-2015(online)].pdf | 2015-09-16 |
| 28 | 2984-del-2005-Description (Complete).pdf | 2015-01-22 |
| 28 | Description(Complete) [16-09-2015(online)].pdf | 2015-09-16 |
| 29 | 2984-del-2005-Drawings.pdf | 2015-01-22 |
| 29 | Correspondence [16-09-2015(online)].pdf | 2015-09-16 |
| 30 | 2984-del-2005-Form-1.pdf | 2015-01-22 |
| 30 | Claims [16-09-2015(online)].pdf | 2015-09-16 |
| 31 | 2984-del-2005-Form-13.pdf | 2015-01-22 |
| 31 | Abstract [16-09-2015(online)].pdf | 2015-09-16 |
| 32 | 2984-del-2005-Form-18.pdf | 2015-01-22 |
| 32 | 2984-DEL-2005_EXAMREPORT.pdf | 2016-06-30 |
| 33 | 2984-DEL-2005-Correspondence to notify the Controller (Mandatory) [12-07-2019(online)].pdf | 2019-07-12 |
| 33 | 2984-del-2005-Form-2.pdf | 2015-01-22 |
| 34 | 2984-del-2005-Form-3.pdf | 2015-01-22 |
| 34 | 2984-DEL-2005-HearingNoticeLetter24-07-2019.pdf | 2019-07-24 |
| 35 | 2984-del-2005-Form-5.pdf | 2015-01-22 |
| 35 | 2984-DEL-2005-Written submissions and relevant documents (MANDATORY) [08-08-2019(online)].pdf | 2019-08-08 |
| 36 | 2984-DEL-2005-PETITION UNDER RULE 137 [08-08-2019(online)].pdf | 2019-08-08 |
| 36 | 2984-del-2005-GPA.pdf | 2015-01-22 |
| 37 | 2984-DEL-2005-FORM 3 [08-08-2019(online)].pdf | 2019-08-08 |
| 37 | 2984-DEL-2005-Correspondence-Others-(24-12-2010).pdf | 2010-12-24 |
| 38 | 2984-DEL-2005-Form-1-(24-12-2010).pdf | 2010-12-24 |
| 38 | 2984-DEL-2005-FORM 13 [08-08-2019(online)].pdf | 2019-08-08 |
| 39 | 2984-DEL-2005-Correspondence-Others-(16-06-2010).pdf | 2010-06-16 |
| 39 | 2984-DEL-2005-Annexure [08-08-2019(online)].pdf | 2019-08-08 |
| 40 | 2984-DEL-2005-GPA-(16-06-2010).pdf | 2010-06-16 |
| 40 | 2984-DEL-2005-AMENDED DOCUMENTS [08-08-2019(online)].pdf | 2019-08-08 |
| 41 | 2984-DEL-2005-Power of Attorney-220819.pdf | 2019-08-26 |
| 41 | 2984-del-2005-Claims-(31-12-2008).pdf | 2008-12-31 |
| 42 | 2984-DEL-2005-Correspondence-220819.pdf | 2019-08-26 |
| 42 | 2984-del-2005-Form-13-(31-12-2008).pdf | 2008-12-31 |