Re: VO interaction with lists
Re: VO interaction with lists
- Subject: Re: VO interaction with lists
- From: Pete Brunet <email@hidden>
- Date: Mon, 19 Nov 2012 11:50:14 -0600
On 11/16/12 11:53 PM, Gregory Hughes wrote:
> Are you implementing VisibleRows and VisibleChildren on the cell? Do the bounds all draw correctly if you use Accessibility Inspector?
Hi Gregory, I was implementing VisibleChildren but missed putting it in
the attribute names list.
Looking at the spec for grid/table/outline/cell attributes I see the
following. VisibleRows is not listed as a cell attribute so I am
checking to see if I should instead implement that on the AXList. Do
you spot anything else from below that should be implemented?
// Grid view attributes
NSAccessibilityColumnCountAttribute
NSAccessibilityOrderedByRowAttribute
NSAccessibilityRowCountAttribute
// Table view and outline view attributes
NSAccessibilityColumnHeaderUIElementsAttribute
NSAccessibilityColumnsAttribute
NSAccessibilityRowHeaderUIElementsAttribute
NSAccessibilityRowsAttribute
NSAccessibilitySelectedColumnsAttribute
NSAccessibilitySelectedRowsAttribute
NSAccessibilitySortDirectionAttribute
NSAccessibilityVisibleColumnsAttribute
NSAccessibilityVisibleRowsAttribute
// Outline view attributes
NSAccessibilityDisclosedByRowAttribute
NSAccessibilityDisclosedRowsAttribute
NSAccessibilityDisclosingAttribute
NSAccessibilityDisclosureLevelAttribute
// Cell-based table attributes
NSAccessibilitySelectedCellsAttribute
NSAccessibilityVisibleCellsAttribute
// Cell-based table parameterized attributes
NSAccessibilityCellForColumnAndRowParameterizedAttribute
// Cell attributes
NSAccessibilityRowIndexRangeAttribute
NSAccessibilityColumnIndexRangeAttribute
>
> On Nov 16, 2012, at 9:38 PM, Pete Brunet <email@hidden> wrote:
>
>> 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
_______________________________________________
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