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: David Tseng <email@hidden>
- Date: Thu, 31 Mar 2011 14:42:40 -0700
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