[Bug 11239] Canvas support accessible caret tracking independent of Focus Ring tracking

http://www.w3.org/Bugs/Public/show_bug.cgi?id=11239

--- Comment #44 from Rich Schwerdtfeger <schwer@us.ibm.com> 2011-05-05 16:27:35 UTC ---
Hi Maciej, 

Incidentally, I am at Apple this week if you would like to discuss this in
person we can do that. 

How aria-activdescendant works is that aria-activedescendant sends a focus
change to the assistive technology. This focus does not match DOM focus and
perhaps there is some of the confusion. This notifies the AT of the point of
regard.

The proposal specifies that the focus ring be drawn consistent with the element
type. So, if an element (menu item), does not support operating system
conventions for focus ring then, as in my proposal, would use the drawing ring
they provided in the drawing path. An example of this might be the Mac system
menu whereby when the menu is dropped a focus ring is not drawn for the menu
item. 

If you see a flaw in this we could put together a point of regard function. 

As for the caret selection function solving the activedescendant problem.
Magnifiers are not accustomed to using it for that purpose. The semantics don't
quite match in that a magnifier will position the magnification point based on:
- they type of element (which they will get)
- the state the element is in
- the type of event being generated (caret/selection/focus)
- the dimensions of the caret/selection.

... but they might be able to make this work for these reasons:
- they have the element and thus the corresponding semantics (role)
- they have the states of the element (selected, checked, etc.)
- the dimensions (as we do provide a rectangle)
- logical caret/selection/focus events are generated from the accessibility API

The two challenges/changes we would need to have are: 

- We will not know if the rectangle being passed is a bounding rectangle or
caret/selection position. We would need to add another parameter to the call
and change the name. Something like:

setPointofRegard(x, y, w, h, element, type);

type = caretpos/selectionpos/bounds

- Since this is canvas we will need the author to be able to draw different
shapes than rectangles. So, we would need to set up the draw path like we do
for drawFocusRing().

-- 
Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

Received on Thursday, 5 May 2011 16:27:37 UTC