UI/Shell

Required:
The application must be compatible with the following system color, size, font, sound, and input settings. This provides the user with a consistent user interface and allows them to customize the system to meet their needs and preferences. These settings are queried using the GetSystemMetrics, SystemParametersInfo, or GetSysColors functions. Color settings are required only when the High Contrast option is on. For more information refer to the accessibility guidelines for application developers on http://microsoft.com/enable/.

Tip: Standard window classes and controls automatically support all of these settings. Applications only need to be aware of these when creating custom window classes or controls.

Required Size Settings
SM_CYFIXEDFRAME SM_CXFIXEDFRAME
SM_CYDLGFRAME SM_CXDLGFRAME
SM_CYMENUSIZE SM_CXMENUSIZE
SM_CYSIZEFRAME SM_CXSIZEFRAME
SM_CYFRAME SM_CXFRAME
SM_CYVSCROLL SM_CXVSCROLL
SM_CYMENU SM_CYCAPTION
SPI_GETICONTITLELOGFONT SM_CYSMCAPTION
SPI_GETNONCLIENTMETRICS SPI_GETBORDER
SPI_GETWORKAREA SM_CXSCREEN
SM_CYSCREEN SM_CXFULLSCREEN
SM_CYFULLSCREEN SM_CXMAXIMIZED
SM_CYMAXIMIZED SM_CYTRACK
SM_CXTRACK
Required Color Settings
SPI_GETHIGHCONTRAST All GetSysColor settings are required when SPI_GETHIGHCONTRAST is TRUE
Required Input Settings
SM_CYDOUBLECLK SM_CXDOUBLECLK
SM_CYDRAG SM_CXDRAG
SPI_GETKEYBOARDPREF
Required Sound Settings
SM_SHOWSOUNDS SPI_GETSHOWSOUNDS

Required:
Applications must be compatible with the High Contrast option, which indicates that the user wants a high degree of legibility. When this option is set the application must use only system colors selected through Control Panel or other colors that the user can customize. Because documents are typically shared, a user must not be required to alter a document in order to adjust the colors drawn on the screen. System colors must be used in their proper foreground/background combinations. For more information refer to the accessibility guidelines for application developers on http://microsoft.com/enable/.

Tip: To get the space left over after the tray takes up the screen, use either GetSystemMetrics to query SM_CXFULLSCREEN and SM_CYFULLSCREEN or use SystemParamtersInfo to query SPI_GETWORKAREA.

Exception:
Palettes where the user selects a color may continue to display their full range of fixed colors. Games and certain multimedia applications may have aesthetic and design considerations, such as custom dialog boxes and user interface elements, where system settings are inappropriate. Games, certain multimedia applications, and inherently graphical applications such as image editing tools may also be excepted from color requirements. These will be judged on a case-by-case basis. You must detail these exceptions in your Vendor Questionnaire.

Recommended:
In addition to the required system settings listed above, applications should be compatible with the following recommended system settings.

Recommended Size Settings
SM_CXICONSPACING SM_CYICONSPACING
SM_CXMENUCHECK SM_CYMENUCHECK
SPI_ICONHORIZONTALSPACING SPI_ICONVERTICALSPACING
SM_CXICON SM_CYICON
SM_CXSIZE SM_CYSIZE
SM_CXSMSIZE SM_CYSMSIZE
SPI_GETICONTITLEWRAP SPI_GETICONMETRICS
Recommended Sound Settings
SPI_GETBEEP
Recommended Input Settings
SPI_GETMOUSEHOVERHEIGHT SPI_GETMOUSEHOVERTIME
SPI_GETMOUSEHOVERWIDTH SM_SWAPBUTTON
Other Recommended Settings
SPI_GETSCREENREADER SPI_GETMENUDROPALIGNMENT

Required:
The application must provide keyboard access to all features. For more information refer to the accessibility guidelines for application developers on http://microsoft.com/enable/.

Exception:
Exceptions may be made in the following cases:

Exceptions may be made for minor features that are not required for operation of the program, when the major features in the application have keyboard access. All major features or functional areas without keyboard access should be explained in the Vendor Questionnaire.

Required:
The keyboard user interface must be documented.

Exception:
It is not necessary to document elements that simply follow the Windows conventions for elements such as standard menus and controls.

Tip: This information may be provided in your standard documentation that is included with the product, or it may be orderable separately. In the latter case, it is strongly recommended that the standard documentation inform the user that this additional documentation is available.

Required:
The application must notify other software of the locations of the keyboard focus, either by moving the system caret or using Active Accessibility. This requirement enables the use of accessibility aids such as the screen magnification accessory included with the Active Accessibility SDK. Note that this accessory will be included in future versions of the Windows operating systems. Be sure to check the Pretesting & Verification section to help test your product. For more information refer to the accessibility guidelines for application developers on http://microsoft.com/enable/.

Recommended:
In addition to the above requirements, the following behaviors are recommended for the User Interface. For more information refer to the accessibility guidelines for application developers on http://microsoft.com/enable/.