Re: VO interaction with lists
Re: VO interaction with lists
- Subject: Re: VO interaction with lists
- From: Pete Brunet <email@hidden>
- Date: Fri, 16 Nov 2012 23:38:44 -0600
On 11/16/12 4:56 PM, Pete Brunet wrote:
> For my simple JavaFX list currently VO says: row 1, column 1, cell. It
> appears I am giving VO everything it wants but it is not saying the
> right thing. In Finder there is a list and for it I hear: List, 1 item
> selected, <the title>, selected, rich text format, <the item number> of
> <the total number of items>.
>
> The tree looks like this: AXGroup, AXList, 19 AXCells, each of which has
> an AXTextField. Both the AXCells and AXTextFields have AXTitle of "Row
> A". Only the first text field is queried for information. VO asks it
> for AXRole, AXRoleDescription, AXTitle, AXSize, AXPosition, AXEnabled,
> AXParent, all of which I am returning valid data for. (It's interesting
> that VO doesn't ask it for its children, though there are none.)
Correction: The first AXCell and AXTextField child have AXTitles of "Row
A". The rest all have titles too but they are different.
>
> What am I doing wrong?
>
> Pete
>
> On 11/6/12 10:45 AM, Pete Brunet wrote:
>> H Gregory, I implemented
>> accessibilityArrayAttributeValues:index:maxCount: which helped a lot,
>> but VO still calls for all the list items way too many times. The code
>> probably wasn't in a loop before, I probably just wasn't patient
>> enough. BTW, I see no indication that our a11y tree has any issues.
>>
>> I still have more work to do for our list implementation but first I'd
>> like to find a Mac list so I can see how VO handles it. I went through
>> all the widgets in System Preferences and could not find a list. I
>> found several single column tables but no lists. Where can I find a
>> real list? And further, where can I find a suite of Mac GUI control
>> samples that includes all the possible Mac GUI controls?
>>
>> Thanks, Pete
>>
>> On 10/16/12 7:08 PM, Gregory Hughes wrote:
>>> I am not sure offhand why you are seeing an infinite loop of requests, it is possible that you have a palindrome error in your accessibility tree.
>>>
>>> However, you should also consider implementing this method to improve performance rather than constantly returning the entire array:
>>> https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Protocols/NSAccessibility_Protocol/Reference/Reference.html#//apple_ref/occ/instm/NSObject/accessibilityArrayAttributeValues:index:maxCount:
>>>
>>> This may also help you hunt down a palindrome error.
>>>
>>> -G
>>>
>>>
>>> On Oct 13, 2012, at 12:00 PM, email@hidden wrote:
>>>> Message: 1
>>>> Date: Fri, 12 Oct 2012 17:01:10 -0500
>>>> From: Pete Brunet <email@hidden>
>>>> To: Accessibility-Dev Accessibility-Dev Mail
>>>> <email@hidden>
>>>> Subject: VO interaction with lists
>>>> Message-ID: <email@hidden>
>>>> Content-Type: text/plain; charset=ISO-8859-1
>>>>
>>>> I'm adding support for NSAccessibility to JavaFX. We have it working
>>>> for button, radiobutton, and checkbox and I'm now working on a simple
>>>> list. I have a test case with a list of 20 cells each containing simple
>>>> text. A log of the calls from VO are listed below. When I run the test
>>>> case I have to stop it after a while because I'm not sure it will ever
>>>> finish. Below is a log of the calls from VO. Some questions:
>>>>
>>>> - Why does VO ask for the same info over and over, especially for time
>>>> consuming operations like the children.
>>>> - What if the list is huge? VO isn't asking for the visible children,
>>>> but for all the children. (Fortunately, at this early point we only
>>>> have the visible children in our accessibility tree.)
>>>> - Why doesn't VO ever ask for the child of the cell?
>>>> - Why does VO never seem to get far enough along to actually speak the
>>>> first list item?
>>>>
>>>> Thanks, Pete
>>>>
>>>> There might be a little misinformation in the following. It was a lot
>>>> of data to wade though, but it should be accurate enough to see the issues.
>>>>
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXTitle self=0x7fe803d36190 returning: nil
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning
>>>> 0x7fe803d1ca20 0x7fe803d36cd0 0x7fe803d36d00 0x7fe803d36d30 0x7fe803d36d60
>>>> 0x7fe803d36d90 0x7fe803d36dc0 0x7fe803d36df0 0x7fe803d36e20 0x7fe803a4f8e0
>>>> 0x7fe803a44360 0x7fe803a0bc30 0x7fe803a44640 0x7fe803a1b2a0 0x7fe803d36e60
>>>> 0x7fe803d36e90 0x7fe803d36ec0 0x7fe803d36ef0 0x7fe803d36f20 0x7fe803e0e260
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d00 returning 0x7fe803d36190 // parent of
>>>> third child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> ditto through all 20 children
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36cd0 returning AXCell // role of second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d00 returning 0x7fe803d36190 // parent of
>>>> third child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36d00 returning AXCell // role of third child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d30 returning 0x7fe803d36190 // parent of
>>>> forth child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36d30 returning AXCell // role of forth child
>>>> ditto for all 20 children
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXTitle self=0x7fe803d1ca20 returning Row 1 // title of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36cd0 returning AXCell // role of second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d00 returning 0x7fe803d36190 // parent of
>>>> third child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36cd0 returning AXCell // role of second child
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXTitle self=0x7fe803d36cd0 returning Row 2 // title of second child
>>>> same as above through row 20
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803e0e260 returning 0x7fe803d36190 // parent of last
>>>> child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803e0e260 returning AXCell // role of last child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803e0e260 returning 0x7fe803d36190 // parent of last
>>>> child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803e0e260 returning 0x7fe803d36190 // parent of last
>>>> child
>>>> XParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> XParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803e0e260 returning 0x7fe803d36190 // parent of last
>>>> child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803e0e260 returning AXCell // role of last child
>>>> AXParent self=0x7fe803e0e260 returning 0x7fe803d36190 // parent of last
>>>> child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXTitle self=0x7fe803e0e260 returning nil // title of last child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRoleDescription self=0x7fe803d1ca20 returning cell // role
>>>> description of first child
>>>> same through 20 role descriptions
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXTitle self=0x7fe803d36190 returning: nil // title of list
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d00 returning 0x7fe803d36190 // parent of
>>>> third child
>>>> ditto through 20 children
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803e0e260 returning AXCell // role of last child
>>>> AXParent self=0x7fe803e0e260 returning 0x7fe803d36190 // parent of last
>>>> child
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRoleDescription self=0x7fe803d1ca20 returning cell // role
>>>> description of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXRole self=0x7fe803d36190 returning: AXList
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXTitle self=0x7fe803d36190 returning: nil
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d00 returning 0x7fe803d36190 // parent of
>>>> third child
>>>> ditto through 20 children
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXTitle self=0x7fe803d36190 returning: nil // title of list
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36cd0 returning AXCell // role of second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36d00 returning 0x7fe803d36190 // parent of
>>>> third child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36d00 returning AXCell // role of third child
>>>> ditto through 20 children
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d1ca20 returning AXCell // role of first child
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXTitle self=0x7fe803d1ca20 returning Row 1 // title of first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d1ca20 returning 0x7fe803d36190 // parent of
>>>> first child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36cd0 returning AXCell // role of second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> XParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXRole self=0x7fe803d36cd0 returning AXCell // role of second child
>>>> AXParent self=0x7fe803d36cd0 returning 0x7fe803d36190 // parent of
>>>> second child
>>>> AXParent self=0x7fe803d36190 returning 0x7fe803d35b70
>>>> AXChildren self=0x7fe803d36190 returning as above
>>>> AXTitle self=0x7fe803d36cd0 returning Row 2 // title of second child
>>>> ditto through 20 children
>>>> stopped the app somewhere in that loop; running too long
>>>>
>>>>
>>>>
>>>> ------------------------------
>>>>
>>>> _______________________________________________
>>>> Accessibility-dev mailing list
>>>> email@hidden
>>>> https://lists.apple.com/mailman/listinfo/accessibility-dev
>>>>
>>>> End of Accessibility-dev Digest, Vol 9, Issue 83
>>>> ************************************************
>>> _______________________________________________
>>> 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
_______________________________________________
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