- From: Charles Pritchard <chuck@jumis.com>
- Date: Tue, 21 Feb 2012 11:21:24 -0800
- To: Dominic Mazzoni <dmazzoni@google.com>
- CC: Richard Schwerdtfeger <schwer@us.ibm.com>, Steve Faulkner <faulkner.steve@gmail.com>, Frank Olivier <franko@microsoft.com>, public-canvas-api@w3.org, dbolter@mozilla.com
- Message-ID: <4F43EEB4.90100@jumis.com>
On 2/20/12 11:45 PM, Dominic Mazzoni wrote: > On Sun, Feb 19, 2012 at 5:42 PM, Charles Pritchard <chuck@jumis.com > <mailto:chuck@jumis.com>> wrote: > > Those are the issues, not character boundary maps. Nobody passes > those to ATs. There is no AT that receives an integer array with > the location of every character on the screen. > > > I don't think that's true - AT can call > IAccessibleText::characterExtents to query the exact bounding > rectangle of any arbitrary character on the screen, isn't that > basically the same thing? > > http://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/interface_i_accessible_text.html#ab7f7ac52f4950d096856e59b0b008d1 The API does not generate an integer array. Someone using the API can build an array, as offsetAtPoint reports. OS X VoiceOver does show a character-by-character bounding box. It only does one character at a time. We have setup a method to do caret browsing from inside the browser, but we have not setup a method to do it through pure IAccessible APIs. We do not have a method to notify the scripting environment when the UA/AT changes the caret offset or selection. There's not enough scaffolding in DOM Events to handle it. Further, there are several "may or may not" conditions in IAccessible that may or may not hinder any kind of standardization. Richard has pointed out a few times that OS X And Windows handle selection and caret movement a little differently. There is still no stability in setting multiple ranges on the DOM: some browsers work well, some really just handle one range. I've asked that onscroll be examined as a mechanism for notifying the author about the need for a redraw. It's similar to hooking into onresize. We may be able to cover a little more ground by having onscroll fired whenever the AT runs setCaretOffset or addSelection. I don't see us having any success with items like scrollSubstringTo, offsetAtPoint and such. If it's absolutely vital, I'd like to see just how much feature we can pack into the onscroll event of a Canvas element. There are two concerns I have here: 1. We can't be expected to do better than the rest of the DOM and the browser implementation. And we can only get the DOM updated when we can provide alternate use cases outside of Canvas. 2. We have been identifying real-world AT issues: while addressing the bulk of the issues in current ATs, some IAccessible interfaces may still be unimplemented. I believe setting priorities is a common practice, but I am worried that we'll be accused of a piecemeal approach. I have not seen an AT working with an integer array of characterExtents. I've not seen offsetAtPoint used either, but it's something to be aware of. I'd imagine we'll see mouse events used instead of a direct call to offsetAtPoint. We have worked hard to enable virtual focus. Some of these APIs are akin to a virtual mouse and virtual ranges. Though there have been experiments, I don't see any mainstream browsers that work with multiple mice. Chrome does work with virtual ranges in the form of the "find" tool. Character strings are highlighted when they match, they are shown in the scroll bar. They are not exposed to the scripting environment. The tool has unreliable results when the page flow is complex, such as overflow areas and non relative position boxes. I have been able to capture "find next" through onscroll handlers of overflow containers. It's more typically the case in an authoring tool that things like context menu and find are handled entirely by the scripting environment. This is another area where DOM simply is not feature-rich enough to close the gap. -Charles
Received on Tuesday, 21 February 2012 19:21:54 UTC