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 16:56:14 -0600
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.)
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