Re: [orca-list] Roundcube mail possibly accessibility of other rich web apps



Hello,
This is more than awesome. This must be magic. To make that table reporting when in focus mode it appears you have just added _generateTableCellRow() into the speach and braille generator. For less experienced developer that would be a difficult task.

The follow up commit where you are fixing focus mode widgets irons all nits I was able to find while using Roundcube. Now this is fully accessible and very predictable to work with. For anyone dealing with huge mailboxes, relying on imap search I definatelly recommend giving Roundcube with Orca and Firefox a try. Address book and settings are also all fully accessible.

When coupled with other fixes you have done today I think it potentialy contributes to even more awesome experience with other rich web apps.

There is one worth noting feature still missing at the Roundcube side of things. Multiselection capability of email messages list is not yet communicated via ARIA markup and supporting _javascript_ code.

Greetings

Peter


2016-08-06 19:01 GMT+02:00 Joanmarie Diggs <jdiggs igalia com>:
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
>




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]