Bug 25529 - [Gtk] Expected states not exposed to assistive technologies
: [Gtk] Expected states not exposed to assistive technologies
Status: VERIFIED FIXED
: WebKit
Accessibility
: 528+ (Nightly build)
: PC Linux
: P2 Normal
Assigned To:
:
: Gtk
:
: 25531
  Show dependency treegraph
 
Reported: 2009-05-03 15:30 PST by
Modified: 2009-07-27 14:17 PST (History)


Attachments
a11ystates.patch (3.17 KB, patch)
2009-06-17 03:11 PST, Xan Lopez
jmalonzo: review+
Review Patch | Details | Formatted Diff | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-05-03 15:30:32 PST
The Atk state types can be found here:

http://library.gnome.org/devel/atk/unstable/atk-AtkState.html#AtkStateType

A number of these states are not being exposed when they should be. A comparison with Firefox or with any Gtk+ app should be helpful. (Using Accerciser, view any page and then choose an accessible in the pane on the left. Then use the Interface Viewer, expanding "Accessible" to see the states being exposed for that object.)

That said, of especial/immediate interest are:

* STATE_SENSITIVE
* STATE_VISIBLE
* STATE_EDITABLE

because these three states frequently (arguably, almost constantly) impact what a screen reader such as Orca presents to the user interacting with the content being displayed.
------- Comment #1 From 2009-06-17 03:11:48 PST -------
Created an attachment (id=31407) [details]
a11ystates.patch

Implement requested states.

For now I'm just doing SHOWING = VISIBLE and ENABLED = SENSITIVE, since I'm not sure how to tell the subtle difference between those in WebCore (specially SHOWING vs VISIBLE, which seems to be a GTK+-ism related to MAPPED vs VISIBLE (as in the visible flag for widgets)).
------- Comment #2 From 2009-06-17 03:40:40 PST -------
(In reply to comment #1)

> For now I'm just doing SHOWING = VISIBLE and ENABLED = SENSITIVE, since I'm not
> sure how to tell the subtle difference between those in WebCore (specially
> SHOWING vs VISIBLE, which seems to be a GTK+-ism related to MAPPED vs VISIBLE
> (as in the visible flag for widgets)).

FYI: in GTK, SHOWING is a little more than VISIBLE&&MAPPING, as you said, as it also search if the widget has an antecedent that is a GtkViewPort, to check if the widget intersects with the visible rectangle of the GtkViewPort. I'm not sure if this can affects to WebKit.

And, in the same way, this could be not enough, and a extra condition could be required:
http://bugzilla.gnome.org/show_bug.cgi?id=509650
------- Comment #3 From 2009-06-25 16:42:32 PST -------
(From update of attachment 31407 [details])
> From 1939ce04b5b0025ffbdfee678a0ec0d52b24bedb Mon Sep 17 00:00:00 2001
> From: Xan Lopez <xlopez@igalia.com>
> Date: Wed, 17 Jun 2009 13:08:13 +0300
> Subject: [PATCH] 2009-06-17  Xan Lopez  <xlopez@igalia.com>

Assuming you've tested this, r=me. Also please add a the bugzilla.gnome.org bug link (by Alejandro) where appropriate so we can keep track what else is missing.

Thanks! (
------- Comment #4 From 2009-06-26 01:38:29 PST -------
Assigning to xan for corrections and landing.
------- Comment #5 From 2009-06-26 02:13:34 PST -------
Landed with a pointer to the bug pointed by Alejandro in r45252. Closing this now, new bugs can be opened about the issues remaining, if any.
------- Comment #6 From 2009-07-27 14:17:12 PST -------
Verifying. Thanks!