Re: No way to debug VoiceOver? Also how to force VoiceOver to pass to a child control
Re: No way to debug VoiceOver? Also how to force VoiceOver to pass to a child control
- Subject: Re: No way to debug VoiceOver? Also how to force VoiceOver to pass to a child control
- From: Chris Fleizach <email@hidden>
- Date: Wed, 01 Feb 2012 23:31:00 -0800
I didn't look closely, but usually these focus issues are because the AXApplication is not returning the correct AXFocusedUIElement
If you inspect other processes, you'll see that the AXApplication always returns this UIElement correctly when it has the keyboard focus ring.
On Feb 1, 2012, at 11:25 PM, Felipe Monteiro de Carvalho wrote:
> Hello,
>
> I had already tryed the Apple tools and it didn't help much.
>
> Maybe if I try to explain my architecture anyone might know? So viewer
> through UIBrowser one can see my hierarchy here:
>
> http://img521.imageshack.us/img521/1370/uibrowsermisctest.png
>
> This is just a test project to test controls, what I am really
> developing is the Lazarus Component Library Framework which has
> implementations for a large number of platforms, but here I am working
> in particular with the Carbon backend of this library to make it
> accessible.
>
> As one can see inside the window there are buttons (Carbon buttons), a
> tab controls (Carbon native too), an invisible border (the memoborder,
> role=unknown, which shouldnt be a problem because the window area
> itself also has role=unknown) and inside it a Carbon native text
> control and a custom drawn control which is the Tree control on the
> left.
>
> Now I already managed to make the custom drawn tree control accessible
> and the buttons and the tab control all worked out of the box. But my
> issue is with the text control. Voice over moves focus into the border
> and speaks the RoleDescription of the memo boder "memoborder" and
> refuses to move into the real control with focus, the text view.
>
> Has anyone seen this before? I looked everywhere already, but I still
> have no idea where my error would be.
>
> All of my source code is LGPL and is freely available in the internet,
> so for example the Carbon Accessibility Event handler for the memo
> border (a HIView) is located here:
>
> http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/lcl/interfaces/carbon/carbonedits.pp?view=markup&root=lazarus
>
> Line 1763
> function CarbonMemoBorder_Accessibility(ANextHandler: EventHandlerCallRef;
>
> For the text control itself, I am not customizing the accessibility
> events, because I suppose they are already all taken care by Carbon
> and they all look correct to me. I just need VoiceOver to skip my
> memoborder and go into the textview.
>
> I cannot make a simple solution like killing the border because it
> would affect functionality from the framework, which supports a border
> around text controls...
>
> So, here is the report for my memo control border:
>
> PATH:
> application "misctests"
> standard window "Form1" (window 1)
> scroll area (scroll area 1)
> A window (UI element 1)
> memoborder (UI element 2)
>
> ACTIONS:
>
> ATTRIBUTES (long values are truncated to 60 characters):
> children
> type: array
> value: (array of 1 item)
> modifiable: no
> enabled
> type: Boolean
> value: false
> modifiable: no
> parent
> type: UIElement
> value: A window
> modifiable: no
> position
> type: point
> value: {307, 464} x, y
> modifiable: no
> role
> type: string
> value: unknown
> modifiable: no
> role description
> type: string
> value: "memoborder"
> modifiable: no
> size
> type: size
> value: {182, 160} width, height
> modifiable: no
> top level UI element
> type: UIElement
> value: standard window "Form1"
> modifiable: no
> window
> type: UIElement
> value: standard window "Form1"
> modifiable: no
>
> NOTIFICATIONS:
> created
> focused UI element changed
> help tag created
> moved
> resized
> row collapsed
> row count changed
> row expanded
> selected cells changed
> selected children changed
> selected children moved
> selected columns changed
> selected rows changed
> selected text changed
> title changed
> UI element destroyed
> units changed
> value changed
>
> And for the text control:
>
> PATH:
> application "misctests"
> standard window "Form1" (window 1)
> scroll area (scroll area 1)
> A window (UI element 1)
> memoborder (UI element 2)
> text field (text field 1)
> ACTIONS:
>
> ATTRIBUTES (long values are truncated to 60 characters):
> attributed string for range
> type: attributed string
> value: (null)
> modifiable: parameterized
> bounds for range
> type: rect
> value: (null)
> modifiable: parameterized
> children
> type: (null)
> value: (null)
> modifiable: no
> focused
> type: Boolean
> value: false
> modifiable: yes
> insertion point line number
> type: number
> value: 0
> modifiable: no
> line for index
> type: number
> value: (null)
> modifiable: parameterized
> number of characters
> type: number
> value: 5
> modifiable: no
> parent
> type: UIElement
> value: memoborder
> modifiable: no
> position
> type: point
> value: {48, 326} x, y
> modifiable: no
> range for index
> type: range
> value: (null)
> modifiable: parameterized
> range for line
> type: range
> value: (null)
> modifiable: parameterized
> range for position
> type: range
> value: (null)
> modifiable: parameterized
> role
> type: string
> value: AXTextField
> modifiable: no
> role description
> type: string
> value: "text field"
> modifiable: no
> selected text
> type: string
> value: (empty string)
> modifiable: yes
> selected text range
> type: range
> value: {0, 0} start, length
> modifiable: yes
> size
> type: size
> value: {180, 158} width, height
> modifiable: no
> string for range
> type: string
> value: (null)
> modifiable: parameterized
> style range for index
> type: range
> value: (null)
> modifiable: parameterized
> top level UI element
> type: UIElement
> value: standard window "Form1"
> modifiable: no
> value
> type: string
> value: "Memo1"
> modifiable: yes
> window
> type: UIElement
> value: standard window "Form1"
> modifiable: no
>
> NOTIFICATIONS:
> created
> focused UI element changed
> help tag created
> moved
> resized
> row collapsed
> row count changed
> row expanded
> selected cells changed
> selected children changed
> selected children moved
> selected columns changed
> selected rows changed
> selected text changed
> title changed
> UI element destroyed
> units changed
> value changed
>
> --
> Felipe Monteiro de Carvalho
> _______________________________________________
> 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