W3C

Results of Questionnaire ISSUE-131: Should we add a caret location API to canvas? - Straw Poll for Objections

The results of this questionnaire are available to anybody.

This questionnaire was open from 2011-03-24 to 2011-03-31.

6 answers have been received.

Jump to results for question:

  1. Objections to the Change Proposal to modify existing Canvas 2D API caret and focus ring support to drive screen magnification
  2. Objections to the Change Proposal to have a single Canvas API for caret positioning and focus ring support

1. Objections to the Change Proposal to modify existing Canvas 2D API caret and focus ring support to drive screen magnification

We have a Change Proposal to modify the existing Canvas 2D API caret and focus ring support to drive screen magnification. If you have strong objections to adopting this Change Proposal, please state your objections below.

Keep in mind, you must actually state an objection, not merely cite someone else. If you feel that your objection has already been adequately addressed by someone else, then it is not necessary to repeat it.

Details

Responder Objections to the Change Proposal to modify existing Canvas 2D API caret and focus ring support to drive screen magnification
Ian Hickson This proposal doesn't support having the user agent determine if the user prefers system rings vs custom rings. In fact, it makes it more likely that authors will never use the API since there is basically no benefit to doing so other than accessibility, which is rarely a good enough motivator in practice. The alternative proposal is designed to encourage use even by authors not looking to write accessible pages, as it provides useful subtle benefits like automatically determining if the focus ring should be drawn.

The proposal's handling of carets is incomplete. If we are to support caret drawing, we should do so using an API that actually supports native caret drawing, e.g. the Windows wide-caret feature. As it stands, the feature allows the user to set the width of the caret but does not support native caret drawing.
Richard Schwerdtfeger
Steve Faulkner
John Foliot
Gregory Rosmaita
Theresa O'Connor The evidence so far is that, when Web authors resort to using <canvas> for custom widgets, they do so to have complete control over the UI of such widgetry. This Change Proposal, by removing the canDrawCustom parameter of the focus ring API, forces authors to take the built-in focus drawing if they want to report the focus to the accessibility layer. The likely result would be that Web authors who want to draw custom focus rings will do so anyway, but will no longer be able to report such custom focus to the a11y layer, thus reducing the accessibility of widgets built with <canvas>.

Yet under this Change Proposal the caret location API doesn't do any drawing, it only reports the location of the caret to the a11y layer. So Web authors *have to* draw their own, custom carets, without being able to use the system defaut caret drawing. The focus ring API, however, would do the opposite: as described above, the proposed focus ring API lacks the ability of Web authors to draw custom focus rings and have them reported to the A11Y layer. So this CP introduces an undesirable inconsistency between the focus ring API and the caret location API.

2. Objections to the Change Proposal to have a single Canvas API for caret positioning and focus ring support

We have a Change Proposal to have a single Canvas API for caret positioning and focus ring support.

Keep in mind, you must actually state an objection, not merely cite someone else. If you feel that your objection has already been adequately addressed by someone else, then it is not necessary to repeat it.

Details

Responder Objections to the Change Proposal to have a single Canvas API for caret positioning and focus ring support
Ian Hickson
Richard Schwerdtfeger I reviewed this "non-change" proposal and the editor makes a case that is frought with errors:

His rational is here: http://lists.w3.org/Archives/Public/public-html/2011Mar/0521.html

> It's important when designing APIs driven by accessibility needs to ensure
> that authors will use it even if they're not thinking about accessibility.
>
While I could not agree more, that is not true in this case. The existing drawFocusRing has an x,y coordinate that draws nothing. It simply provides a pixel position that drives a drives a magnifier without actually drawing the caret removing any benefit of having merged a caret position and a focus ring. This version of focus ring also forces the author to have to draw a focus ring when they really want to drive the magnification position for the caret. Developers almost never draw a caret and a focus ring at the same time. So, this makes even more work for the author. This API should have garnered more stringent review before being exposed in the Canvas 2D API spec.

> To do this, drawFocusRing() brings disparate low-level APIs into one
> high-level API, by combining caret positioning with an API that is useful
> to authors not attempting to use accessibility APIs, namely the drawing of
> focus rings in a manner that follows platform conventions.

While the drawFocusRing() attempts to follow platform conventions it does not force it to do so. In fact, if the author wants to draw their own focus ring the API returns without drawing the focus ring and the author can then draw their own without notifying a magnifier of the focus ring location. In short the API does even fully meet the goal of driving a magnifier.

The counter proposal to leave things as they are also fails to address the additional use cases and issues raised by the canvas accessibility subteam as listed in the rationale that are not addressed by the original document:

http://www.w3.org/html/wg/wiki/ChangeProposals/CaretSelection#Rationale

