473,503 Members | 1,769 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Help with MS Accessibility

First of all, I apologize for cross-posting to so many groups, but clearly
there are only 2 people on the planet that understand MS Accessibility in
..NET and I'm hoping I might reach just one of them by cross posting to 6
groups because I've already posted to 4 others with no luck.

Our company has a number of custom controls that we're building for a suite
of applications. We're trying to add accessibility support to the controls
and we're finding the documentation very lacking. It's ambiguous, vague, and
very incomplete. There are almost no online resources for it and the few
samples we've found have been far too trivial to be of any real-life use.

Surely we're not breaking virgin ground here. Surely somebody has cut their
teeth on this stuff already. Yet I can't find anyone. I've e-mailed people
at MS, some of whom have said they'll try to find someone to help us, but
nothing yet. I've scoured the web. I've scoured the MSDN (DVD and web site).

Has anyone dealt with this, and if so, can you please, please, please,
e-mail me or tell me which newsgroup I can communicate with you on?

Here's a sample question:

We have a grid control. The children of the Grid ControlAccessibleObject are
AccessibleObjects that are Rows and Columns. The rows have children that are
AccessibleObjects that are cells.

When the control calls AccessibilityNotifyClients to notify of an event
(selection, focus change, etc), the second parameter is: int childID. The
documenation states that childID is: 'The child "Control" to notify of the
accessible event.'

Okay, I put "Control" in quotes because in the docs there's a link to the
Control class. If the parameter is an int, how does this represent a Control
class? Aren't the children the AccessibleObjects and
ControlAccessibleObjects?

Where does childID come from? I can't find any sort of int ID for any class
or interface involved in accessibility.

I thought maybe childID was the index into the GetChild() method, but that
can't be right because what about the situation in my grid? Suppose I want
to notify a cell? But the cell isn't a child of the grid accessible object,
it's a child of the row accessible object. So the indexes into GetChild()
overlap all over the place. They're far from unique, so that can't be it.

Anyway, this is one of a number of questions we have. Please, if anyone
knows anything about this stuff, please get in touch.

Thanks.

