Title: PWB511
1PWB511 Creating Section 508 Compliant
Applications with PowerBuilder
Elke Sacher Senior Software Engineer Elke.Sacher_at_s
ybase.com August 15-19, 2004
2The Enterprise. Unwired.
3The Enterprise. Unwired.
Industry and Cross Platform Solutions
Unwire People
Unwire Information
Manage Information
- 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
4Accessibility
- 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
5Software 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
6Assistive 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.
7U.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/
8Terms
- 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 in the creation, conversion, or
duplication of data or information. - Undue burdenUndue burden means significant
difficulty or expense.
9Section 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.
10Section 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
11Section 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
12Software 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.
13Software 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.
14Software 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.
15Software 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.
16Windows 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.
17Windows 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.
18Windows 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 CTRLALTDEL, 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.
19Microsoft 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.
20Microsoft 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
21Accessible 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
22Accessibility Properties
- Microsoft Active Accessibility Object Properties
- Name
- Description
- Role
- KeyboardShortcut
- Parent
- Value
- State
- ChildCount
- Child
- DefaultAction
-
23Microsoft Active Accessibility Requirements
- Support NavigationProvides accessibility 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.
24PowerBuilder 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.
25Accessibility Properties
- New Accessibility Properties of PowerBuilder
Controls - AccessibleName
- AccessibleDescription
- AccessibleRole
- Examplesle_1.AccessibleName ShopName
- Enumerated type AccessibleRole
26PowerBuilder 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.Accelerat
or ASC(F") - Shortcuts for unlabelled controlscb_1.Text
Save
27PowerBuilder 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
optionFUNCTION boolean SystemParametersInfoW(UI
NT uiAction, UINT uiParam, ref stickykeys sk,
UINT fWinIni) LIBRARY "USER32.dllret
SystemParametersInfoW(GETSTICKYKEYS, ul_size, sk,
0)
28PowerBuilder 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.
29PowerBuilder 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
30PowerBuilder and Provision (d) Continued
- PowerBuilder Object Information
- Viewed with Microsoft AccExplorer
31PowerBuilder 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
developers 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 Examplepb_1.PictureName
"c\pictures\mypic.bmp"
32PowerBuilder 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
33PowerBuilder and Provision (g)
- User Selected AttributesApplications shall not
override user selected contrast and color
selections and other individual display
attributes. - PowerBuilder User SettingsExampleApplication
should be using the Windows system colors
settings.Viewed in High Contrast Black
34PowerBuilder 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.
35PowerBuilder 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 "0tif ( quantity
lt 5, rgb(255,0,0), rgb(0,0,0)) - dw_1.Object.quantity.Font.Weight "0tif (
quantity lt 5, 700, 400)" - dw_1.Object.quantity.Font.Underline "0tif (
quantity lt 5, 1, 0)" - dw_1.Object.quantity.Font.Height "0tif (
quantity lt 5, -12, -10)"
36PowerBuilder 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 DialogCode
Examplelong ll_color// initialize to
blackll_color 0// display color dialog
ChooseColor(ll_color)
37PowerBuilder 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. - PowerBuilder does not provide standard
functionality for flashing and blinking.
38PowerBuilder 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.
39PowerBuilder 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.
40Documentation 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.a
sp?URL/downloads/list/accessibility.asp
41Questions