430 likes | 675 Views
PWB511: Creating Section 508 Compliant Applications with PowerBuilder. Elke Sacher Senior Software Engineer Elke.Sacher@sybase.com August 15-19, 2004. The Enterprise. Unwired. The Enterprise. Unwired. Industry and Cross Platform Solutions. Manage Information. Unwire Information. Unwire
E N D
PWB511: Creating Section 508 Compliant Applications with PowerBuilder Elke Sacher Senior Software Engineer Elke.Sacher@sybase.com August 15-19, 2004
The Enterprise. Unwired. Industry and Cross Platform Solutions Manage Information Unwire Information Unwire People • Adaptive Server Enterprise • Adaptive Server Anywhere • Sybase IQ • Dynamic Archive • Dynamic ODS • Replication Server • OpenSwitch • Mirror Activator • PowerDesigner • Connectivity Options • EAServer • Industry Warehouse Studio • Unwired Accelerator • Unwired Orchestrator • Unwired Toolkit • Enterprise Portal • Real Time Data Services • SQL Anywhere Studio • M-Business Anywhere • Pylon Family (Mobile Email) • Mobile Sales • XcelleNet Frontline Solutions • PocketBuilder • PowerBuilder Family • AvantGo Sybase Workspace
Accessibility • Accessibility Standards • Section 508 of the Rehabilitation Act of 1973 • Software Applications Requirements (§1194.21) • Microsoft Active Accessibility Version 2.0 • PowerBuilder Accessibility • PowerBuilder Accessibility Enhancements • PowerBuilder and the Section 508 Provisions • Demo of PowerBuilder Accessibility with Microsoft AccExplorer
Software Accessibility • AccessibilityIs accomplished by designing software that accommodates the widest range of users. • Other Standards • ISO/TS 16071, ISO Accessibility Guide for Software Design • W3C, Web Content Accessibility Guidelines
Assistive Technology • Accessibility aidsHardware and software which adapts the user interface so the computer can be used by people with disabilities. Examples: • Screen Magnifier enlarges the screen like a magnifying glass. • Screen Readers make on-screen information available as synthesized speech or a refreshable Braille display. • Keyboard Enhancement Utilities allow the user to perform key sequences serially (e.g. Control-C). • Speech Recognition enable people to control computers with their voice instead of a mouse or keyboard.
U.S. Accessibility Legislation • Rehabilitation Act of 1973Protects employment rights of disabled individuals applying to and working for • Federal agencies • Businesses or institutions under federal contract • Businesses or institutions receiving federal funds • Section 508 • Amendment to the Rehabilitation Act • Requirements for electronic and information technology • http://www.section508.gov/ • §1194.21 • Specifies the requirements for software applications and operating systems. • http://www.access-board.gov/sec508/guide/
Terms • Access BoardIndependent U.S. Federal agency devoted to accessibility. • AgencyAny Federal department or agency, including the United States Postal Service. • Electronic and Information TechnologyInformation technology, as well as any equipment or interconnected system or subsystem of equipment, that is used inthe creation, conversion, or duplication of data or information. • Undue burdenUndue burden means significant difficulty or expense.
Section 508 • Amendment to the Rehabilitation Act • Signed August 7, 1998 • Enforcement provisions of section 508 are effective as of June 21, 2001 • Federal departments and agencies • Required to provide Federal employees with disabilities access to office systems and information equal to their non-disabled colleagues. • Have to assure that people in the general public who have disabilities, have equal access to Government information. • Unless an undue burden would be imposed on the agency. • Accessibility has to be ensured for • Development • Procurement • Maintanance • Use of electronic and information technology.
Section 508 Technical Standards • The Technical standards provide criteria specific to various types of technologies: • § 1194.21 software applications and operating systems • § 1194.22 web-based information or applications • § 1194.23 telecommunication products • § 1194.24 video and multimedia products • § 1194.25 self contained, closed products (e.g. calculators, fax machines) • § 1194.26 desktop and portable computers
Section 508 Software Provisions • Section 508 § 1194.21 • Requirements for Software applications and operating systems. • Program features that must be contained in software for the product to meet the 508 standard. (a) Keyboard Access (b) Accessibility Features (c) Input Focus (d) Object Information (e) Bitmap Images (f) Textual Information (g) User Selected Attributes (h) Animation (i) Color Coding (j) Color and Contrast Settings (k) Flashing or Blinking Text (l) Electronic Forms
Software Provisions a, b, c • (a) Keyboard AccessAll actions that can be identified or labelled with text are required to be executable from a keyboard. • (b) Accessibility FeaturesApplications shall not disrupt or disable activated features of operating systems or other products that are identified as accessibility features. • (c) Input FocusA well-defined on-screen indication of the current focus shall be provided. The focus shall be programmatically exposed so that assistive technology can track focus and focus changes.
Software Provisions d, e, f • (d) Object InformationSufficient information about a user interface element including the identity, operation and state of the element shall be available to assistive technology.When an image represents a program element, the information conveyed by the image must also be available in text. • (e) Bitmap ImagesWhen bitmap images are used to identify controls, status indicators, or other programmatic elements, the meaning assigned to those images shall be consistent. • (f) Textual InformationTextual information shall be provided through operating system functions for displaying text.
Software Provisions g, h, i • (g) User Selected AttributesApplications shall not override user selected contrast and color selections and other individual display attributes. • (h) AnimationWhen animation is displayed, the information shall be displayable in at least one non-animated presentation mode at the option of the user. • (i) Color CodingColor coding shall not be used as the only means of conveying information.
Software Provisions j, k, l • (j) Color and Contrast SettingsWhen a product permits a user to adjust color and contrast settings, a variety of color selections capable of producing a range of contrast levels shall be provided. • (k)Flashing or Blinking TextSoftware shall not use flashing or blinking text, objects, or other elements having a flash or blink frequency greater than 2 Hz and lower than 55 Hz.Intended to prevent applications from inducing seizures by users prone to having them. • (l) Electronic FormsWhen electronic forms are used, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues.
Windows Accessibility Parameters • SystemParametersInfoApplications can check the state of an accessibility parameter to determine whether the user wants special behaviour. • High contrastIndicates whether the user wants a high contrast between the colors used for foreground and background visuals. • Keyboard PreferenceIndicates whether the user relies on the keyboard instead of the mouse. • Screen ReaderWhen this flag is set, an application should provide textual information in situations where it would otherwise present the information graphically. • ShowSoundsIndicates whether the user wants applications to present all important information in visual form.
Windows Accessibility Features • AccessTimeout timeout interval after which system-wide accessibility features are automatically disabled. • FilterKeys keyboard properties, such as • Amount of time before a keystroke is accepted • Amount of time before a keystroke repeats • Sound feedback when a key is pressed • Sound feedback when a key is accepted as input • MouseKeys controls the mouse via numeric keypad. • SerialKeys enables input using an input device attached to the computer's serial port.
Windows Accessibility Features Continued • SoundSentryDisplays a visual signal when a sound is generated by a Win32-based application or an MS-DOS application running in a window. • StickyKeysEnables the user to type key combinations, such as CTRL+ALT+DEL, in sequence rather than at the same time. • ToggleKeysProvides sound feedback when the user turns on or off the CAPS LOCK, NUM LOCK, or SCROLL LOCK keys.
Microsoft Active Accessibility • MSAA Microsoft Windows Standard • Current version MSAA 2.0. • Based on the Component Object Model (COM). • Assistive technology (accessibility aids, like screen readers) obtain information about user interface (UI) elements. • Software programs (like PowerBuilder applications) expose information to assistive technology . • OLEACC.DLL • Provides the Active Accessibility runtime and manages requests from Active Accessibility clients. • Ships as a standard system component of Microsoft Windows XP. • MSAA 2.0 Redistributable can be installed or upgraded on earlier Windows platforms.
Microsoft Active Accessibility Requirements • Adhere to Windows Guidelines for Accessible Software Design • Expose relevant Accessibility properties • Support Active Accessibitliy Navigation • Support Active Accessibitliy Hit Testing • Generate WinEvents
Accessible Software Design Guidelines • Microsoft Windows "Optimized for Accessibility“ • Support standard system size, color, font, and input settings • Ensure compatibility with the High Contrast option • Enable programmatic access to user interface elements and text • Provide keyboard access to all features • Expose the location of the keyboard focus • Provide user-selectable equivalents for non-text elements • Do not rely exclusively on sound to convey any information • Avoid flashing elements • Create accessible documentation about accessibility features
Accessibility Properties • Microsoft Active Accessibility Object Properties • Name • Description • Role • KeyboardShortcut • Parent • Value • State • ChildCount • Child • DefaultAction • …
Microsoft Active Accessibility Requirements • Support NavigationProvidesaccessibility clients with the ability to move through the Active Accessibility object hierarchy and dynamically discover what user interface (UI) elements and objects are available. • Support Hit TestingFor accessibility clients to retrieve object information for a UI element at a given point on the screen. • Generate WinEventsFor accessibility clients to react on, e.g. focus change of a control within a window.
PowerBuilder Accessibility • As an MSAA server PowerBuilder exposes UI information in order to provide accessibility aids (MSAA clients) with standard programmatic access to its controls. • Standard PowerBuilder controls, as inherited from Microsoft standard controls, did already expose default MSAA information. Certain properties can now be overridden. • PowerBuilder DataWindow, as a custom control has been enhanced to support MSAA.
Accessibility Properties • New Accessibility Properties of PowerBuilder Controls: • AccessibleName • AccessibleDescription • AccessibleRole • Example:sle_1.AccessibleName = “ShopName” • Enumerated type AccessibleRole
PowerBuilder and Provision (a) • Keyboard AccessAll actions that can be identified or labelled with text are required to be executable from a keyboard. • PowerBuilder Navigation and Shortcut Settings • Specifying the Tabordersle_1.Taborder = 10 • Setting the Accelerator (shortcut)sle_1.Accelerator = ASC(“F") • Shortcuts for unlabelled controlscb_1.Text = “&Save”
PowerBuilder and Provision (b) • Accessibility FeaturesApplications shall not disrupt or disable activated features of operating systems or other products that are identified as accessibility features. • For example, using the color scheme set by the user cannot be changed and/or turned off without allowing the user the ability to reset to their defaults. • In summary, if your application can change an operating system accessibility feature, you must provide an interface for the user to reset that feature. • External Function SystemParametersInfoW PowerBuilder can retrieve the current Windows Accessibility settings by calling the external function, e.g. getting the sticky keys option:FUNCTION boolean SystemParametersInfoW(UINT uiAction, UINT uiParam, ref stickykeys sk, UINT fWinIni) LIBRARY "USER32.dll“ret = SystemParametersInfoW(GETSTICKYKEYS, ul_size, sk, 0)
PowerBuilder and Provision (c) • Input FocusA well-defined on-screen indication of the current focus shall be provided. The focus shall be programmatically exposed so that assistive technology can track focus and focus changes. • Focus is set and programmatically exposed through Windows events when the user tabs, on mouse clicks, and/or accelerator keys, there is no explicit function required. • PowerBuilder Focus Settings • p_1.FocusRectangle = TRUE • p_1.SetFocus( ) • If the program specifically uses the SetFocus( )function, then the focus is automatically programmatically exposed and available toassistive technologies.
PowerBuilder and Provision (d) • Object InformationSufficient information about a user interface element including the identity, operation and state of the element shall be available to assistive technology.When an image represents a program element, the information conveyed by the image must also be available in text. • PowerBuilder PropertiesMost PowerBuilder controls areinherited from standard Windowscontrols, which supply default Active Accessibility support. • AccessibleName • AccessibleDescription • AccessibleRole can be set explicitly. • Examplep_1.AccessibleName = “Fish”
PowerBuilder and Provision (d) Continued • PowerBuilder Object Information • Viewed with Microsoft AccExplorer
PowerBuilder and Provision (e) • Bitmap ImagesWhen bitmap images are used to identify controls, status indicators, or other programmatic elements, the meaning assigned to those images shall be consistent.It is the developer’s responsibility to ensure that any image utilized in an application has a consistent meaning. • PowerBuilder Image ControlsPicture, PictureButton, PictureHyperlink, PictureListBox etc. controls and supplies a customizable range of images that simplify consistent usage. • Code Example:pb_1.PictureName = "c:\pictures\mypic.bmp"
PowerBuilder and Provision (f) • Textual InformationTextual information shall be provided through operating system functions for displaying text.The minimum information that shall be made available is text content, text input caret location and text attributes. • PowerBuilder Text provides a variety of controls that allow the display of text on the screen. Internally these controls use the standard Windows functions to display the text on the screen. • mle_1.text = “Textual information shall be provided through operating system functions.” • mle_1.SetFocus() • Sets system focus to a specific control • Sets system caret
PowerBuilder and Provision (g) • User Selected AttributesApplications shall not override user selected contrast and color selections and other individual display attributes. • PowerBuilder User SettingsExample:Application should be using the Windows system colors settings.Viewed in High Contrast Black:
PowerBuilder and Provision (h) • AnimationWhen animation is displayed, the information shall be displayable in at least one non-animated presentation mode at the option of the user. • PowerBuilder Animation Control E.g. when using the animation control, the content of the displayed animations could also be described as plain text.
PowerBuilder and Provision (i) • Color CodingShall not be used as the only means of conveying information, indicating an action, prompting a response, or distinguishing a visual element. • PowerBuilder Color PropertiesCode Example, e.g. use several properties to highlight data items in a DataWindow • dw_1.Object.quantity.Color = &"0~tif ( quantity < 5, rgb(255,0,0), rgb(0,0,0))“ • dw_1.Object.quantity.Font.Weight = &"0~tif ( quantity < 5, 700, 400)" • dw_1.Object.quantity.Font.Underline = &"0~tif ( quantity < 5, 1, 0)" • dw_1.Object.quantity.Font.Height = &"0~tif ( quantity < 5, -12, -10)"
PowerBuilder and Provision (j) • Color and Contrast SettingsWhen a product permits a user to adjust color and contrast settings, a variety of color selections capable of producing a range of contrast levels shall be provided. • PowerBuilderColor Selection DialogCodeExamplelong ll_color// initialize to blackll_color = 0// display color dialog ChooseColor(ll_color)
PowerBuilder and Provision (k) • Flashing or Blinking TextSoftware shall not use flashing or blinking text, objects, or other elements having a flash or blink frequency greater than 2 Hz and lower than 55 Hz.Intended to prevent applications from inducing seizures by users prone to having them. • PowerBuilderdoes not provide standard functionality for flashing and blinking.
PowerBuilder and Provision (l) • Electronic FormsWhen electronic forms are used, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues. • PowerBuilder ApplicationIf an application conforms to all other provisions discussed, then it will also conform to this.
PowerBuilder 508 Compliance • Provide keyboard access for all actions. • Make sure an application provides a visual focus indicator. • Set AccessibleName property. • Provide text through standard static text controls. • Use Windows system colors. • Use color as an enhancement, not as the only way to convey information or indicate an action.
Documentation and URLs • http://www.access-board.gov/sec508/guide/ • http://www.section508.gov/IRSCourse/ • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msaa/msaapndx_2a05.asp • Appendix A: Supported User Interface Elements Reference • PowerBuilder Application TechniquesChapter 36 Building Accessible Applications • Accessible PowerBuilder Documentation is in the works • Downloads (MSAA Redistributable and Tools)http://msdn.microsoft.com/library/default.asp?URL=/downloads/list/accessibility.asp