If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Hidden cells of XUL tree item exposed to nsIAccessible::GetName().

RESOLVED WORKSFORME

Status

()

Core
Disability Access APIs
RESOLVED WORKSFORME
11 years ago
8 years ago

People

(Reporter: Gary Campbell, Assigned: Gary Campbell)

Tracking

(Depends on: 1 bug, Blocks: 1 bug, {access})

1.0 Branch
x86
Windows XP
access
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

11 years ago
User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0

The text of hidden columns in a tree view are included in the text of the tree item content returned to accessibility aids.

Reproducible: Always

Steps to Reproduce:
1.1.  Open DOM Inspector.
2.  From File menu choose to inspect new window, choose the DOM Inspector window.
3.  Navigate in the tree view with a screen reader such as JAWS.  Note that although the Namespace URI column is hidden, the URI is spoken by JAWS.

or:
1.  Open DOM Inspector.
2.  From File menu choose to inspect new window, choose the DOM Inspector window.
3.  Open Access Explorer.
4.  Select the DOM Inspector window.
5.  Navigate the object tree to:
6.  DOM Inspector[application - Visible]
7.    chrome://inspector/content/viewers/dom/dom.xul[Error: unexpected VARIANT - Visible]
8.      chrome://inspector/content/viewers/dom/dom.xul[pane - Visible]
9.        NAMELESS[outline - Visible]
10.          window  window    http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul  1    winInspectorMain    [outline item - Visible]
11.  Note that although the Namespace URI column is hidden, the URI appears in the Name property.

Actual Results:  
Text from hidden columns is spoken.

Expected Results:  
Text from hidden columns should not be spoken.

In the file seamonkey/accessible/src/msaa/nsXULTreeAccessibleWrap.cpp in method nsXULTreeitemAccessibleWrap::GetName, the following code collects the text of the treeitem's cells:

  while (column) {
    nsAutoString colText;
    mTreeView->GetCellText(mRow, column, colText);
    aName += colText + NS_LITERAL_STRING("  ");
    nsCOMPtr<nsITreeColumn> nextColumn;
    column->GetNext(getter_AddRefs(nextColumn));
    column = nextColumn;
  }

It looks like one could easily make the code that appends the text conditional on whether or not the column is hidden.

Found on Windows XP Home Edition, SP2 with Firefox 2.0 (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; 
rv:1.8.1) Gecko/20061010 Firefox/2.0 
and
rv:1.9a1) Gecko/20061106 Minefield/3.0a1) (downloaded from Latest Nightly link on 11/6/06).

I don't have MSVC++ and am probably just familiar enough with the Mozilla source tree to be dangerous, or I'd implement and test it myself.  I don't know for sure that this is the place in the tree to implement this, or if there are other places.  I didn't see something similar in the atk folder.

Thanks.

Updated

11 years ago
Assignee: general → aaronleventhal
Component: General → Disability Access APIs
Keywords: access
Product: Mozilla Application Suite → Core
QA Contact: general → accessibility-apis
Version: unspecified → 1.0 Branch

Updated

11 years ago
Status: UNCONFIRMED → NEW
Depends on: 356347
Ever confirmed: true
(Assignee)

Comment 1

9 years ago
Created attachment 344436 [details] [diff] [review]
Patches MSAA version of nsIAccessible::GetName to not include hidden tree columns.  This was fixed for ATK in 356347.

This was fixed for ATK in 356347.  Patch generated from /mozilla-central trunk (from changeset 65da9468c88b).  I have tested it by running DOM Inspector in the build of Firefox including the fix and verifying that namespace column was not spoken by JAWS 9.0.2169u in the DOM viewer with a XUL element selected.

Steps:
Start Firefox.
Open DOM Inspector.
Choose File > Chrome Document, and pick the DOM Inspector window.
In the left pane navigate to a window or page element.  Note that the namespace URI for XUL is not spoken by JAWS.  (To verify that there really is a hidden namespace URI, click the column picker icon and choose to show the namespace URI.  Verify that the namespace URI is now spoken by JAWS.)
Attachment #344436 - Flags: review?(aaronleventhal)
(Assignee)

Comment 2

9 years ago
OOPS!  Instead of nsIAccessible::GetName in my last comment I meant nsXULTreeitemAccessibleWrap::GetName.

Comment 3

9 years ago
Gary, please add mochitest for this

