SL22: Supporting Browser Zoom in Silverlight

Important Information about Techniques

See Understanding Techniques for WCAG Success Criteria for important information about the usage of these informative techniques and how they relate to the normative WCAG 2.0 success criteria. The Applicability section explains the scope of the technique, and the presence of techniques for a specific technology does not imply that the technology can be used in all situations to create content that meets WCAG 2.0.

User Agent and Assistive Technology Support Notes

Description

The objective of this technique is to support or anticipate existing
browser zoom features effectively when users interact with the Silverlight
application. This technique explains how the Silverlight content area
reacts to the browser zoom feature implemented by some user agent hosts.
Silverlight content and layout properties are based on physical screen
pixel measurements. When the browser zoom is engaged, Silverlight content
scales correctly for the zoom factor, and uses the same zoom factor
as any surrounding HTML content.

Browser zoom is relevant for accessibility and Silverlight because
it is likely to be the zoom /scaling feature enabled by the browser
host that Web technology users are the most familiar with as a technique
for increasing the text size in Web content.

Legacy behavior in Silverlight version 2

Built-in support for browser zoom was introduced as a feature in Silverlight
version 3. Older documents on the Web might describe techniques that
were relevant for Silverlight version 2, where dealing with browser
zoom required JavaScript handling of the Resized event,
and developers manually applied a ScaleTransform to Silverlight
content to scale it up. Silverlight has a "quirks mode" that
detects existing handlers that might still use the older techniques.
Built-in zoom not active in these cases, so that applications can avoid
doubling or otherwise mishandling the user agent's zooming behavior.

Deliberately disabling browser zoom in Silverlight applications

Silverlight also provides the ability to disable the built-in browser
zoom handling and rendering behavior. This is sometimes done in order
to suppress some of the aliasing and distortion artifacts that host-level
scaling can introduce, particularly for video content or certain uses
of text. In these cases, application authors might consider other Silverlight
techniques for scaling the user interface, perhaps specifically only
for the text elements on a page. When an application disables the built-in
zoom behavior and rendering for Silverlight content, the browser still
retains its zoom settings, and that setting applies to other content
outside of Silverlight such as the hosting HTML.

Examples

Example 1: Verifying browser zoom, and checking the zoom factor

This example has a UI defined in XAML and logic defined in C#. The
UI shows the zoom factor, and also demonstrates what happens when built-in
browser zoom handling is deliberately disabled. Note that the zooming
factor as reported by the API is still retained even when Silverlight
built-in zoom scaling is disabled deliberately. The following is the
XAML UI:

Tests

Procedure

Using a browser that supports Silverlight, open an HTML page that
references a Silverlight application through an object tag. The browser
being used for the test must support a browser zoom feature, and
the feature must be turned on as a user preference.

Verify that the Silverlight application enables auto zoom (no
Silverlight application-specific code or markup has set EnableAutoZoom
API to false).

Test the zooming feature of the user agent. Verify that browser
zoom factors apply to the Silverlight content.

Expected Results

#2 and #3 are true.

If this is a sufficient technique for a success criterion, failing this test procedure does not necessarily mean that the success criterion has not been satisfied in some other way, only that this technique has not been successfully implemented and can not be used to claim conformance.