Re: AX[Visible]Columns and a custom control
Re: AX[Visible]Columns and a custom control
- Subject: Re: AX[Visible]Columns and a custom control
- From: Ricky Sharp <email@hidden>
- Date: Mon, 4 Sep 2006 13:44:32 -0500
On Sep 3, 2006, at 10:04 PM, Ricky Sharp wrote:
I completely re-implemented my control as an NSMatrix subclass
(IIList) containing NSActionCell (IIListCell) cells. I'm now not
implementing any custom accessibility code. IIList automatically
picks up a role of AXList and my cells pick up AXStaticText. This
is a simple list where I basically just needed a single column that
will display names of people. It's also a single-select list, so
it acts just like a set of radio buttons.
Also, I do not have any of the problems as I wrote above. The
VoiceOver cursor can move to both the scroll area (my IIList lives
inside an NSScrollView) as well as to the individual cells.
It thus appears that there are no bugs with AXList. Perhaps the
Accounts pane list needs to have its cells modified to accept the
first responder?
Spoke too soon. When my matrix subclass uses a role of AXList,
VoiceOver will speak newly selected cells twice. Sometimes you hear
the entire selection being spoken out completely two times; other
times you hear just a fraction of speech which then gets interrupted
by the second time things are spoken.
Changing the role of the matrix to AXRadioGroup clears up this issue.
I've thus done the following for my list (hierarchy is):
+ NSScrollView
+ IIList (NSMatrix subclass with a role of AXRadioGroup
+ IIListCell (0 or more; NSActionCell subclass with a role of
IIListCell)
The role description for IIListCell is "list item"
VoiceOver will now correctly speak unselected list items as "<student
name> list item". Selected list items are spoken as "<student name>
selected list item". And, I as move the selection, items are only
spoken once.
One other combo that works well is:
+ NSScrollView
+ IIList (NSMatrix subclass with a role of AXRadioGroup)
+ (IIListCell (0 or more; NSActionCell subclass with a role of
AXRadioButton)
Here, I override the list cell's role description to be "list item".
VoiceOver will never speak the newly selected cells twice. VoiceOver
output is slightly different and is in the form "<student name>
selected student 1 of 5".
I'm not sure which implementation I like best. My list does
functionally act as a set of radio buttons (i.e. one and only one
cell selected at any given time). But I'm not sure if this will
potentially confuse assistive apps if I have my list use the radio
group and radio button roles.
___________________________________________________________
Ricky A. Sharp mailto:email@hidden
Instant Interactive(tm) http://www.instantinteractive.com
_______________________________________________
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