Re: Custom text fields not working with VoiceOver.
Re: Custom text fields not working with VoiceOver.
- Subject: Re: Custom text fields not working with VoiceOver.
- From: Chris Fleizach <email@hidden>
- Date: Tue, 26 Apr 2011 14:21:14 -0700
On Apr 26, 2011, at 8:06 AM, Dominic Mazzoni wrote:
> I spent a few hours playing with this and I'm still mystified. I
> captured all of the events Safari sends when typing into an edit box
> and modified Chrome to send the exact same events in the same order
> (AXLayoutComplete, AXSelectedTextChanged, AXValueChanged). I checked
> all of the attributes I could make sense of, including
> AXVisibleCharacterRange and anything else listed by Accessibility
> Inspector as a possible warning or error.
>
Where's the latest chrome that can test this?
Also what is the AXFocusedUIElement that the AXApplication returns? it should be the object that has focus. If not, you might have trouble.
> The only relevant-sounding attributes we're not implementing now are
> AXStartTextMarker, AXEndTextMarker, and AXSelectedTextMarkerRange. Is
> it possible to implement these without using wkCreateAXTextMarker
> (which appears to be a private API that we can't access)?
>
These are not used in text fields, so that should not matter.
> One other thing I'm noticing is that VoiceOver is not browsing
> Chrome's contents like it's web content. If I change the role of the
> main container from AXWebArea to something else, it behaves
> identically in VoiceOver. Most content other than editable text boxes
> is perfectly accessible, but it behaves as if the content was in a
> generic (non-web) app, where something like a list is hierarchical,
> rather than like in Safari, where by default a list is announced first
> and then browsed linearly.
What is the bundle identifier for chrome that's being used? Safari is treated specially. Chrome might need to be as well.
>
> Does Safari do anything else to tell VoiceOver that it's a web
> browser? Is this related to the problems with text fields?
>
It's unlikely that the two are related.
> - Dominic
>
> On Thu, Mar 31, 2011 at 10:10 PM, David Tseng <email@hidden> wrote:
>> Chrome's firing both events.
>>
>> As another possibility -- Chrome also implements NSTextInput and
>> performs some logic with the insertText method (to support different
>> input methods). Does VoiceOver use any other api's to listen for key
>> presses to echo characters (besides selected text changed and value
>> changed)?
>>
>>
>>
>> On 3/31/11, Chris Fleizach <email@hidden> wrote:
>>> Are you sending NSAccessibilityValueChangedNotification
>>>
>>> and NSAccessibilitySelectedTextChangedNotification
>>>
>>> notifications?
>>>
>>> I also see there's no kAXVisibleCharacterRange attribute.
>>>
>>> If that doesn't work, I'd look at what WebCore does, because they are doing
>>> the same thing, in AccessibilityObjectWrapper.mm
>>>
>>> On Mar 31, 2011, at 2:42 PM, David Tseng wrote:
>>>
>>>> Here's the log of me typing "asdf" into a search box (with an observer
>>>> set on all nodes in the hierarchy):
>>>>
>>>>
>>>> 2011-03-31 14:37:38.667 Shiner[65295:903] Observing 65271
>>>> 2011-03-31 14:37:41.258 Shiner[65295:903] Event:AXApplicationActivated
>>>> Element:<AXApplication: “Chromium”>
>>>>
>>>> Attributes:
>>>> AXRole: “AXApplication”
>>>> AXRoleDescription: “application”
>>>> AXTitle: “Chromium”
>>>> AXChildren: “<array of size 3>”
>>>> AXMenuBar: “<AXMenuBar>”
>>>> AXWindows: “<array of size 2>”
>>>> AXFrontmost (W): “1”
>>>> AXHidden (W): “0”
>>>> AXMainWindow: “<AXWindow: “Google”>”
>>>> AXFocusedWindow: “<AXWindow: “Google”>”
>>>> AXFocusedUIElement: “<AXTextField: “Google Search”>”
>>>> AXEnhancedUserInterface (W): “1”
>>>> 2011-03-31 14:37:43.353 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “a”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “1”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=1 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=1”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.358 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “a”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “1”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=1 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=1”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.363 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “a”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “1”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=1 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=1”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.368 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “a”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “1”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=1 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=1”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.833 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “as”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “2”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=2 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=2”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.839 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “as”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “2”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=2 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=2”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.845 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “as”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “2”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=2 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=2”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:43.850 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “as”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “2”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=2 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=2”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.249 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asd”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “3”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=3 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=3”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.255 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asd”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “3”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=3 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=3”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.259 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asd”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “3”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=3 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=3”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.264 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asd”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “3”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=3 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=3”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.715 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asdf”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “4”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=4 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=4”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.720 Shiner[65295:903] Event:AXSelectedTextChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asdf”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “4”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=4 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=4”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.725 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asdf”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “4”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=4 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=4”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:44.732 Shiner[65295:903] Event:AXValueChanged
>>>> Element:<AXApplication: “Chromium”>
>>>> <AXWindow: “Google”>
>>>> <AXSplitGroup>
>>>> <AXSplitGroup>
>>>> <AXScrollArea>
>>>> <AXWebArea: “Google”>
>>>> <AXGroup: “”>
>>>> <AXGroup: “”>
>>>> <AXTextField: “Google Search”>
>>>>
>>>> Attributes:
>>>> AXChildren: “<array of size 0>”
>>>> AXDescription: “”
>>>> AXEnabled: “1”
>>>> AXFocused (W): “1”
>>>> AXHelp: “Google Search”
>>>> AXParent: “<AXGroup: “”>”
>>>> AXPosition: “x=530 y=359”
>>>> AXRole: “AXTextField”
>>>> AXRoleDescription: “text field”
>>>> AXSize: “w=512 h=32”
>>>> AXTitle: “Google Search”
>>>> AXTopLevelUIElement: “<AXWindow: “Google”>”
>>>> AXValue (W): “asdf”
>>>> AXWindow: “<AXWindow: “Google”>”
>>>> AXURL: “”
>>>> AXVisited: “0”
>>>> AXInsertionPointLineNumber: “0”
>>>> AXNumberOfCharacters: “4”
>>>> AXSelectedText: “”
>>>> AXSelectedTextRange: “pos=4 len=0”
>>>> AXVisibleCharacterRange: “pos=0 len=4”
>>>>
>>>> Actions:
>>>> AXShowMenu - show menu
>>>> 2011-03-31 14:37:47.074 Shiner[65295:903]
>>>> Event:AXApplicationDeactivated Element:<AXApplication: “Chromium”>
>>>>
>>>> Attributes:
>>>> AXRole: “AXApplication”
>>>> AXRoleDescription: “application”
>>>> AXTitle: “Chromium”
>>>> AXChildren: “<array of size 3>”
>>>> AXMenuBar: “<AXMenuBar>”
>>>> AXWindows: “<array of size 2>”
>>>> AXFrontmost (W): “0”
>>>> AXHidden (W): “0”
>>>> AXMainWindow: “<AXWindow: “Google”>”
>>>> AXFocusedWindow: “<AXWindow: “Google”>”
>>>> AXFocusedUIElement: “<AXTextField: “Google Search”>”
>>>> AXEnhancedUserInterface (W): “1”
>>>>
>>>>
>>>>
>>>> On 3/31/11, Chris Fleizach <email@hidden> wrote:
>>>>> It's likely one of the following values is wrong
>>>>>
>>>>>
>>>>> AXValue (W): ""
>>>>> AXNumberOfCharacters: "0"
>>>>> AXSelectedText: ""
>>>>> AXSelectedTextRange: "pos=0 len=0"
>>>>> AXVisibleCharacterRange: "pos=0 len=0"
>>>>>
>>>>> If you can also attach a tree output when there's text in the textfield
>>>>> and
>>>>> the cursor is at a specific location, it might help
>>>>>
>>>>> On Mar 31, 2011, at 1:56 PM, David Tseng wrote:
>>>>>
>>>>>> Hi list,
>>>>>>
>>>>>> I'm working on a custom text field and am running into an odd issue
>>>>>> when testing with VoiceOver.
>>>>>>
>>>>>> Firstly, for some background, this is part of the accessibility work
>>>>>> done for Chrome.
>>>>>> The text field is entirely custom; we're implementing the
>>>>>> NSAccessibility informal protocol. I've pasted the output from
>>>>>> Accessibility Inspector below. We're also firing SelectedTextChanged
>>>>>> and ValueChanged notifications appropriately as the typed text and
>>>>>> insertion position changes.
>>>>>>
>>>>>> The issue that we're running into is that VoiceOver reads only the
>>>>>> first typed character, but subsequent typed characters results in an
>>>>>> error tone. If one tabs away and back to the text field, arrowing
>>>>>> left or right echos characters appropriately, but typing characters
>>>>>> results in VoiceOver echoing the already typed string (regardless of
>>>>>> what's typed). It's as if VoiceOver hasn't requested the new value
>>>>>> attribute. We're auto releasing the value when returning the
>>>>>> NSString.
>>>>>>
>>>>>>
>>>>>> Attributes:
>>>>>> AXChildren: "<array of size 0>"
>>>>>> AXDescription: ""
>>>>>> AXEnabled: "true"
>>>>>> AXFocused (W): "true"
>>>>>> AXHelp: ""
>>>>>> AXParent: "<AXGroup: "text field">"
>>>>>> AXPosition: "x=196 y=403"
>>>>>> AXRole: "AXTextField"
>>>>>> AXRoleDescription: "text field"
>>>>>> AXSize: "w=175 h=19"
>>>>>> AXTitle: ""
>>>>>> AXTopLevelUIElement: "<AXWindow: "Google Accounts">"
>>>>>> AXValue (W): ""
>>>>>> AXWindow: "<AXWindow: "Google Accounts">"
>>>>>> AXURL: ""
>>>>>> AXVisited: "false"
>>>>>> AXInsertionPointLineNumber: "0"
>>>>>> AXNumberOfCharacters: "0"
>>>>>> AXSelectedText: ""
>>>>>> AXSelectedTextRange: "pos=0 len=0"
>>>>>> AXVisibleCharacterRange: "pos=0 len=0"
>>>>>>
>>>>>> Actions:
>>>>>> AXShowMenu - show menu
>>>>>>
>>>>>> Errors:
>>>>>> AXStartTextMarker: Missing
>>>>>> AXEndTextMarker: Missing
>>>>>> AXBlockQuoteLevel: Missing
>>>>>> AXSelected: Missing
>>>>>> AXSelectedTextMarkerRange: Missing
>>>>>>
>>>>>> Warnings:
>>>>>> AXURL: Unexpected extra attribute
>>>>>> AXDescription or AXTitleUIElement: Missing.
>>>>>>
>>>>>> Optional Attributes:
>>>>>> AXLinkedUIElements
>>>>>> AXValueDescription
>>>>>> AXSearchButton
>>>>>> AXPlaceholderValue
>>>>>> AXTitleUIElement
>>>>>> AXClearButton
>>>>>> AXSelectedTextRanges
>>>>>> AXSubrole
>>>>>> _______________________________________________
>>>>>> Do not post admin requests to the list. They will be ignored.
>>>>>> Accessibility-dev mailing list (email@hidden)
>>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>>
>>>>>> This email sent to email@hidden
>>>>>
>>>>>
>>>
>>>
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Accessibility-dev mailing list (email@hidden)
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Accessibility-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden