Closed
Bug 81454
Opened 24 years ago
Closed 24 years ago
Active Accessibility: expose tag name and attribs
Categories
(SeaMonkey :: General, defect, P1)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla0.9.3
People
(Reporter: aaronlev, Assigned: aaronlev)
References
Details
(Keywords: access, Whiteboard: patch has r=,sr=)
Attachments
(5 files)
34.70 KB,
patch
|
Details | Diff | Splinter Review | |
36.32 KB,
patch
|
Details | Diff | Splinter Review | |
39.29 KB,
patch
|
Details | Diff | Splinter Review | |
40.91 KB,
patch
|
Details | Diff | Splinter Review | |
41.05 KB,
patch
|
Details | Diff | Splinter Review |
Active accessibility's IAccessible interface doesn't allow screen reader
vendors to get the actual tag name and attributes of a component.
Allow a QueryInterface from IAccessible to our own component, IAccessibleMoz,
that has the tag name, attributes and possibly style info for a node.
Assignee | ||
Updated•24 years ago
|
Status: NEW → ASSIGNED
Priority: -- → P1
Target Milestone: --- → mozilla0.9.2
Assignee | ||
Comment 1•24 years ago
|
||
Assignee | ||
Comment 2•24 years ago
|
||
I also have the original AccessibleMoz.idl file.
It imports oleacc.idl, which we can't distribute. You have to get it from the
Microsoft Platform SDK.
It generates AccessibleMoz.h and AccessibleMoz_i.c, both of which are used here
and needed by vendors who use IAccessibleMoz.
It also builds the proxy stub .dll, which an installer needs to call
regsvr32.exe on if this interface is to be used across process.
That creates a problem, because now either we have to prebuild the .dll and
include that in the tree somehow, or we have to convice Microsoft to let us
distribute oleacc.dll with their source.
Anyway where should I put this stuff? We need to store it somewhere.
How about widget/src/windows/accessiblemoz_idl
Assignee | ||
Comment 3•24 years ago
|
||
There have been big changes
The new public interface is called IMozNode. It basically mirrors the Mozilla
content DOM, but accross process boundaries.
It can be built as part of the mozilla project from .idl files.
I'll need a review from leaf or granrose or someone, otherwise I might break
some weird Windows platform.
Assignee | ||
Comment 4•24 years ago
|
||
There are potential build system breakages in this patch.
Leaf, when can you take a look at it>
Comment 5•24 years ago
|
||
that may have to wait til after 0.9.1 as leaf has a few 0.9.1 bugs to finish and
then we'll be in the 0.9.1 maelstrom.
Assignee | ||
Comment 6•24 years ago
|
||
Assignee | ||
Comment 7•24 years ago
|
||
Leaf says dveditz can review the makefile.win file in this patch.
I need this right away, to work with another software development company.
dveditz, are you available?
Assignee | ||
Comment 8•24 years ago
|
||
Comment 9•24 years ago
|
||
1) Don't use NS_WITH_SERVICE there is a different way. Look
at nsTableCell::GetAccessible to see how its done.
2) nsDOMTreeWalker::GetAccessible is called a lot. Its called on every node in
the tree. It could be potentially expensive to get the service each time. We
should see what the overhead is. I rather would have the DOMTreeWalker hold a
cached nsCOMPtr to the service that is set on construction. To make this call
more efficient.
get_firstChild, get_lastChild, get_previousSibling, get_nextSibling, don't use
MakeMozNode but should.
Assignee | ||
Comment 10•24 years ago
|
||
Comment 11•24 years ago
|
||
r=evaughan
Comment 12•24 years ago
|
||
i've sent a makefile.win for the new expose directory, when that makes it into
the patch, r=leaf
Assignee | ||
Comment 13•24 years ago
|
||
Comment 14•24 years ago
|
||
Could you please summarize your changes for someone who isn't really all that
familiar with accessability? Also, please enumerate the new build- and run-time
dependencies that you're adding (have you tested this on Win95? Win98? NT4.0?).
If there are new dependencies, can we add a switch to _not_ build this stuff?
(I'm nervous about the ``need file X from the platform SDK'' comment, above.
That could make it hard for a lot of people to build this, no?)
Comment 15•24 years ago
|
||
I managed to build this on win98, and i'm not sure i even have any supplemental
sdk's installed.
It'd be nice to verify this on a machine that is *known* for certain to not have
supplemental sdks, but i'm not sure where such a machine lives.
Assignee | ||
Comment 16•24 years ago
|
||
Chris,
It turns out we don't need that file from the platform SDK anymore.
What I've done is built an IMozNode interface that you can QI to from an
IAccessible. Normally what happens is: a screen reader or some other type of
accessibility aid sends us a WM_GETOBJECT window message, and we return an
IAccessible, implemented by Accessible.cpp. This gives them basic information
about some nodes in our content tree, such as role, name and state - sometimes
it has to traverse the frame tree instead. It's kind of a hybrid
between the two - not all nodes are exposed, and not all data are
exposed. You don't get attributes or tag names or styles. You get
whatever Microsoft thought you should get for a widget - basically
predifined enums that the raw data has been funneled into.
Accessible.cpp just proxies to nsAccessible.cpp to get all of that - which is
in the Accessibility.dll. That doesn't get loaded until this whole process gets
set in motion.
All of that stuff works already and is in the tree. This change is in here,
because for some vendors, IAccessible doesn't have enough - I needed to create
an MS COM interface so that they could grab exposed information about the actual
DOM nodes in our content tree. That way they can get attributes, tag names and
style data.
This interface is called IMozNode which is implemented by MozNode.cpp in the
class MozNode. Now Accessible just inherits from MozNode. MozNode lets you walk
the entire DOM tree, not just the selected pieces that IAccessible allowed.
Status: ASSIGNED → NEW
Comment 17•24 years ago
|
||
Ok, makes sense. Thanks. sr=waterson
Assignee | ||
Comment 19•24 years ago
|
||
It's part of our branch, being sr'd by waterson
Status: NEW → ASSIGNED
Assignee | ||
Comment 20•24 years ago
|
||
In trunk and branch.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Updated•21 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•