W3C logoWeb Accessibility Initiative (WAI)         logo

WAI: Strategies, guidelines, resources to make the Web accessible to people with disabilities

DRAFT: Accessibility Supported Uses for Microsoft Silverlight 2.0

October, 2008

Summary

This document describes initial test results for Accessibility Supported Uses of Microsoft Silverlight 2.0. These results are not complete and this document is a draft. It has been provided to the WCAG working group as an example of how a vendor might document the AT support of a new technology, as part of the WCAG 2.0 implementation package. This document also lists the titles of several techniques that could be used to provide accessible content with Silverlight 2.0.

Design goals around Accessibility support:

Silverlight 2.0 was designed to provide accessibility support using the User Interface Automation API. This API is available natively on Windows Vista, and can be installed on earlier versions of Windows as part of .Net Framework 3.5. Bridges are available to Microsoft Active Accessibility (MSAA), which is an earlier Windows Accessibility API, and to Linux ATK. AT supporting those APIs should work with Silverlight.

Testing Methodology

Testing was done against an interactive application designed to exercise functionality that is difficult to make accessible in HTML and to demonstrate Level A and AA WCAG 2.0 requirements. A separate application was built to demonstrate Multimedia equivalents including captions, audio description and American Sign Language translation. Testing was also done against the set of controls that ships with Silverlight 2.0.

During initial development, testing was done using the UIA Verify tool to verify that information was being properly exposed to UIA, and with the Inspect32 tool to verify that information was being passed from UIA to MSAA correctly via the Windows UIA to MSAA Bridge.

Once we were confident that the information was exposed as expected via the APIs, testing was done on Windows Vista and XP with several Microsoft Active Accessibility based AT, and on Windows Vista using its built in accessibility features which rely on UIA. AT tested included: JAWS 9, NVDA, Windows Vista Narrator, Windows Vista Magnifier, and Windows Vista Speech. Testing was also done to ensure that Silverlight applications could be operated from the keyboard without assistive technology. This document lists 4 permutations, as needed for WCAG 2.0 Candidate Recommendation completion.

Summary of Results

Summary of general test results

Information including name, role, value and state was exposed to both UIA and MSAA AT for most controls. It was possible to operate the UI of most controls from the keyboard in every permutation we tested.

 In all the screen-readers we tried, non-focusable text areas and images were not read. It is fairly easy for the Silverlight application developer to work around this by making all text areas focusable and putting them in the tab sequence. Assistive Technology vendors can also eliminate this problem by implementing text-handling features for Silverlight controls as they do for other types of applications. These non-focusable elements are listed as partial support.

Summary of AT Permutation #1

Windows XP with .Net Framework 3.5, JAWS 9, Internet Explorer 7

Usage notes:

AT Permutation #2

Windows Vista, NVDA, FireFox 2.0

Usage notes:

AT Permutation #3

AT Permutation #4

Accessibility Supported Use Cases by Success Criteria

WCAG 2.0 Single A Success Criteria

Success Criteria

Technique

Use

Permutation 1:

Windows XP*, Internet Explorer 7, JAWS 9

Permutation 2:

Windows Vista, Firefox 2.0, NVDA

Permutation 3:

Windows Vista, Internet Explorer 8, Windows Narrator

Permutation 4:

Windows Vista, Firefox, Windows Magnifier

1.1.1

SL 1 : Image equivalent

<Image Automation
Properties
.Name=
"text equivalent"

Partial

Partial

Partial

n/a

1.3.1

SL2: Grouping Elements

stackpanel

Supported

Supported Supported

Supported

1.3.1

SL2: Grouping Elements

Grid

Supported

Supported Supported Supported

1.3.1

SL2: Grouping Elements

Items Control

Supported

Supported

Supported

Supported

1.3.1

SL3: User Controls

User control dialog

Supported

Supported

Supported

Supported

1.3.2

SL4: XAML Order

Placing elements in XAML order

Supported

Supported

Supported

n/a

1.3.2

SL5: custom reading order

Automation
Properties.
Name

Supported

Supported

Supported

n/a

2.1.1

SL7: using built in controls

button

Supported

Supported

Supported

Supported

2.1.1

SL7: using built in controls

checkbox

Supported

Supported

Supported

Supported

2.1.1 SL7: using built in controls Calendar Partial Partial Partial not supported

2.1.1

SL7: using built in controls

combobox

Partial

Partial

Supported

Supported

