Techniques for WCAG 2.0

On this page:

-

# F37: Failure of Success Criterion 3.2.2 due to launching a new window without prior warning when the status of a radio button, check box or select list is changed

## Applicability

HTML and XHTML

This failure relates to:

- Success Criterion 3.2.2 (On Input)
  - How to Meet 3.2.2 (On Input)
  - Understanding Success Criterion 3.2.2 (On Input)

## User Agent and Assistive Technology Support Notes

Internet Explorer 6 also triggers the onclick event when a radio button with onclick receives focus; adding other event handlers (onxxx attributes) to prevent this does not work.

## Description

This document describes a failure that occurs when changing the status of a radio button, a check box or an item in a select list causes a new window to open. It is possible to use scripting to create an `input` element that causes a change of context (submit the form, open a new page, a new window) when the element is selected. Developers can instead use a submit button (see G80: Providing a submit button to initiate a change of context) or clearly indicate the expected action.

## Examples

### Failure Example 1:

The example below fails the Success Criterion because it processes the form when a radio button is selected instead of using a submit button.

Example Code:

    <script type="text/JavaScript">
      function goToMirror(theInput) {
       var mirrorSite = "http://download." + theInput.value + "/";
       window.open(mirrorSite);
      }
    </script>
      …
    <form name="mirror_form" id="mirror_form" action="" method="get">
           <p>Please select a mirror download site:</p>
           <p>
           <input type="radio" onclick="goToMirror(this);" name="mirror"
           id="mirror_belnet" value="belnet.be" />
           <label for="mirror_belnet">belnet (<abbr>BE</abbr>)</label><br />
           <input type="radio" onclick="goToMirror(this);" name="mirror"
           id="mirror_surfnet" value="surfnet.nl" />
           <label for="mirror_surfnet">surfnet (<abbr>NL</abbr>)</label><br />
           <input type="radio" onclick="goToMirror(this);" name="mirror"
           id="mirror_puzzle" value="puzzle.ch" />
           <label for="mirror_puzzle">puzzle (<abbr>CH</abbr>)</label><br />
           <input type="radio" onclick="goToMirror(this);" name="mirror"
           id="mirror_voxel" value="voxel.com" />
           <label for="mirror_voxel">voxel (<abbr>US</abbr>)</label><br />
           </p>
    </form>

## Resources

No resources available for this technique.

## Related Techniques

(none currently listed)

## Tests

### Procedure

1. Find each form in a page.

2. For each form control that is a radio button, check box or an item in a select list, check if changing the status of the control launches a new window.

3. For each new window resulting from step 2, check if the user is warned in advance.

### Expected Results

If step #3 is false, then this failure condition applies and content fails the Success Criterion.

- Top
- Contents
- Intro
- Previous: Failure F36
- Next: Failure F38