# Understanding Change on Request

## In brief

Goal
  Users have full control of major content changes.
What to do
  Provide ways for users to trigger or turn off changes of context.
Why it's important
  Content that behaves predictably is especially important to people with disabilities.

## Intent of Change on Request

The intent of this Success Criterion is to encourage design of Web content that gives users full control of changes of context. This Success Criterion aims to eliminate potential confusion that may be caused by unexpected changes of context such as automatic launching of new windows, automatic submission of forms after selecting an item from a list, etcetera. Such unexpected changes of context may cause difficulties for people with motor impairments, people with low vision, people who are blind, and people with certain cognitive limitations.

Some types of change of context are not disruptive to some users, or actively benefit some users. For example, single-switch users rely on context changes that are animated by the system, and the preferences of low-vision users may vary depending on how much of the content they can see at once and how much of the session structure they can retain in working memory. Some types of content, such as slide shows, require the ability to change context in order to provide the intended user experience. Content that initiates changes of context automatically only when user preferences allow can conform to this Success Criterion.

It is possible for more than one change of context to occur simultaneously. For example, clicking on a link which automatically opens a new window is an example of two separate changes of context related to the change in content and to the change in the viewport (window). The change in the content in this case is initiated by user request when they click on the link, but unless the user can be aware that the link will open in a new window then that change of context cannot be regarded as user-initiated.

## Benefits of Change on Request

- Individuals who are unable to detect changes of context or who may not realize that the context has changed are less likely to become disoriented if they initiate the change themselves. For example:

  - individuals who are blind or have low vision may have difficulty knowing when a visual context change has occurred, such as a new window popping up. In this case, warning users of context changes in advance minimizes confusion when the user discovers that the back button no longer behaves as expected.
- Some individuals with low vision, with reading and intellectual disabilities, and who have difficulty interpreting visual cues may benefit from additional cues in order to detect changes of context.
- People with certain cognitive limitations do not get confused if automatic redirects are performed by the Web server instead of the browser.

## Examples of Change on Request

an "update now" button
  Instead of automatically updating the content, the author provides an "Update now" button that requests a refresh of the content.
An automatic redirection
  Users are automatically redirected from an old page to a new page in such a way that they never realize the redirect has occurred.

## Resources for Change on Request

- Use standard redirects: don't break the back button! (W3C QA Tip).
- HTTP/1.1 Status Code Definitions: Redirection 3xx.

## Techniques for Change on Request

### Sufficient Techniques for Change on Request

#### Situation A: If the Web page allows automatic updates:

- Providing a mechanism to request an update of the content instead of updating automatically

#### Situation B: If automatic redirects are possible:

- Implementing automatic redirects on the server side instead of on the client side

- Using an instant client-side redirect using one of the following techniques:

  - Using meta refresh to create an instant client-side redirect

#### Situation C: If the Web page uses pop-up windows:

- Including pop-up windows using one of the following techniques:

  - Using the target attribute to open a new window
  - Using script to open a new window

#### Situation D: If using an onchange event on a select element:

- Using an onchange event on a select element without causing a change of context

### Additional Techniques (Advisory) for Change on Request

- Opening new windows and tabs from a link only when necessary

### Failures for Change on Request

- Failure due to launching a new window when a user enters text into an input field
- Failure due to complete change of main content through an automatic update that the user cannot disable from within the content
- Failure due to changing the context when the user removes focus from a form element
- Failure due to opening windows that are not requested by the user
- Failure of Success Criterion 3.2.1 and 3.2.5 due to opening a new window as soon as a new page is loaded
- Failure due to using meta redirect with a time limit
- Failure due to using meta refresh with a time limit