From HTML WG Wiki
Jump to: navigation, search

Provide accessibility information for driving screen magnifier tracking of focus rectangle and caret selection and to prevent blink rate seizures

The following is a Change Proposal for Section 10 Focus management of the HTML Canvas 2D Context.

Resolves bug 8722

  • Proposal Editor: Steve Faulkner (
  • Spec Change Editor: Richard Schwerdtfeger (

Date: June 10 2010.

Please address feedback to the Public Canvas API mailing list ( and the HTML Accessibility Task Force (


Modify the focus management section of the HTML canvas 2d Context specification to specify what implementers need to do to build in the support required for assistive technology.


Currently the spec does not include requirements for implementers on how to provide accessible focus rectangles and editing carets or selection positions. Such information is required to ensure interoperability with assistive technology, in particular screen magnifiers.


The details of the proposal are contained in the form of spec ready text that has been included in a copy of the W3C Working Draft 4 March 2010 of the HTML Canvas 2d Context specification.

These changes encompass:

  • A change to drawFocusRing() to provide the equivalent of a drawing rectangle to best approximate a rectangle representing the best fit bounding rectangle for the focus.
  • A improvement to the specification that clarifies how and when a custom ring should be drawn based on system parameters specified by the user. For example, some operating systems support high contrast focus rings.
  • A new method, called setCaretSelectionRect(), to provide caret selection rectangle to the user agent to allow it to drive a screen magnifier. Some operating systems, such as Windows employ caret tracking to follow content selection whereas others do not (such as Macs). This method provides a single vehicle to drive magnification on both systems.
  • A new method to ascertain the system blink rate, called caretBlinkRate(). Excessive blink rates, such as those over 3 times a second can cause epileptic seizures in some users. To address this issue the user will configure the operating system blink rate for carets or selections to one which does not induce a seizure. User agents must support this method so that authors can determine the system blink rate and adjust their canvas blink rate to match that set in the operating system.

The modified parts are denoted by the marker <ZZ> at the start and </ZZ> at the end.

HTML Canvas 2d Context specification (modified)

This change when combined with the change proposal to canvas covering keyboard navigation using the canvas subtree completes the change proposal to address Issue 74.


Positive Effects

  • States clearly what implementors are required to do to provide focus and caret information to assistive technology.
  • Clarifies drawFocusRing()
  • Provides a vehicle to authors to establish the user's set blink rate to avoid seizures and match the system blink rate set in the operating system.

Negative Effects

  • Places additional requirements on implementors, the current version of the spec does not, to ensure interoperability with assistive technology and to avoid inducing seizures.
  • Makes the drawFocusRing() method more complicated for developers as they need to provide a rectangle vs. a position.

Conformance Classes Changes





  • List references