Bug 25529 - [Gtk] Expected states not exposed to assistive technologies
: [Gtk] Expected states not exposed to assistive technologies
Status: VERIFIED FIXED
Product: WebKit
Classification: Unclassified
Component: Accessibility
: 528+ (Nightly build)
: PC Linux
: P2 Normal
Assigned To: Xan Lopez
: Gtk
Depends on:
Blocks: 25531
  Show dependency treegraph
 
Reported: 2009-05-03 15:30 PDT by Joanmarie Diggs (irc: joanie)
Modified: 2009-07-27 14:17 PDT (History)
3 users (show)

See Also:


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

Note You need to log in before you can comment on or make changes to this bug.
Description Joanmarie Diggs (irc: joanie) 2009-05-03 15:30:32 PDT
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 Xan Lopez 2009-06-17 03:11:48 PDT
Created attachment 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 Alejandro Piñeiro 2009-06-17 03:40:40 PDT
(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 Jan Alonzo 2009-06-25 16:42:32 PDT
Comment on attachment 31407 [details]
a11ystates.patch

> 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 Eric Seidel 2009-06-26 01:38:29 PDT
Assigning to xan for corrections and landing.
Comment 5 Xan Lopez 2009-06-26 02:13:34 PDT
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 Joanmarie Diggs (irc: joanie) 2009-07-27 14:17:12 PDT
Verifying. Thanks!