1. DrawFocusRing is a single API that is intended to drive both drawing of a focus ring while providing a caret position. Accessibility API services for caret position and focus rings are separate APIs as developers don't draw the caret and focus ring at the same time. Consequently, the API for each needs to be separated out.
2. DrawFocusRing does not ensure that the focus ring, drawn, allows the browser to follow focus ring conventions for the OS platform that may also reflect user's preferences. It allows the author to execute a separate drawing function that would cause the author to draw focus using the standard drawing path but not drive magnification when that occurs. Therefore the specification allows the author to draw focus without driving magnification.
3. Although DrawFocusRing provides for a caret position the user agent does not know whether it is supporting a caret position or a focus ring. The x, y attributes are required.
4. DrawFocusRing, in the current specification, only allows the author to provide a point. At large magnification levels (4x-20x) a magnifier also needs to use the height and width of the caret, to be able to properly center the content in the screen. This was verified when speaking with Freedom scientific and AI Squared.
5. DrawFocusRing does not address magnifier tracking of user content selection in canvas. Canvas authors will want to allow for content selection. Some user agents, like Internet Explorer, support caret tracking during selection whereas others, like Safari on the Mac, treat the selection position as a separate entity.
6. DrawFocusRing's caret position support does not allow for an author to acquire caret blink rate settings that may have been set to prevent seizures.
7. The existing DrawFocusRing text does not provide any guidance to user agent manufacturers as to how to use the necessary information to support accessibility API services.
8. In the situation where we are dealing with text content, it is essential that we be able to access the text's baseline in order to properly compute the drawing path for a caret, selection position, or focus ring. This information is not provided in the canvas 2D API specification and requires additional computation.

The new change proposal to which the editor is objecting:

1. Simplifies drawFocusRing and ensures that it will drive magnification
2. Separates out caret and selection positioning for authors who chose to support magnification.
3. Provides a rectangle for the caret that allows magnifier vendors to better position the magnifier at large magnification levels 4x-20x.
3. Does much more than simply separating out the API to drive a magnifier to track the caret position. The details are provided here: http://www.w3.org/html/wg/wiki/ChangeProposals/CaretSelection#Rationale
Steve Faulkner I object to this proposal as it does not meet the support requirements for assistive technolgy such as screen magnifiers. The alternative proposal has been developed in consultation with a screen magnifier vendor and because of this does specify how focus and caret information can be exposed in a way that AT can make use of.
John Foliot I object to this Change Proposal, as it fails to address how to assist screen magnification products to support users with low vision in using canvas, an identified use-case requirement. It also contradicts the HTML WG's design philosophy of Users over Authors over Implementers over Code Purity, by focusing only on what authors might or might not do (with no proof or indication of the verity of that assertion).
Gregory Rosmaita i object to this change proposal because:

1. the change proposal produced by the Canvas Subgroup of the HTML Accessibility Task Force under the leadership and editorship of Richard Schwerdtfeger, was developed in close consultation with screen reader, screen magnification and other AT developers, who provided crucial information as to what specifically is needed to make the contents and full functionality of a CANVAS object available to accessibility APIs, and, thereby, to assistive technologies, enabling use of CANVAS content by persons using assistive technology;

2. the precise wording of the change proposal produced by the Canvas Subgroup of the HTML Accessibility Task Force under the leadership and editorship of Richard Schwerdtfeger provides actual assistive technology developers precisely what they requested and need in order to make CANVAS function with screen magnification programs, screen readers, other assistive technologies, and -- crucially -- the various combinations of assistive technologies (e.g. magnification with supplemental speech, access to a refreshable braille display, etc.) which provide as equivalent a computing experience as possible to actual users today and into the future;

3. the technical errors and insufficiencies in this change proposal would undo all of the work and effort put into the change proposal produced by the Canvas Subgroup of the HTML Accessibility Task Force under the leadership and editorship of Richard Schwerdtfeger, in partnership and close co-operation with developers of assistive technology; the dialogue between the Canvas Subgroup, the assistive technology community and the web developer community serves as a model of how and why the HTML Accessibility Task Force's participation in the drafting of HTML5 is essential, as the Canvas Subgroup solicited and received feedback from the larger community, and thereby succeeded in providing spec-ready text that addresses the issues identified by those who develop assistive technologies, CANVAS applications and accessibility APIs; the evidence of this close cooperation is reflected in the archive for the public-canvas-api list (which is the subgroup's primary forum for accessibility work on Canvas)

http://lists.w3.org/Archives/Public/public-canvas-api

THEREFORE, i strongly urge the chairs to adopt the change proposal contained in:

http://www.w3.org/html/wg/wiki/ChangeProposals/CaretSelection

and object to the change proposal contained in:

http://lists.w3.org/Archives/Public/public-html/2011Mar/0521.html
Theresa O'Connor Under this Change Proposal, there's no way for Web authors to report the bounding box of a non-caret selection to the a11y layer, which would be useful for screen magnifiers and other a11y tools.

More details on responses

  • Ian Hickson: last responded on 28, March 2011 at 01:30 (UTC)
  • Richard Schwerdtfeger: last responded on 28, March 2011 at 21:08 (UTC)
  • Steve Faulkner: last responded on 30, March 2011 at 06:38 (UTC)
  • John Foliot: last responded on 31, March 2011 at 16:10 (UTC)
  • Gregory Rosmaita: last responded on 31, March 2011 at 18:32 (UTC)
  • Theresa O'Connor: last responded on 1, April 2011 at 00:41 (UTC)

Everybody has responded to this questionnaire.


Compact view of the results / list of email addresses of the responders

WBS home / Questionnaires / WG questionnaires / Answer this questionnaire