Pete
Nov 16 '05 #1
8 2569
I don't know how much .NET experience she has, but Sara Ford
(http://blogs.msdn.com/SaraFord) has forgotten more about accessibility than
most people will ever know. So if anyone knows, she does!
--
MichKa [MS]
NLS Collation/Locale/Keyboard Technical Lead
Globalization Infrastructure, Fonts, and Tools
Microsoft Windows International Division

This posting is provided "AS IS" with
no warranties, and confers no rights.


"Pete Davis" <pd******@NOSPAM.hotmail.com> wrote in message
news:m-********************@giganews.com...
First of all, I apologize for cross-posting to so many groups, but clearly
there are only 2 people on the planet that understand MS Accessibility in
.NET and I'm hoping I might reach just one of them by cross posting to 6
groups because I've already posted to 4 others with no luck.

Our company has a number of custom controls that we're building for a suite of applications. We're trying to add accessibility support to the controls
and we're finding the documentation very lacking. It's ambiguous, vague, and very incomplete. There are almost no online resources for it and the few
samples we've found have been far too trivial to be of any real-life use.

Surely we're not breaking virgin ground here. Surely somebody has cut their teeth on this stuff already. Yet I can't find anyone. I've e-mailed people
at MS, some of whom have said they'll try to find someone to help us, but
nothing yet. I've scoured the web. I've scoured the MSDN (DVD and web site).
Has anyone dealt with this, and if so, can you please, please, please,
e-mail me or tell me which newsgroup I can communicate with you on?

Here's a sample question:

We have a grid control. The children of the Grid ControlAccessibleObject are AccessibleObjects that are Rows and Columns. The rows have children that are AccessibleObjects that are cells.

When the control calls AccessibilityNotifyClients to notify of an event
(selection, focus change, etc), the second parameter is: int childID. The
documenation states that childID is: 'The child "Control" to notify of the
accessible event.'

Okay, I put "Control" in quotes because in the docs there's a link to the
Control class. If the parameter is an int, how does this represent a Control class? Aren't the children the AccessibleObjects and
ControlAccessibleObjects?

Where does childID come from? I can't find any sort of int ID for any class or interface involved in accessibility.

I thought maybe childID was the index into the GetChild() method, but that
can't be right because what about the situation in my grid? Suppose I want
to notify a cell? But the cell isn't a child of the grid accessible object, it's a child of the row accessible object. So the indexes into GetChild()
overlap all over the place. They're far from unique, so that can't be it.

Anyway, this is one of a number of questions we have. Please, if anyone
knows anything about this stuff, please get in touch.

Thanks.

Pete

Nov 16 '05 #2
Thank you so much. Her page also has a lot of good links. Most of which I've
already arrived at by way of google, but I would have found them all much
faster if I had hit her page first.

I'm trying to contact her. She definitely seems like the right person to
help us.

Pete

"Michael (michka) Kaplan [MS]" <mi*****@online.microsoft.com> wrote in
message news:O$**************@TK2MSFTNGP10.phx.gbl...
I don't know how much .NET experience she has, but Sara Ford
(http://blogs.msdn.com/SaraFord) has forgotten more about accessibility than most people will ever know. So if anyone knows, she does!
--
MichKa [MS]
NLS Collation/Locale/Keyboard Technical Lead
Globalization Infrastructure, Fonts, and Tools
Microsoft Windows International Division

This posting is provided "AS IS" with
no warranties, and confers no rights.


"Pete Davis" <pd******@NOSPAM.hotmail.com> wrote in message
news:m-********************@giganews.com...
First of all, I apologize for cross-posting to so many groups, but clearly there are only 2 people on the planet that understand MS Accessibility in .NET and I'm hoping I might reach just one of them by cross posting to 6
groups because I've already posted to 4 others with no luck.

Our company has a number of custom controls that we're building for a

suite
of applications. We're trying to add accessibility support to the controls and we're finding the documentation very lacking. It's ambiguous, vague,

and
very incomplete. There are almost no online resources for it and the few
samples we've found have been far too trivial to be of any real-life use.
Surely we're not breaking virgin ground here. Surely somebody has cut

their
teeth on this stuff already. Yet I can't find anyone. I've e-mailed people at MS, some of whom have said they'll try to find someone to help us, but nothing yet. I've scoured the web. I've scoured the MSDN (DVD and web

site).

Has anyone dealt with this, and if so, can you please, please, please,
e-mail me or tell me which newsgroup I can communicate with you on?

Here's a sample question:

We have a grid control. The children of the Grid ControlAccessibleObject

are
AccessibleObjects that are Rows and Columns. The rows have children that

are
AccessibleObjects that are cells.

When the control calls AccessibilityNotifyClients to notify of an event
(selection, focus change, etc), the second parameter is: int childID. The documenation states that childID is: 'The child "Control" to notify of the accessible event.'

Okay, I put "Control" in quotes because in the docs there's a link to the Control class. If the parameter is an int, how does this represent a

Control
class? Aren't the children the AccessibleObjects and
ControlAccessibleObjects?

Where does childID come from? I can't find any sort of int ID for any

class
or interface involved in accessibility.

I thought maybe childID was the index into the GetChild() method, but that can't be right because what about the situation in my grid? Suppose I want to notify a cell? But the cell isn't a child of the grid accessible

object,
it's a child of the row accessible object. So the indexes into GetChild() overlap all over the place. They're far from unique, so that can't be it.
Anyway, this is one of a number of questions we have. Please, if anyone
knows anything about this stuff, please get in touch.

Thanks.

Pete


Nov 16 '05 #3
> Thank you so much. Her page also has a lot of good links. Most of which
I've
already arrived at by way of google, but I would have found them all much
faster if I had hit her page first.

I'm trying to contact her. She definitely seems like the right person to
help us.


It's my understanding that she no longer does accessibility testing, but I'm
not certain of that.

To help with the basics of the Accessibility support in the .NET Framework,
spend some time reading the Active Accessibility documentation on MSDN.
That'll give you a background and introduce you to the concepts.

The child ID concept is explained at:
http://msdn.microsoft.com/library/en...aovrw_36gj.asp

Although reading it now, it's no more helpful than the first version of that
topic written in 1997.

Basically the child ID is a number of a sub-object that doesn't have full
accessibility support. It appears in your case that each cell has full
support, thus you can return CHILDID_SELF (0x00).

Hope this helps.
-Charles Oppermann
Nov 16 '05 #4
Thanks, that was very helpful. The .NET documentation on it doesn't really
make a lot of sense, so we've been going back and reading COM-based
documentation, as it has given us a lot more information and clearly we
missed this. Thanks.

It still seems we'll need to implement the child IDs for the
AccessibilityNotifyClients call, though. How else can we specify which
objects should be notified of changes?

I think part of our confusion was looking at the IAccessibility interface in
ObjectBrowser where get_accChild returns an object. So we were thinking it
was an object implementing IAccessible, but clearly it's an int32.

Thanks again.

Pete
"Charles Oppermann" <ch*****@zettasystems.askme> wrote in message
news:ed**************@TK2MSFTNGP10.phx.gbl...
Thank you so much. Her page also has a lot of good links. Most of which
I've
already arrived at by way of google, but I would have found them all much faster if I had hit her page first.

I'm trying to contact her. She definitely seems like the right person to
help us.
It's my understanding that she no longer does accessibility testing, but

I'm not certain of that.

To help with the basics of the Accessibility support in the .NET Framework, spend some time reading the Active Accessibility documentation on MSDN.
That'll give you a background and introduce you to the concepts.

The child ID concept is explained at:
http://msdn.microsoft.com/library/en...aovrw_36gj.asp

Although reading it now, it's no more helpful than the first version of that topic written in 1997.

Basically the child ID is a number of a sub-object that doesn't have full
accessibility support. It appears in your case that each cell has full
support, thus you can return CHILDID_SELF (0x00).

Hope this helps.
-Charles Oppermann

Nov 16 '05 #5
Oops, I misread the docs. You can disregard a lot of what I wrote. It's
clear now, though. Thanks again.

"Pete Davis" <pd******@NOSPAM.hotmail.com> wrote in message
news:_8********************@giganews.com...
Thanks, that was very helpful. The .NET documentation on it doesn't really
make a lot of sense, so we've been going back and reading COM-based
documentation, as it has given us a lot more information and clearly we
missed this. Thanks.

It still seems we'll need to implement the child IDs for the
AccessibilityNotifyClients call, though. How else can we specify which
objects should be notified of changes?

I think part of our confusion was looking at the IAccessibility interface in ObjectBrowser where get_accChild returns an object. So we were thinking it
was an object implementing IAccessible, but clearly it's an int32.

Thanks again.

Pete
"Charles Oppermann" <ch*****@zettasystems.askme> wrote in message
news:ed**************@TK2MSFTNGP10.phx.gbl...
Thank you so much. Her page also has a lot of good links. Most of which I've
already arrived at by way of google, but I would have found them all much faster if I had hit her page first.

I'm trying to contact her. She definitely seems like the right person to help us.


It's my understanding that she no longer does accessibility testing, but

I'm
not certain of that.

To help with the basics of the Accessibility support in the .NET

Framework,
spend some time reading the Active Accessibility documentation on MSDN.
That'll give you a background and introduce you to the concepts.

The child ID concept is explained at:
http://msdn.microsoft.com/library/en...aovrw_36gj.asp

Although reading it now, it's no more helpful than the first version of

that
topic written in 1997.

Basically the child ID is a number of a sub-object that doesn't have full accessibility support. It appears in your case that each cell has full
support, thus you can return CHILDID_SELF (0x00).

Hope this helps.
-Charles Oppermann


Nov 16 '05 #6
Okay, if the ChildIDs are to be used for simple elements, (and I'm not using
simple elements) then how do I send a notification regarding a grandchild of
my control, though?

From the control itself, I need to call AccessibilityNotifyClients() if, for
example, a cell in my grid is selected. But if I pass CHILDID_SELF (which
actually, I haven't tracked down if there's an equivalent in .NET yet, I may
have to pull the value of an SDK header file), how does it know that the
notification is regarding a cell and not the grid itself? I assume this
matters.

Pete

"Pete Davis" <pd******@NOSPAM.hotmail.com> wrote in message
news:ZO********************@giganews.com...
Oops, I misread the docs. You can disregard a lot of what I wrote. It's
clear now, though. Thanks again.

"Pete Davis" <pd******@NOSPAM.hotmail.com> wrote in message
news:_8********************@giganews.com...
Thanks, that was very helpful. The .NET documentation on it doesn't really
make a lot of sense, so we've been going back and reading COM-based
documentation, as it has given us a lot more information and clearly we
missed this. Thanks.

It still seems we'll need to implement the child IDs for the
AccessibilityNotifyClients call, though. How else can we specify which
objects should be notified of changes?

I think part of our confusion was looking at the IAccessibility interface
in
ObjectBrowser where get_accChild returns an object. So we were thinking
it was an object implementing IAccessible, but clearly it's an int32.

Thanks again.

Pete
"Charles Oppermann" <ch*****@zettasystems.askme> wrote in message
news:ed**************@TK2MSFTNGP10.phx.gbl...
> Thank you so much. Her page also has a lot of good links. Most of which > I've
> already arrived at by way of google, but I would have found them all

much
> faster if I had hit her page first.
>
> I'm trying to contact her. She definitely seems like the right person to
> help us.

It's my understanding that she no longer does accessibility testing,
but I'm
not certain of that.

To help with the basics of the Accessibility support in the .NET

Framework,
spend some time reading the Active Accessibility documentation on
MSDN. That'll give you a background and introduce you to the concepts.

The child ID concept is explained at:
http://msdn.microsoft.com/library/en...aovrw_36gj.asp

Although reading it now, it's no more helpful than the first version of that
topic written in 1997.

Basically the child ID is a number of a sub-object that doesn't have

full accessibility support. It appears in your case that each cell has

full support, thus you can return CHILDID_SELF (0x00).

Hope this helps.
-Charles Oppermann



Nov 16 '05 #7
> Okay, if the ChildIDs are to be used for simple elements, (and I'm not
using
simple elements) then how do I send a notification regarding a grandchild
of
my control, though?
If you're not using simple elements, then each child is it's own object and
can generate events on it's own.
From the control itself, I need to call AccessibilityNotifyClients() if,
for
example, a cell in my grid is selected. But if I pass CHILDID_SELF (which
actually, I haven't tracked down if there's an equivalent in .NET yet, I
may
have to pull the value of an SDK header file), how does it know that the
notification is regarding a cell and not the grid itself? I assume this
matters.


CHILDID_SELF is zero (0x00).

If each cell is it's own object, then you should be able to reference the
actual child *object* and use it's ID property. The .NET Framework
reference shows this in the samples.

Feel free to e-mail me off-line at charles at coppersoftware dot com.
Nov 16 '05 #8
Okay, but where does the ID come from is my question.

You say:

"If each cell is it's own object, then you should be able to reference the
actual child *object* and use it's ID property."

Do you mean the child AccessibleObjects? Where does the ID come from? It's
not a member of AccessibleObject.

AccessibilityNotifyClients is in the Control class. So, from my grid class,
I'm calling this.NotifyAccessibilityClients(...).

Now, I have a GridAccessibleObject derived from
Control.ControlAccessibleObject. I have RowAccessibleObject,
ColumnAccessibleObject, and CellAccessibleObject all derived from
AccessibleObject (not Control.ControlAccessibleObject because non are actual
controls)

GridAccessibleObject contains rows and column. Rows contain cells.

So, back to the Grid class, if I'm calling AccessibilityNotifyClients(), how
do I specify a cell?

It can't be the index into GridAccessibleObject.GetChild() because the cells
are children of the Row, not the grid. It can't be the index into
Row.GetChild() because those overlap with the columns and grid and all the
other rows. Every row has a Child(0), for example.

The rows and cells aren't control, so there's no AccessibilityNotifyClients
to be called against a row or cell.

Is this all clear? Am I just completely missing something?

Pete

"Charles Oppermann" <ch*****@zettasystems.askme> wrote in message
news:Ol**************@TK2MSFTNGP12.phx.gbl...
Okay, if the ChildIDs are to be used for simple elements, (and I'm not
using
simple elements) then how do I send a notification regarding a grandchild of
my control, though?
If you're not using simple elements, then each child is it's own object

and can generate events on it's own.
From the control itself, I need to call AccessibilityNotifyClients() if,
for
example, a cell in my grid is selected. But if I pass CHILDID_SELF (which actually, I haven't tracked down if there's an equivalent in .NET yet, I
may
have to pull the value of an SDK header file), how does it know that the
notification is regarding a cell and not the grid itself? I assume this
matters.


CHILDID_SELF is zero (0x00).

If each cell is it's own object, then you should be able to reference the
actual child *object* and use it's ID property. The .NET Framework
reference shows this in the samples.

Feel free to e-mail me off-line at charles at coppersoftware dot com.

Nov 16 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

12
2155
by: JAMESICUS | last post by:
Refer to ..... http://news.com.com/2100-1032-5063444.html James Pickering Pickering Pages http://www.jp29.org/
9
2280
by: Barbara de Zoete | last post by:
I am getting more and more confused as to the meaning of the words 'accessibility' and 'usability' *in the context of the world wide web*. What do these two words mean? How do they differ from one...
5
2687
by: Dave Henson | last post by:
Hi I am checking a site for accessibility and Dreamweaver suggests making sure that the menu is accessible via keyboard as well as mouse (i.e device-independent). A question has arisen which is...
19
2101
by: lolo | last post by:
Hi, I know how validate a page for CSS or HTML, but I didn't found how validate my page for accessibility Thanx for your help
54
4305
by: richard_quick_uk | last post by:
Hi, If anyone's got the time I'd really appreciate any feedback on the accessibility of this site: http://www.cata.co.uk/_index.a­sp
3
1939
by: Edward Diener | last post by:
According to the CLS specification, the accessibility of the methods for adding, removing, and raising an event must be identical. There appear to be a few problems with this: 1) According to...
4
1157
by: darrel | last post by:
Anyone know of any resources dedicated to the discussion of Accessibility and .net? MS has about 2235 newsgroups on this server, but only one dedicated to accessibility. And that's for XP. :| ...
1
1161
by: krishnakant Mane | last post by:
has any one tried py gtk on windows? I tried to do a google search for accessibility related issues but did not find any thing specific to pygtk and windows accessibility. I even tried to search...
8
2034
by: cms-hispano.org | last post by:
i'm building a site about extreme accessibility, i.e.: how (and why) to get sites to become fully accessible, *beyond* W3C Web Accessibility Initiative guidelines. it's far from being completed (i...
0
7076
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
1
6984
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5576
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5005
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4670
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3162
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
3151
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
732
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
377
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.