2.1.1 SL7: using built in controls comboboxitem Partial Partial Supported Supported

2.1.1

SL7: using built in controls

hyperlink Button

Supported

Supported

Supported

Supported

2.1.1

SL7: using built in controls

password box

Supported

Supported

Supported

Partial

2.1.1

SL7: using built in controls

radio button

Supported

Supported

Supported

Supported

2.1.1

SL7: using built in controls

textblock

Partial

Partial

Partial

not supported

2.1.1

SL7: using built in controls

textbox

Supported

Supported

Supported

Supported

2.1.1

SL7: using built in controls

Toggle button

Supported

Supported

Supported

Supported

2.1.1

SL8: inheriting from an existing control

Inheriting keyboard behavior

Supported

Supported

Supported

Supported

2.1.1

SL9: custom controls

AutomationPeer

Supported

Supported

Supported

Supported

2.1.1 SL3: user controls scoping keyboard behavior to a user control Supported Supported Supported Supported

2.4.2

SL15: page title in HTML

Html <title>

Supported

Supported

Supported

n/a

2.4.3

SL4: XAML Order

placing elements in order in the XAML

Supported

Supported

Supported

n/a

2.4.3

SL17: tab Navigation

using the tabNavigation attribute

Supported

Supported

Supported

n/a

4.1.2

SL7: using built in controls

button

Supported

Supported

Supported

n/a

4.1.2

SL7: using built in controls

checkbox

Supported

Supported

Supported

n/a

4.1.2

SL7: using built in controls

combobox

partial

Partial

Supported

n/a

4.1.2 SL7: using built in controls comboboxitem partial Partial Supported n/a

4.1.2

SL7: using built in controls

hyperlink Button

Supported

Supported

Supported

n/a

4.1.2

SL7: using built in controls

password box

Supported

Supported

Supported

n/a

4.1.2

SL7: using built in controls

radio button

Supported

Supported

Supported

n/a

4.1.2 

SL7: using built in controls

textblock

Partial

Partial

Partial

n/a

4.1.2

SL7: using built in controls

textbox

Supported

Supported

Supported

n/a

4.1.2

SL8: Inheriting from an existing control

Inheriting API support

Supported

Supported

Supported

n/a

4.1.2

SL9: custom controls

Using ApplicationPeer

Supported

Supported

Supported

n/a

4.1.2

SL3: User controls

reuse of objects in user controls

Supported

Supported

Supported

n/a

WCAG 2.0 Double A Success Criteria

Most AA success criteria deal with direct accessibility and do not rely on AT support.

Success Criteria

Technique

Use

Permutation 1:

Windows XP*, Internet Explorer 7, JAWS 9

Permutation 2:

Windows Vista, Firefox 2.0, NVDA

Permutation 3:

Windows Vista, Internet Explorer 8, Windows Narrator

Permutation 4:

Windows Vista, Firefox, Windows Magnifier

3.1.2

SL26: language attribute

         

*UIA support on Windows XP requires .Net Framework 3.5, which can be downloaded for free from Microsoft at the following URL: Download details- .NET Framework 3.5.

Silverlight Techniques and Accessibility Support

Level A Success Criteria

1.1.1 Text Equivalents

1.2.1 Audio Video Only

1.2.2 Captioning (pre-recorded)

1.2.3 Audio Description

1.3.1 Info and Relationships

1.3.2 Meaningful Sequence

1.3.3 Sensory Characteristics

1.4.1 Use of color

1.4.2 Audio control

2.1.1 Keyboard

2.1.2 Keyboard Trap

2.2.1 Timing adjustable

2.2.2 Pause, Stop, Hide

2.3.1 3 Flashes or less

2.4.1 Bypass blocks

2.4.2 Page Titled

2.4.3 Focus Order

2.4.4 Link Purpose

3.1.1 Language of Page

3.2.1 On focus

3.2.2 On input

3.3.1 Error id

3.3.2 Labels or instructions

4.1.1 Parsing

4.1.2 Name, Role, Value

Level AA Success Criteria

1.2.4 Captions Live

1.2.5 Audio Description

1.4.3 Contrast ratio

1.4.4 Resize text

1.4.5 Images of text

2.4.5 Multiple ways

2.4.6 Headings and labels

2.4.7 Focus visible

3.1.2 Languages of parts

3.2.3 Consistent navigation

3.2.4 Consistent identification

3.2.5 Change on request

3.2.6 Error suggestion

3.2.7 Error prevention