User events and changes of context

Success criteria involved

3.2 L1 SC1: Any change of context is implemented in a manner that can be programmatically determined.

3.2 L2 SC2: When any component receives focus, it does not cause a change of context.

3.2 L2 SC3: Changing the setting of any input field does not automatically cause a change of context.

3.2 L3 SC2: Changes of context are initiated only by user action.

Definitions

change of context
A change of user agent, viewport, user interface controls, or focus; or complete change of content.
programmatically determined
programmatically determined means that the specific value can be determined in a standard, machine or software readable form.

Implications

In the context of HTML / JavaScript

Which user action may result in which change of context?
user actions (events) changes of context
open new browser open another type of UA close browser move viewport change size of viewport scroll viewport change focus load completely new content
tab (keypress, blur, focus) 3.2 L2 SC2 3.2 L2 SC2 3.2 L2 SC2 3.2 L2 SC2 3.2 L2 SC2 3.2 L2 SC2 3.2 L2 SC2 3.2 L2 SC2
activate link (click, keypress)
change changeable form control (change) 3.2 L2 SC3 3.2 L2 SC3 3.2 L2 SC3 3.2 L2 SC3 3.2 L2 SC3 3.2 L2 SC3 3.2 L2 SC3 3.2 L2 SC3
fill text form control (keypress)
mark text in text form control (select)
activate button (click, keypress)
activate reset button (click, keypress, reset)
activate submit button (click, keypress, submit)
hover mouse (mousemove, mouseout, mouseover)
other (dblclick, load, unload)

Note: The keydown, keyup events could be added to keypress, the mousedown, mouseup events could be added to click.

Note: A change of UI controls cannot occur without opening a new browser.

a/@href, area/@href, link/@href
changeable form control
input[@type='checkbox'], input[@type='file'], input[@type='password'], input[@type='radio'], input[not(@type) or @type='text'], select, textarea
text form control
input[@type='password'], input[@type='text'], input[not(@type], textarea
submit button
button[not(@type) or @type='submit'], input[@type='submit'], input[@type='image']
reset button
button[@type='reset'], input[@type='reset']
button
button[@type='button'], input[@type='button']

How to change the context

open new browser
open another type of UA

This depends on whether the browser can handle the resource's media type nativelyor needs an external program or a plugin.

close browser
JavaScript: window.close()
move viewport
change size of viewport
scroll viewport
change UI controls
JavaScript: window.open(url, name[, windowFeatures])
change focus
load completely new content