Hi again Peter.
Orca master now treats the descendants of menus and toolbars as focus
mode widgets. Hopefully that will address the other problem you
reported. Please let me know. Thanks!
--joanie
On 08/06/2016 10:56 AM, Joanmarie Diggs wrote:
> Hey Peter.
>
> I believe I have fixed the presentation of your "most difficult hurdle."
> (Igalia happens to use Roundcube for webmail.) Please pull master and
> let me know. Then you can help me with my most difficult hurdle: Where
> is this collapsed button with the menu popup? If you tell me where it
> is, I will fix it.
>
> Thanks!
> --joanie
>
> On 08/06/2016 02:43 AM, Peter Vágner wrote:
>> Hello,
>>
>> It was a while ago that I have posted little about Roundcube mail.
>> That's a web based email client. Back in the days its authors were
>> working on a better accessibility support. They have even wiki pages
>> dedicated to accessibility so they can do as good as possible.
>> Looking at this wiki page we can see there are a lot of nice things they
>> have done. For example they have clearly identified section of the mail
>> app UI, marked them up with headings and aria roles, they are using
>> legend and fieldset in the forms with more items resembling desktop
>> style dialogs at least from the accessibility related standpoint, they
>> are using aria-expanded state and aria-popup properties to denote the
>> fact pressing a control may reveal more content, they have implemented
>> some menus resembling desktop style popup menus, there is accessible
>> list box in the contacts window of the email app.
>>
>> All this is working great when used in firefox and orca running with
>> some little exceptions for example when the collapsed button is given
>> the focus orca switches to focus mode. When the button is pressed a menu
>> pops up. First item of that menu is a checkbox and focusing the checkbox
>> makes orca to switch back into browse mode. I know this is a bit
>> complex, changing how orca switches to focus mode or browse mode is
>> difficult decision. Still I think we can slowly improve this. Perhaps
>> trying to get a bit more inspiration from NVDA would be a sane approach.
>>
>> And now the most difficult hurdle. There is a table listing email
>> messages. Each table row coresponds to a single message in the list.
>> When looking at the DOM in the Firefox dev tools This row has additional
>> cells inside. And the first cell has link inside, other cells do usually
>> only have text and formatting. When looking at the same table using
>> Accerciser I can see the Firefox correctly computes accessible name for
>> the entire row. It's made up of the accessible texts of all its
>> children. So far so good it appears we would get their accessibility
>> support at our end in orca for free. Unfortunatelly this is more
>> complicated than that.
>> When arrowing up and down in this table, orca is correctly reporting
>> focus changes, however, there is no text to report. From the fact focus
>> is working here is that most likely they are using active descendants
>> and a bit of _javascript_ magic to provide keyboard navigation within this
>> table.
>> When looking for the events we are getting using Accerciser I can see
>> the following output. First I tab into a link, next I tab into that
>> table and keep pressing up and down arrow keys:
>>
>> source: [link | Size]
>> application: [application | Firefox]
>> object:state-changed:focused(1, 0, 0)
>> source: [link | Size]
>> application: [application | Firefox]
>> object:text-selection-changed(0, 0, )
>> source: [link | Size]
>> application: [application | Firefox]
>> object:text-caret-moved(0, 0, 0)
>> source: [link | Size]
>> application: [application | Firefox]
>> focus:(0, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:state-changed:focused(1, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-selection-changed(0, 0, )
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-caret-moved(0, 0, 0)
>> source: [section | ]
>> application: [application | Firefox]
>> focus:(0, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:state-changed:focused(1, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-selection-changed(0, 0, )
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-caret-moved(0, 0, 0)
>> source: [section | ]
>> application: [application | Firefox]
>> focus:(0, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:state-changed:focused(1, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-selection-changed(0, 0, )
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-caret-moved(0, 0, 0)
>> source: [section | ]
>> application: [application | Firefox]
>> focus:(0, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:state-changed:focused(1, 0, 0)
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-selection-changed(0, 0, )
>> source: [table cell | ]
>> application: [application | Firefox]
>> object:text-caret-moved(0, 0, 0)
>> source: [section | ]
>> application: [application | Firefox]
>> object:property-change:accessible-parent(0, 0, [section | ])
>> source: [section | ]
>> application: [application | Firefox]
>> object:children-changed:add:system(0, 0, [section | ])
>> source: [section | ]
>> application: [application | Firefox]
>> object:text-changed:insert:system(0, 1, )
>> source: [section | ]
>> application: [application | Firefox]
>> object:text-changed:delete:system(0, 4, 6872)
>> source: [section | ]
>> application: [application | Firefox]
>> object:children-changed:remove:system(-1, 0, [section | ])
>> source: [section | ]
>> application: [application | Firefox]
>> object:text-changed:delete:system(0, 1, )
>> source: [section | ]
>> application: [application | Firefox]
>> object:text-changed:insert:system(0, 4, 6872)
>> source: [section | ]
>> application: [application | Firefox]
>>
>>
>> I think that's good for an example.
>> I haven't managed to investigate further what's wrong but with NVDA and
>> Firefox on Windows this table is accessible.
>> I am speculating on how to go about improving this.
>> Are roundcube developers setting wrong active descendants here if we are
>> getting focus events on the cell rather than its parent row? When
>> looking at the row states with Accerciser the row never includes focused
>> within its states.
>> Might Firefox possibly be giving us false information when firing these
>> events? I would guess it makes perfect sense at the Roundcube developers
>> side of things to refer to the table row rather than a cell inside.
>> What is NVDA on Windows doing in order to overcome this? Or is Firefox
>> on Windows likelly to fire different events?
>>
>> I'll try to look at this app with NVDA to discover more. I will also
>> test it in more browsers on Windows to get an idea whether it might be
>> sane hacking this around at Roundcube side of things.
>>
>> Still if you can help a bit with this or give some ideas I would be
>> happy. Also for testing I can give out temporary email accounts with
>> access to my company install of Roundcube so you can see what's going on
>> if you have no access to such enviromment for testing.
>>
>> Thunderbird is most resource intensive app on my system with my huge
>> mailboxes that's sometimes getting insane, so I am looking for ways on
>> how to overcome this. Trying to fix a web app appears to be most easiest
>> from options I have explored so far so it's why I'm trying to find a
>> solution to this.
>>
>> Thanks and greetings
>>
>> Peter
>>
>> _______________________________________________
>> orca-list mailing list
>> orca-list gnome org
>> https://mail.gnome.org/mailman/listinfo/orca-list
>> Orca wiki: https://wiki.gnome.org/Projects/Orca
>> Orca documentation: https://help.gnome.org/users/orca/stable/
>> GNOME Universal Access guide:
>> https://help.gnome.org/users/gnome-help/stable/a11y.html
>> Log bugs and feature requests at http://bugzilla.gnome.org
>
> _______________________________________________
> orca-list mailing list
> orca-list gnome org
> https://mail.gnome.org/mailman/listinfo/orca-list
> Orca wiki: https://wiki.gnome.org/Projects/Orca
> Orca documentation: https://help.gnome.org/users/orca/stable/
> GNOME Universal Access guide: https://help.gnome.org/users/gnome-help/stable/a11y.html
> Log bugs and feature requests at http://bugzilla.gnome.org
>