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.
In the context of HTML / JavaScript
| 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/@hrefinput[@type='checkbox'], input[@type='file'], input[@type='password'], input[@type='radio'], input[not(@type) or @type='text'], select, textareainput[@type='password'], input[@type='text'], input[not(@type], textareabutton[not(@type) or @type='submit'], input[@type='submit'], input[@type='image']button[@type='reset'], input[@type='reset']button[@type='button'], input[@type='button']@targetwindow.open(url, name[, windowFeatures])This depends on whether the browser can handle the resource's media type nativelyor needs an external program or a plugin.
window.close()window.moveBy(horizontal, vertical)window.moveTo(x-coordinate, y-coordinate)window.resizeBy(horizontal, vertical)window.resizeTo(outerWidth, outerWidth)window.innerHeightwindow.innerWidthwindow.outerHeightwindow.outerWidthwindow.scrollBy(horizontal, vertical)window.scrollTo(x-coordinate, y-coordinate)window.open(url, name[, windowFeatures])#someOtherFragment in the same documentotherElement.focus()this.blur()window.location.reload()window.location.hostwindow.location.hostnamewindow.location.hrefwindow.location.pathnamewindow.location.portwindow.location.protocolwindow.location.searchwindow.location.assign(url)window.location.replace(url)window.back()window.forward()window.home()history.back()history.forward()history.go(delta)history.go(location)