Open A11y.org (The Linux Foundations' Accessibility Work Group

Generic Assertions for Manual Testing, RC3

Authors
Earl Johnson, Sun Microsystems, Inc.
Chair, Open A11y Workgroup's Keyboard Subgroup
Bill Haneman, Sun Microsystems, Inc.
Mark Novak, University of Wisconsin, Madison
Willie Walker, Sun Microsystems, Inc.
Editors
Earl Johnson, Chair, Open A11y Workgroup's Keyboard Special Interest Group
Gregory J. Rosmaita, vice-chair, Open Accessibility Workgroup at The Linux Foundation
Janina Sajka, chair Open Accessibility Workgroup at The Linux Foundation
Gunnar Schmidt, KDE Accessibility
editor emeritus: George Kraft IV, IBM
Table of Contents
Test Assertions for KAFS Table 1: Configuration and Settings
Test Assertions for KAFS Table 2: End-User Notification, Keyboard Invocation, and Mouse Emulation

This specification is copyright 2006, 2008 Open Accessibility (A11y) at The Linux Foundation. All Rights Reserved.


Introduction/Abstract

This document describes the minimum set of test assertions that must be developed to run on an implementation of the keyboard access functional specification to validate it against the Keyboard Access Functional Specification (KAFS). The actual test assertions the implementation requires will be influenced, in part, by the the user interface developed by the implementation provider. Given this, the purpose of this document is to assist the provider in determining what test assertions need to be run on the user interface(s) exposing the functionality defined in the Keyboard Access Functional Specification (KAFS).

Submitting Feedback and Reporting Errata

A list of known errors in this specification is maintained at:
http://accessibility.linux-foundation.org/a11yspecs/kbd/updates/kafs-gta-rc3-errata.html
Please report errors in this document to accessibility-rfc@a11y.org. Please report any technical problems encountered with this document or the resources to which it links, please contact webmaster@a11y.org.

About This Document

The normative version of Generic Assertions for Manual Testing, RC3 (KAFS GTA) is the XHTML Strict 1.0 version, located at:

http://accessibility.linux-foundation.org/a11yspecs/kbd/kafs-gta-rc3.html

All other versions (and any future translations) of Keyboard Access Functional Specification, RC3 (KAFS RC3) are non-normative.



Test Assertions for KAFS Table 1: Configuration and Settings

This section and all its sub-sections are normative.

This section defines the test assertions associated with validating the configuration and setting functionality listed in KAFS Table 1. The configuration and settings for keyboard access are typically done via a configuration utility. For example, many platforms provide an AccessX client for this purpose. For each of the following items, the tester is directed to locate this tool (or its equivalent set of tools) and manipulate it as described. Unless indicated otherwise, any answer other than YES is a failure.


T1.1. StickyKeys

T1.1.1. Turn StickyKeys on/off.

  1. Turn off all keyboard access features; are they off?
  2. Locate the user interface artifact that allows the user to turn StickyKeys on or off. When you use this tool, can you turn StickyKeys on and off?
  3. Turn on one or more other keyboard access features. Does the state of all other keyboard features remain the same when StickyKeys is turned on and off?
  4. Turn off all other keyboard access features except StickyKeys; is StickyKeys on and the rest off?

T1.1.2. Press modifier key twice to lock.

  1. Locate the user interface artifact that determines if pressing a modifier key twice in a row will cause the modifier to logically lock; enable the feature. Turn StickyKeys off and then back on. Press/release the Shift key twice in a row without pressing any intermediate keys. This should logically lock the Shift modifier. Press the keys for "s" "t" "i" "c" "k" and "y" in a suitable text area (e.g., a terminal window). Did the letters appear as "STICKY"?
  2. With the Shift modifier locked as a result of the previous step, press the Shift key again. This should unlock the Shift modifier. Press the keys for "s" "t" "i" "c" "k" and "y" in a suitable text area (e.g., a terminal window). Did the letters appear as "sticky"?
  3. Locate the user interface artifact (the same as above) that determines if pressing a modifier key twice in a row will cause the modifier to logically lock; turn it off. Turn StickyKeys off and then back on. Press/release the Shift key twice in a row without pressing any intermediate keys. This should NOT logically lock the Shift modifier. Press the keys for "s" "t" "i" "c" "k" and "y" in a suitable text area (e.g., a terminal window). Did the letters appear as sticky?

T1.1.3. Turn StickyKeys off when two keys are pressed simultaneously.

  1. Locate the user interface artifact that allows the user to enable the option to automatically turn StickyKeys off when then user presses more than one key at the same time; enable this option. With StickyKeys enabled, press the Shift and the "a" key at the same time. You should either see a message detecting that two keys have been pressed at the same time, or StickyKeys should automatically turn off. Did either occur?
  2. If you received a message detecting that two keys have been pressed at the same time, accept the option to turn StickyKeys off. In a suitable text area (e.g., a terminal window), press the Shift key and then the "a" key. Did the letter appear as "a"?
  3. Using the same user interface artifact as above, disable the option to automatically turn StickyKeys off when then user presses more than one key at the same time. With StickyKeys enabled, press the Shift and the "a" key at the same time. You should not see a message nor should StickyKeys turn off. In a suitable text area (e.g., a terminal window), press the Shift key and the "a" key. Did the letter appear as "A"?

T1.1.4. Provide the ability to request an audible signal when a modifier is latched, locked, or unlocked

  1. Locate the user interface artifact to enable audible signals when a modifier is pressed. Disable this feature. With StickyKeys turned off, press the Shift key then the Control key. No audible notification should occur. Did the system remain silent?
  2. Now enable StickyKeys with the audible signal feature disabled. Press the Shift key then the Control key. No audible notification should occur. Did the system remain silent?
  3. With both StickyKeys and the audible notification feature enabled, the system should provide audible signals when the user latches a modifier, locks a modifier, and unlocks a modifier. Turn StickyKeys off and then on again to reset the modifier states. Press the Shift key, latching the modifier. Did an audible signal occur?
    1. Press the Shift key again, locking the Shift modifier. Did an audible signal occur?
    2. Press the Shift key again, unlocking the Shift modifier. Did an audible signal occur?
  4. Using the same user interface artifact as above, disable the audible signal feature. With StickyKeys enabled, press the Shift key, latching the modifier. Did the system remain silent?
    1. Press the Shift key again, locking the Shift modifier. Did the system remain silent?
    2. Press the Shift key again, unlocking the Shift modifier. Did the system remain silent?

T1.2. MouseKeys

T1.2.1. Turn MouseKeys on/off

MouseKeys is on when pressing a key that controls pointer movement causes the pointer to move.

  1. Turn off all keyboard access features; are they off?
  2. Locate the user interface artifact (or tool) that allows the user to turn MouseKeys on and off. Does MouseKeys turn on and off?
  3. Turn on one or more other keyboard access features. Does the state of all other keyboard features remain the same when MouseKeys is turned on and off?
  4. Turn off all other keyboard access features except MouseKeys; is MouseKeys on and the rest off?

T1.2.2. Delay before the acceleration that follows the initial step starts

  1. Locate the user interface artifact that allows the user to set the delay before the acceleration that follows the initial step starts. Does this user interface artifact allow the user to set the delay to at least as small as 0 milliseconds and at least as large as 1000 milliseconds?
  2. Locate the user interface artifact that allows the user to set the delay before the acceleration that follows the initial step starts. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range at most 10 milliseconds?
  3. With MouseKeys on, locate the user interface artifact that allows the user to set the pointer's delay before the acceleration starts after the initial step. Set it to the minimum setting. Does the delay before the pointer starts accelerating immediately following the initial jump match what has been set?
  4. With MouseKeys on, locate the user interface artifact that allows the user to set the pointer's delay before the acceleration starts after the initial step. Set it to the maximum setting. Does the delay before the pointer starts accelerating immediately following the initial jump match what has been set?

T1.2.3: Initial pointer velocity/repeat interval

  1. Locate the user interface artifact that allows the user to set the pointer's initial velocity after the initial step. Does this user interface artifact allow the user to set the delay to at least as small as 1 pixel per second and at least as large as 200 pixels per second?
  2. Locate the user interface artifact that allows the user to set the pointer's initial velocity after the initial step. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range at most 2 pixels per second? Note: this may be exposed as either a velocity in pixels/sec or a repeat interval between succesive pointer motions.
  3. With MouseKeys on, locate the user interface artifact that allows the user to set the pointer's initial velocity after the initial step. Set it to the minimum setting. Does the pointer move at the velocity that has been set immediately following the initial jump match what has been set?
  4. With MouseKeys on, locate the user interface artifact that allows the user to set the pointer's initial velocity after the initial step. Set it to the maximum setting. Does the pointer move at the velocity that has been set immediately following the initial jump match what has been set?

T1.2.4: Delay till the pointer reaches maximum speed

  1. Locate the user interface artifact that allows the user to set the delay till the pointer reaches maximum speed. Does this user interface artifact allow the user to set the delay to at least as small as 100 milliseconds and at least as large as 10,000 milliseconds?
  2. Locate the user interface artifact that allows the user to set the delay till the pointer reaches maximum speed. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range 200 milliseconds or less?
  3. With MouseKeys on, locate the user interface artifact that allows the user to set the delay till the pointer reaches maximum speed. Set it to the minimum setting. Does the time it takes for the pointer to reach its maximum speed immediately following the initial jump match the value that has been set?
  4. With MouseKeys on, locate the user interface artifact that allows the user to set the delay till the pointer reaches maximum speed. Set it to the maximum setting. Does the time it takes for the pointer to reach its maximum speed immediately following the initial jump match the value that has been set?

T1.2.5: Maximum pointer speed, in pixels/sec

  1. Locate the user interface artifact that allows the user to set the pointer's maximum speed. Does this user interface artifact allow the user to set the maximum speed to at least as small as 1 pixel per second and at least as large as 2000 pixels per second?
  2. Locate the user interface artifact that allows the user to set the pointer's maximum speed. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range 10 pixel per second or less?
  3. With MouseKeys on, locate the user interface artifact that allows the user to set the maximum pointer speed. Set it to the minimum setting. Does the maximum speed the pointer reaches match the value that has been set?
  4. With MouseKeys on, locate the user interface artifact that allows the user to set the maximum pointer speed. Set it to the minimum setting. Does the maximum speed the pointer reaches match the value that has been set?
  5. With MouseKeys on, locate the user interface artifact that allows the user to set the maximum pointer speed. Set it to the maximum setting. Does the maximum speed the pointer reaches match the value that has been set?

T1.3. RepeatKeys

T1.3.1. Turn RepeatKeys on/off

RepeatKey changes multiple key repeat properties. The way to tell if it is On is to set a RepeatKey property so it is greater than the default (e.g. repeat delay); turn on RepeatKeys and observe how keys repeat then compare this with RepeatKeys off; RepeatKeys is on if there is a difference between the two.

  1. Turn off all keyboard access features; are they off?
  2. Turn RepeatKeys on then set the repeat rate interval to approximately one half second. Press and hold a letter key for 10 seconds. Did between three and five letters get generated as a result?
  3. Turn RepeatKeys off. Press and hold a letter key for 10 seconds. Did a significantly different number of letters get generated as a result?
  4. Turn RepeatKeys on then turn on one or more other keyboard access features. Does the state of all other keyboard features remain the same when RepeatKeys is turned on and off?
  5. With RepeatKeys still on, turn SlowKeys on, set its acceptance delay to one second, then press and hold any letter key for at least ten seconds. Does RepeatKeys' autorepeat process (i.e., both repeat delay and rate) start only after a key has been accepted?

T1.3.2. Repeat delay

  1. Locate the user interface artifact that allows the user to set the repeat delay of RepeatKeys. Can the user set the repeat delay at 0.10 seconds or less and 5.0 seconds or more?
  2. Locate the user interface artifact that allows the user to set the delay before key repeating starts. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range 0.1 second or less?
  3. Enable RepeatKeys. Set the delay before key repeating starts to the minimum setting. In a suitable text area (e.g., a terminal window), press and hold the "a" key. Did the "a" key start repeating after this value was reached?
  4. Enable RepeatKeys. Set the delay before key repeating starts to the maximum setting. In a suitable text area (e.g., a terminal window), press and hold the "a" key. Did the "a" key start repeating after this value was reached?

T1.3.3. Repeat rate

  1. Locate the user interface artifact that allows the user to set the repeat rate interval of RepeatKeys. Can the user set the repeat rate interval 0.2 characters or less (i.e. it takes 50 seconds before 1 character appears) per second and 10 characters per second or more?
  2. Locate the user interface artifact that allows the user to set the delay before key repeating starts. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range 0.3 characters per second or less?
  3. Enable RepeatKeys. Set the repeat rate interval to its minimum setting. In a suitable text area (e.g., a terminal window), press and hold the "a" key. When the key begins to autorepeat (i.e., the repeat delay expires), does a new "a" character appear in the text window once every 5 seconds?
  4. Enable RepeatKeys. Set the repeat rate interval to its minimum setting. In a suitable text area (e.g., a terminal window), press and hold the "a" key. When the key begins to autorepeat (i.e., the repeat delay expires), do 10 new "a" characters appear in the text window every second?

T1.4. SlowKeys

T1.4.1. Turn SlowKeys on/off

SlowKeys changes multiple key repeat properties. The easiest way to tell when SlowKeys is on during testing, besides looking for its visual indicator, is to set its acceptance delay to about two seconds. SlowKeys is on when, with all other keyboard access features off, the system waits about two seconds before key repeat begins.

  1. Turn off all keyboard access features; are they off?
  2. Locate the user interface artifact that allows the user to turn SlowKeys on or off. When you manipulate this artifact, can you turn SlowKeys on and off?
  3. Turn on one or more other keyboard access features. Does the state of all other keyboard features remain the same when SlowKeys is turned on and off?
  4. Turn on one or more other keyboard access features. Turn SlowKeys on and off. Did the state of all the other keyboard accessibility features remain the same?
  5. Turn off all other keyboard access features except SlowKeys; is SlowKeys on and the rest off?

T1.4.2. Provide the ability to request an audible signal when SlowKeys is about to be turned on/off via the keyboard

  1. Turn SlowKeys off but ensure the user interface artifact used to enable keyboard shortcuts is on (consult T1.7.4. below). Does the user interface artifact that indicates SlowKeys is on/off state show it is off?
  2. Press and hold the Shift key for 8 seconds. Did SlowKeys provide an audio warning that it was about to turn on?
  3. Press and hold the Shift key for 8 seconds. Did SlowKeys provide an audio warning that it was about to turn off?

T1.4.3. Provide the ability to request an audible signal when a key is pressed

  1. When SlowKeys is on, does pressing a key produce an audio sound when this setting has been made active?
  2. Start a text editor or something else that can be typed into. Type faster than the acceptance delay setting. Does pressing a key produce an audio sound but does not allow keystrokes to be typed into the "editor" application?

T1.4.4. Request an audible signal when a key is accepted

Provide the ability to request an audible signal when a key is accepted.

  1. Turn SlowKeys on and start a text editor or something else that can be typed into. Press and hold a key longer than the acceptance delay. Does a beep occur when the time set on the acceptance delay is reached?
  2. Did a character type into the text editor [or similar] immediately after the acceptance delay was reached?
  3. Continue holding down the key after the acceptance delay was reached. Did character entry start repeating after the repeat threshold has been met?
  4. Did the system remain silent after the acceptance delay ended and once the output from the key being pressed started repeating?

T1.4.5. Provide the ability to request an audible signal when a key is rejected

  1. Locate the user interface artifacts that allow the user to request audible signals from the SlowKeys feature when keys are pressed, accepted, and rejected. Turn off audible notification for "press" and "accept", and turn on audible notification for "reject".
  2. Start a text editor or something else that can be typed into. Type faster than the acceptance delay setting. Does releasing each key produce an audio sound but does not allow keystrokes to be typed into the "editor" application?
  3. Type more slowly than the acceptance delay setting, so that each key press is accepted. Does the system remain "silent", i.e. are audible notifications emitted only when a key is released before the acceptance delay has elapsed?

T1.4.6. Acceptance delay

  1. Locate the user interface artifacts that allows the user to set the acceptance delay set the audible notification.
    1. Turn audible notification to "On", is it on?
    2. Does this user interface artifact allow the user to set the delay to 0.05 seconds or less and 5 seconds or more?
  2. Locate the user interface artifact that allows the user to set the acceptance delay. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range 0.25 seconds or less?
  3. With SlowKeys on, set the acceptance delay that allows the user to set how long it will take before the system sends a keypress to the application with input focus.
    1. Set it to the minimum setting. Does the system beep and send the keystroke to the application once the delay setting has been reached?
    2. Set it to the maximum setting. Does the system beep and send the keystroke to the application once the delay setting has been reached?

T1.5. BounceKeys

T1.5.1. Turn BounceKeys on/off

  1. Turn off all keyboard access features; are they off?
  2. Locate the user interface artifact (or tool) that allows the user to turn BounceKeys on or off; does it turn BounceKeys on and off?
  3. With BounceKeys on, does the system accept multiple keypresses from the same key if there are intervening key events (e.g. "a", "b", "a")?
  4. Turn on one or more other keyboard access features; does the state of all other keyboard features remain the same when BounceKeys is turned on and off?
  5. Turn off all other keyboard access features except BounceKeys; is BounceKeys on and the rest off?

T1.5.2. Provide the ability to request an audible signal when a key is rejected

  1. Set the BounceKeys delay value to a value such that a key can easily be pressed by the test operator more than once during the BounceKeys delay time; turn on the notification for when a keypress is rejected; and start a text editing application.
    1. Does the system provide an audible signal when a key is pressed more than once within the bounce delay time?
    2. Are no keystrokes typed into the when a key is pressed more than once within the bounce delay time?
  2. Turn off on the notification for when a keypress is rejected; does the system remain silent when a second and subsequent keypress is rejected during the BounceKeys delay interval?
  3. When turning this audio notification on and off, did the state of other keyboard features and audio notifications stay the same?

T1.5.3. Debounce time

  1. Locate the user interface artifact that allows the user to set the debounce time. Does this user interface artifact allow the user to set the delay to 0.1 seconds or less and 5 seconds or more?
  2. Locate the user interface artifact that allows the user to set the debounce time. Are the following requirements, where applicable, met?
    1. Is the settings granularity at the low end of the selection range 0.1 seconds or less?
  3. Set the debounce delay to the minimum setting. Press a key, wait till after the minimum setting has been passed then press the same key again; does the system send the consecutive keystroke to the application?
  4. With the debounce delay set to the minimum setting. Press the same letter character key twice before this setting is reached; does the system reject a press of the same key if it is pressed before the debounce delay is reached?

T1.6. ToggleKeys

T1.6.1. Turn ToggleKeys on/off

  1. Turn off all keyboard access features; are they off?
  2. Locate the user interface artifact that allows the user to turn ToggleKeys on or off. When you use this tool, can you turn ToggleKeys on and off?
  3. Turn off all other keyboard access features except ToggleKeys; is ToggleKeys on and the rest off?
  4. Turn ToggleKeys off. Press the "Caps Lock" key to turn the Caps Lock light on and off. Does the system remain silent? Do the same for other locking modifiers on the keyboard (e.g., Scroll Lock).
  5. Turn ToggleKeys on. Press the "Caps Lock" key to turn the Caps Lock light on and off. Does the system provide an audible signal when the state of the Caps Lock light changes? Do the same for other locking modifiers on the keyboard (e.g., Scroll Lock).
  6. Audible notification for normally unlocking keys, such as the Control and Shift keys, should not be provided by ToggleKeys. Check this by enabling both ToggleKeys and StickyKeys. Disable the audible notification feature of StickyKeys. Press the Shift key once to latch it. Did the system remain silent?

T1.7. Supporting Features

T1.7.1. Provide a means of requesting a warning dialog any time the SlowKeys or StickyKeys feature is invoked from the keyboard

T1.7.1.1. StickyKeys
  1. Locate and select the user interface artifact that allows the user to choose if a warning dialog is presented when StickyKeys is turned on from the keyboard. Turn StickyKeys on from the keyboard. Did a warning dialog present itself?
  2. Turn StickyKeys off. De-select the user interface artifact that allows the user to choose if a warning dialog is presented when StickyKeys is turned on from the keyboard. Turn StickyKeys on from the keyboard. A warning should not appear. Did a warning dialog present itself?
T1.7.1.2. MouseKeys
  1. Locate and select the user interface artifact that allows the user to choose if a warning dialog is presented when MouseKeys is turned on from the keyboard. Turn MouseKeys on from the keyboard. Did a warning dialog present itself?
  2. Turn MouseKeys off. De-select the user interface artifact that allows the user to choose if a warning dialog is presented when MouseKeys is turned on from the keyboard. Turn MouseKeys on from the keyboard. A warning should not appear. Did a warning dialog present itself?
T1.7.1.3. SlowKeys
  1. Locate and select the user interface artifact that allows the user to choose if a warning dialog is presented when SlowKeys is turned on from the keyboard. Turn SlowKeys on from the keyboard. Did a warning dialog present itself?
  2. Turn SlowKeys off. De-select the user interface artifact that allows the user to choose if a warning dialog is presented when SlowKeys is turned on from the keyboard. Turn SlowKeys on from the keyboard. A warning should not appear. Did a warning dialog present itself?

T1.7.2. Provide an option for requesting an audible signal when a Keyboard Access feature is turned on/off from the keyboard

T1.7.2.1. StickyKeys
  1. Locate and select the user interface artifact that allows the user to choose if an audible signal is presented when StickyKeys is turned on or off from the keyboard. Turn StickyKeys on from the keyboard. Did an audible signal sound off?
  2. Turn StickyKeys off from the keyboard. Did an audible signal sound off?
  3. De-select the user interface artifact that allows the user to choose if an audible signal is presented when StickyKeys is turned on or off from the keyboard. Turn StickyKeys on from the keyboard. An audible signal should not sound. Did an audible signal sound off?
  4. Turn StickyKeys off from the keyboard. An audible signal should not sound. Did an audible signal sound off?
T1.7.2.2. MouseKeys
  1. Locate and select the user interface artifact that allows the user to choose if an audible signal is presented when MouseKeys is turned on or off from the keyboard. Turn MouseKeys on from the keyboard. Did an audible signal sound off?
  2. Turn MouseKeys off from the keyboard. Did an audible signal sound off?
  3. De-select the user interface artifact that allows the user to choose if an audible signal is presented when MouseKeys is turned on or off from the keyboard. Turn MouseKeys on from the keyboard. An audible signal should not sound. Did an audible signal sound off?
  4. Turn MouseKeys off from the keyboard. An audible signal should not sound. Did an audible signal sound off?
T1.7.2.3. SlowKeys
  1. Locate and select the user interface artifact that allows the user to choose if an audible signal is presented when SlowKeys is turned on or off from the keyboard. Turn SlowKeys on from the keyboard. Did an audible signal sound off?
  2. Turn SlowKeys off from the keyboard. Did an audible signal sound off?
  3. De-select the user interface artifact that allows the user to choose if an audible signal is presented when SlowKeys is turned on or off from the keyboard. Turn SlowKeys on from the keyboard. An audible signal should not sound. Did an audible signal sound off?
  4. Turn SlowKeys off from the keyboard. An audible signal should not sound. Did an audible signal sound off?

T1.7.3. Provide a visual indication showing when the system generates an audible ("bell") signal

  1. Turn on the functionality that generates an audible signal when a keyboard access feature is toggled on/off. Locate the user interface artifact that allows the user to turn this functionality on or off, turn it on. Turn StickyKeys on or off.
    1. Did a flash occur in the active desktop session when StickyKeys was turned on or off?>
    2. Does a sound occur when StickyKeys was turned on or off?
  2. Turn off the functionality that generates an audible signal when a keyboard access feature is toggled on/off. With "visual bell" on, turn StickyKeys off or on.
    1. Did a flash occur in the active desktop session when StickyKeys was turned off or on?
    2. Did the system remain silent when StickyKeys was turned on or off?
  3. Turn off the "visual bell" functionality then turn StickyKeys off or on. A flash should not occur when a system beep is generated; did one occur?

T1.7.4. Provide a means of enabling the keyboard shortcuts for StickyKeys and SlowKeys to be turned on/off; turning this functionality off turns the features off and disables the keyboard shortcuts [footnote 1]

  1. Locate the user interface artifact that allows the user to turn StickyKeys on via a keyboard shortcut. Enable this feature. Press the Shift key five times in a row. Open a text editor or something that can be typed into then press and release the Shift key then press and release the "a" key. Did the letter appear as "A"?
  2. Press the Shift key five times in a row. Press and release the Shift key then press and release the "a" key in a suitable text area (e.g., a terminal window). Did the letter appear as "a"?
  3. Disable the keyboard shortcut. Press the Shift key five times in a row. Did the state of StickyKeys remain the same? That is, if StickyKeys was off, did it stay off? If StickyKeys was on, did it stay on?
  4. Locate the user interface artifact that allows the user to turn on or off the keyboard shortcut for SlowKeys; disable the shortcut. Hold down the Shift Key for 8 seconds. Did SlowKeys remain off?
  5. Did the system stay silent during the entirety of the above test?
  6. No visual notifications should pop up during the above test; is this the case?

[Footnote 1] Common practice today is this functionality turns off all the keyboard access features. This specification only requires that this boolean control affect the SlowKeys and StickyKeys features, in line with what the XKB specification in the X Windows System provides.


T1.7.5. Provide a time-out option that turns StickyKeys and SlowKeys off automatically after a specified period of time without keyboard activity; it still must be possible to turn StickyKeys or SlowKeys on from the keyboard when this feature is turned on.

  1. Locate the user interface artifact that allows the user to set the time-out feature. Are the following requirements, where applicable, met?
    1. Does this user interface artifact allow the user to set the time-out from between 1 minute and 30 minutes?
    2. Is the settings granularity at the low end of the selection range 4 minutes?
  2. Turn this feature on, set it to four minutes, then turn StickyKeys and SlowKeys on. Open a text-editor, type in a couple characters, then do not press any more keys on the keyboard. Did StickyKeys and SlowKeys automatically turn off after one minute elapsed?
  3. Change the setting to six minutes, turn turn StickyKeys and SlowKeys on. Did StickyKeys and SlowKeys automatically turn off after five minutes elapsed?

T1.7.6. Provide a never time out option for StickyKeys and SlowKeys

  1. Locate the user interface artifact(s) that allows the user to request that StickyKeys and SlowKeys never time out; turn on this feature. Turn StickyKeys and SlowKeys, leave them on for about an hour. Are StickyKeys and SlowKeys still on after this time period has elapsed?

Test Assertions for KAFS Table 2:
End-User Notification, Keyboard Invocation, and Mouse Emulation

This section and all its sub-sections are normative.

This section defines the test assertions associated with the functionality defined in KAFS Table 2. These test assertions validate the capability and notifications provided outside of the configuration utility developed to expose the functionality specified in KAFS Table 1.


T2.1. Provide a visual indication showing the state of keys and buttons

T2.1.1. StickyKeys

T2.1.1.1. Indicate when StickyKeys is on
  1. Locate the user interface artifact that enables visual indicators when a modifier is pressed. Enable both this feature and StickyKeys. Turn StickyKeys off and then on again to reset the modifier states. Press the Shift key, latching the modifier. Did a visual indication reflect this change in state?
T2.1.1.2. Indicate when a modifier (or modifiers) is in a latched state
  1. Perform test number T2.1.1.1, above. for each of the other modifier keys supported by the platform. Did a visual indication for each of these modifier keys reflect they had entered a latched state?
T2.1.1.3. Indicate when a modifier key (or keys) is in a locked state
  1. Ensure the visual indication shows no modifier is in the latched or locked state. Does the indicator show all modifiersa are not in the latched or locked state?
  2. Press the Shift key twice in a row. Did the visual indication change to reflect the Shift Key is now in the latched state?
  3. Press the Shift key once more. Did the visual indication change to reflect the Shift Key was no longer latched?
  4. Perform the above steps for each of the other modifier keys supported by the platform. Did a visual indication for each of these modifier keys reflect they had entered a locked state?

T2.1.2. MouseKeys

T2.1.2.1. Indicate when MouseKeys is on
  1. Locate the user interface artifact that enables visual indicators when a MouseKeys is on. Enable both this feature and MouseKeys. Does a visual indication appear when MouseKeys is turned on?
  2. With MB1 still active, press then release the key that performs the pointer down function. Does the visual indication show the active pointer button is in the pressed state after the key is released?
  3. Turn MouseKeys off. Does a visual indication disappear when MouseKeys is turned off?
T2.1.2.2. Indicate which pointer button is active
  1. Press the keyboard key that activates MB1. Does the visual indication show which pointer button is active when MouseKeys is on?
  2. Perform the above test for each single and combination of active mouse button supported by the MouseKeys feature. Are the correct active mouse button(s) indicated?
T2.1.2.3. Indicate when the active pointer button is up or down
  1. Press the keyboard key that activates MB1. Press, then release, the key that performs a pointer click. Does the visual indication show when the active pointer button is pressed?
  2. Perform the above test for each single and combination of active mouse buttons supported by the MouseKeys feature. Does the visual indication show when the active pointer button(s) is pressed?

T2.1.3. SlowKeys

T2.1.3.1. Indicate when SlowKeys is on
  1. Turn SlowKeys on or off. When you turned SlowKeys on, did a visual status indicator appear somewhere on the screen to indicate that SlowKeys was on?
  2. When SlowKeys is turned off, did the visual status indicator disappear from the screen to inform you that SlowKeys turned off?
T2.1.3.2. Indicate when a key is pressed
  1. Press any alphanumeric key. Did a visual indication indicate a key had been pressed?
T2.1.3.3. Indicate when a key press is accepted
  1. Press and hold any alphanumeric key for longer than the SlowKeys acceptance delay setting. Did a visual indication indicate the keypress was accepted after this time period was passed?
T2.1.3.4. Indicate when a key press is rejected
  1. Press and hold any alphanumeric key for less than the SlowKeys acceptance delay setting. Did a visual indication indicate the keypress was rejected?

T2.2. Provide a keyboard on/off gesture

T2.2.1. StickyKeys

T2.2.1.1. Provide the ability to toggle StickyKeys on and off from the keyboard. On systems that utilize a keyboard: press the Shift key 5 consecutive times.
  1. Press the Shift key 5 times in a row. Did StickyKeys turn on?
  2. Press the Shift key 5 times in a row. Did StickyKeys turn off?

T2.2.2. MouseKeys

T2.2.2.1. Provide the ability to toggle MouseKeys on and off from the keyboard on systems that utilize a pointing device
  1. Can MouseKeys be turned on from the keyboard?
  2. Can MouseKeys be turned off from the keyboard?

T2.2.3. SlowKeys

T2.2.3.1. Provide the ability to toggle SlowKeys on and off from the keyboard. On systems that utilize a keyboard: hold down Shift for 8 seconds.
  1. Press and hold the Shift key for 8 seconds. Did SlowKeys turn on?
  2. Press and hold the Shift key for 8 seconds. Did SlowKeys turn off?

T2.3. Provide an audible signal that indicates when a keyboard access feature or feature functionality has changed state

T2.3.1. General

T2.3.1.1. Each keyboard access feature must provide an audible signal when it is turned on or off
  1. Turn StickyKeys on and off then perform this same procedure with MouseKeys, RepeatKeys, SlowKeys, BounceKeys, then ToggleKeys. Do each of these features generate an on and off audible signal?
T2.3.1.2. The signal that is generated when a keyboard access feature has been turned on or off must be the same as that used on the other keyboard access features
  1. Turn StickyKeys on and off, take note of how the on and off audible signals sound. Perform this same procedure with MouseKeys, RepeatKeys, SlowKeys, BounceKeys, then ToggleKeys. Do the on and off audible signals sound the same for all these features?
T2.3.1.3. A keyboard access feature's "On" audible signal must be different from its "Off" audible signal
  1. Turn StickyKeys on and off, take note of how the on and off audible signals sound. Perform this same procedure with MouseKeys, RepeatKeys, SlowKeys, BounceKeys, then ToggleKeys. Are the on audible signals for these features different than the off audible signals they generate?
T2.3.1.4. Functionality in a keyboard access feature that essentially turns something On or Off should use an audible signal with a timbre similar to the one generated when a keyboard acess feature is turned "On" or "Off"
  1. StickyKeys on.
    1. Latch a modifier key. Does the resulting audible sound have a timbre similar to or the same as when StickyKeys is turned on?
    2. Lock a modifier key. Does the resulting audible sound have a timbre similar to or the same as when StickyKeys is turned on?
    3. Unlock a modifier key. Does the resulting audible sound have a timbre similar to or the same as when StickyKeys is turned off?
  2. Turn StickyKeys off.
    1. Press and hold down a Shift key. Does the first audible signal that sounds after holding it 4 seconds have a timbre similar to or the same as when SlowKeys is turned on?
    2. Continue holding down the shift key till after SlowKeys has generated its "On" signal ( about another 4 seconds after the first audible signal). Is the visual indication for SlowKeys turned on?
    3. Rress any letter key on the keyboard. Does the audible signal that sounds signifying when the key is pressed have a timbre similar to or the same as when SlowKeys is turned on?
    4. Press any key on the keyboard and hold it longer than the acceptance delay setting. Does the audible signal that sounds signifying when the key has been accepted have a timbre similar to or the same as when SlowKeys is turned on?
    5. Set the acceptance delay to approximately one second then press any key on the keyboard but release it before reaching the acceptance delay. Does the audible signal that sounds signifying when the key is released before it has been accepted have a timbre similar to or the same as when StickyKeys is turned off?
    6. Press and hold down the shift key till SlowKeys generates its "Off" signal. Does the first audible signal that sounds have a timbre similar to or the same as that generated in the preceding step?
  3. Turn SlowKeys off then turn BounceKeys on. Set the debounce time to around 1.0 second then press any key on the keyboard but release it before reaching the acceptance delay. Does the audible signal that sounds signifying when the first key press is accepted have a timbre similar to or the same as when StickyKeys is turned on?

T2.3.2. StickyKeys

T2.3.2.1. Provide an audible signal when a modifier is latched
  1. Turn StickyKeys on then press the Shift key once; did the release of the Shift key press generate an audible signal?
  2. Press an letter character key to releases any latched keys then perform this test with all other modifiers; did each of these tests generate an audible signal?
T2.3.2.2. Provide an audible signal when a modifier is locked
  1. Turn StickyKeys on then press the Shift key twice in a row; did the release of the second Shift key press generate an audible signal?
  2. Perform this test with all other modifiers; did each of these tests generate an audible signal?
T2.3.2.3. Provide an audible signal when a modifier is unlatched or unlocked
  1. Turn StickyKeys on and ensure no modifier is latched or locked. Press the Shift key once then press an letter character key; did the release of the letter character key press generate an audible signal?
  2. Perform this test with all other modifiers; did each of these tests generate an audible signal when the modifier is unlatched or unlocked.?
  3. With StickyKeys on and no modifier is latched or locked, press the Shift key three times; did the release of the third key press generate an audible signal?
  4. Perform this test with all other modifiers; did each of these tests generate an audible signal?

T2.3.5. ToggleKeys

T2.3.5.1. Provide an audible signal when a locking key is locked or unlocked
  1. Turn ToggleKeys off. Press the "Caps Lock" key to turn the Caps Lock light on and off. Does the system remain silent? Do the same for other locking modifiers on the keyboard (e.g., Scroll Lock).
  2. Turn ToggleKeys on. Press the "Caps Lock" key to turn the Caps Lock light on and off. Does the system provide an audible signal when the state of the Caps Lock light changes? Do the same for other locking modifiers on the keyboard (e.g., Scroll Lock).
  3. Audible notification for normally unlocking keys, such as the Control and Shift keys, should not be provided by ToggleKeys. Check this by enabling both ToggleKeys and StickyKeys. Disable the audible notification feature of StickyKeys. Press the Shift key once to latch it. Did the system remain silent?

T2.4. For systems with a pointing device, provide the ability to manipulate the pointer from the keyboard

T2.4.1. MouseKeys

T2.4.1.1. Move the pointer via a key press
  1. With MouseKeys on, locate all keys on the keyboard for moving the pointer. Press each key. Does the pointer move in the expected direction when each key is pressed?
T2.4.1.2. Activate the active pointer button via a keypress
  1. With MouseKeys on, locate the key whose function is to click the active pointer button. Move the pointer from its current location then press and release the key once. Does a single click under the active button occur?
  2. With MouseKeys on, locate the key whose function is to double-click the active pointer button. Move the pointer to a location that generates an action when double-click is pressed, opening an icon from the desktop for example, then press and release the key. Does a double click action occur when this happens?
T2.4.1.3. Change the active pointer button via a keypress
  1. This test applies to implementations that provide more than one button on the pointing device provided on the system. Locate the keys that activate each pointer button. Press the key that activates a different pointer button. Does the expected pointer button become active?
  2. If the expected pointer button becomes active, perform the tests called for in section T2.4.1.2, activating the active pointer button via a keypress
T2.4.1.4. Hold down a pointer button via a keypress
  1. Locate the key whose function is to hold down the pointer button. Press and release this key for each active button.
    1. Does the expected pointer button indicate it is held down?
    2. Is the expected key in the held down position?
  2. Perform the above test on each active pointer button. Are the results for the tests identified in the previous step positive?
T2.4.1.5. If the system supports multiple pointer buttons, allow multiple pointer buttons to be pressed
  1. Define functions that activate for each possible single and combination of pointer button clicks supported by the platform.
  2. Turn StickyKeys on, did it turn on?
  3. Locate the keys that activate each pointer button, latch the Shift key, then press the first pointer button combination identified in the first task in this test.
    1. Does the visual indication show which pointer button keys are active?
    2. Has the Shift key remained in the latched state?
  4. Press the "click" button, does the action defined for this combination occur?
  5. Perform the above tests for each button click combination(s) identified in the first step. Does the defined action occur for each button click combination?
T2.4.1.6. Release all pointer buttons that are held down via a key press
  1. With MouseKeys and the visual indication showing pointer button states on, press and release the key that holds down the active pointer button; does the visual indication show the active button is held down?
  2. With the active button showing it is held down, press the key that releases any pointer buttons that are held down; does the visual indication show that all pointer buttons indicate they are released?
  3. Perform the above checks for each active pointer button; are the results for the checks listed above the same?


Normative References

[KAFS]
Keyboard Access Functional Specification (KAFS), edited by Johnson, Earl, Rosmaita, Gregory J. and Sajka, Janina; authors: Johnson, Earl; Haneman, Bill; Novak, Mark; Schmidt, Gunnar; and Walker, Willie; 2008.
Available at: http://a11y.org/kafs
[RFC2119]
Key words for use in RFCs to indicate requirement levels, RFC 2119, S. Bradner, March 1997.
Available at: http://www.rfc-editor.org/rfc/rfc2119.txt
[XKB]
XKB: The X Keyboard Extension, Revision 6.4 (PostScript file)
Available from: http://refspecs.linux-foundation.org/X11/XKBlib.ps
[XKBlib]
The X Keyboard Extension: Library Specification Library (X Version 11, Release 6.4) [PDF file] An X Consortium Standard. Version 1.0/Document Revision 1.1. Edited by Aitken, Gary and Benson, Amber J.; authors: Fortune, Erik; Converse, Donna; Sachs, George; Walker, Will.
Available from: http://refspecs.linux-foundation.org/X11/XKBlib.pdf
© Copyright 2006-2008, Open Accessibility at The Linux Foundation. All Rights Reserved.

Please address any technical problems encountered with this document to webmaster@a11y.org. Please submit comments, corrections, and/or errata to accessibility-rfc@a11y.org, a publicly archived list.

Valid XHTML 1.0 Strict (check for yourself!) Web-Content Accessibility Guidelines, Level Triple-A Compliant      W3C Validated Cascading Style Sheets!