Comment 4

9 years ago
Comment on attachment 344436 [details] [diff] [review]
Patches MSAA version of nsIAccessible::GetName to not include hidden tree columns.  This was fixed for ATK in 356347.

Thanks. I will have Alex review.
Attachment #344436 - Flags: review?(aaronleventhal) → review?(surkov.alexander)

Comment 5

9 years ago
Code looks ok at the first glance but I really would like to get mochitest before review.

Comment 6

9 years ago
Gary, any chance to create mochitest?
(Assignee)

Comment 7

9 years ago
(In reply to comment #6)
> Gary, any chance to create mochitest?

I'm looking at it.  My available time just disappeared for a while.  Also, When I run the Mochitest a11y tests I get a bunch of fails, including stuff like:

17 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/a11y/accessible/test_bug368835.xul | Error thrown during test: uncaught exception: [Exception... "Component returned failure code: 0x80004002 (NS_NOINTERFACE) [nsISupports.QueryInterface]"  nsresult: "0x80004002 (NS_NOINTERFACE)"  location: "native frame :: <unknown filename> :: <TOP_LEVEL> :: line 0"  data: no] - got 0, expected 1

and:

120 INFO Running chrome://mochikit/content/a11y/accessible/test_textboxes.html...
121 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/a11y/accessible/test_textboxes.html | Error thrown during test: Components is not defined - got 0, expected 1
123 INFO Running chrome://mochikit/content/a11y/accessible/test_textboxes.xul...

124 ERROR TEST-UNEXPECTED-FAIL | chrome://mochikit/content/a11y/accessible/test_textboxes.xul | Error thrown during test: Components is not defined - got 0, expected 1

I'm running a system built on XP without the Vista stuff.

.mozconfig:
# mozilla config for Firefox
. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../obj-@CONFIG_GUESS@
ac_add_options --disable-vista-sdk-requirements   # from page refed in missing wpcapi.h error, caused by not new SDK installed.
# The following came from Mozilla Source Code (CVS) - MDC or Configuring Build Options - MDC web pages, should be covered by the above "source" command.
#ac_add_options --enable-application=browser
#mk_add_options MOZ_CO_PROJECT=browser

# Try to enable extensions Venkman and Inspector
#ac_add_options --enable-extensions=default,inspector,venkman

Now I have to go or I'm gonna have a lot more free time!

Gary

Updated

9 years ago
Attachment #344436 - Flags: review?(surkov.alexander)
Attachment #344436 - Flags: review?(marco.zehe)
Attachment #344436 - Flags: review+

Comment 8

9 years ago
Comment on attachment 344436 [details] [diff] [review]
Patches MSAA version of nsIAccessible::GetName to not include hidden tree columns.  This was fixed for ATK in 356347.

I missed actually it's MSAA part only, so there is no reason possibly to put platform-depended mochitest. Asking review from Marco to be sure all is going right.

Comment 9

9 years ago
Btw, some of our mochitest fail if you run them all together.

Updated

9 years ago
Attachment #344436 - Flags: review?(marco.zehe) → review+

Updated

9 years ago
Assignee: aaronleventhal → campg2003
Status: NEW → ASSIGNED
I'm not sure I want to take this bug yet. The problem is that most tree tables do not have a proper keyboard UI yet to change the columns configuration. In Thunderbird, for example, once this bug is fixed, the tree table of folder names will no longer expose the number of messages and the size of the folder to MSAA. If people got used to this information and want to get it back by enabling these columns, they currently have no way of doing so via the keyboard. See bug 370437.
Depends on: 370437
Friendly ping. Gary, any idea on my last comment?

Updated

9 years ago
Blocks: 491681
(Assignee)

Comment 12

9 years ago
I think I can manipulate the column picker with the JAWS cursor in the DOM inspector, but I wouldn't presume to speak for people using other products or other screen readers.  Still, since I haven't recreated a Mozilla build environment since my disk crash on Newyears, when I'm using the Inspector I often think about trying to figure out how to add a binary extension or something to update that file!  (Say "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" ten times fast!)

Comment 13

8 years ago
I believe the bug was fixed by some table reorganization works despite comment #10.

Marco, please file new one if there is anything we should address still (and of course if we don't have proper bug).

Closing the bug as worksforme.
Status: ASSIGNED → RESOLVED
Last Resolved: 8 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.