GNOME accessibility Report: Best of LSR and ARIA Support in Orca Milestone 4 ARIA Widget and Live Region Support By Scott Haeger Summary This milestone period encompassed four areas: continued work on ARIA widget support, live region support, Collection bug fixes and Collection integration into Orca. Each topic will be covered below. ARIA Widgets ARIA widget support continued from the fourth milestone period and is at a point where I consider it finished. This milestone period included adding support for alerts/tooltips, coordinating with developers to tweak several Dojo and UIUC widgets, and creation of several Orca ARIA related regression tests. The current support level for ARIA widgets is now best seen at the Orca ARIA Widgets wiki. The three tables listed show the support level of Orca and the ATSPI support level in Firefox for each widget type. ARIA Widget Test Sets In previous milestone periods I defined three sets of ARIA widgets that I would use for testing. These test sets include preexisting and newly developed Mozilla developer test widgets, The Dojo Widget Toolkit, and the Illinois Center for Information Technology Accessibility (UIUC) ARIA widget examples. Orca now has a set of regression tests that can verify Orca support for most of the ARIA widgets in each set. Live Regions The current support level for live regions in Orca is best seen on the Orca Live Region wiki. In summary, live region support for both properly marked up web pages and pages without proper ARIA markup has been in Orca for a couple weeks now and is working quite well. In addition, I wrote a few Greasemonkey scripts, which 'inject' live region markup for a few popular sports scoreboards that do not function well without proper markup.Orca live region support is now quite good for popular finance, scoreboards and web based chat sites. Collection The level of Collection integration into Orca is best seen on the Orca Collection Integration wiki. In summary, the page summary feature and many of the 'go to' user navigation functions in the Gecko script now have an alternative implementation using Collection. A global Orca variable allows the user to toggle the use of the new implementation and backward compatibility is maintained so the user is not forced to use the trunk version of at spi. Overall, the Collection interface gives about a 57 times performance increase for the navigation functions. Collection Bug Fixes It was essential that two critical Collection bugs be fixed before the Orca integration work. I was instrumental in fixing both of the following bugs: 496232 – Add traverse flag to Collection.getMatches[From|To] 517761 – Collection match rules not working for attributes Collection Integration into Orca The following bug reports were used to track the integration into Orca work: 490568 – Implement Firefox page summary using Collection 491837 – Implement Gecko 'go to' functions using Collection 519587 – Navigating nested lists with Collection not functioning properly Documentation The following wiki pages have been maintained during this milestone period: Orca ARIA Widget Support – This page describes ARIA widgets to the Orca user community, gives links to examples, and lists the level of support for each widget type. Orca Live Region Support – This page describes Live Regions to the Orca user community, gives links to examples, describes Greasemonkey and it's potential solution for Live Regions markup, and describes the level of support for popular websites containing Live Region. Orca Collection Interface Integration – This page describes the Collection Interface to the Orca user community and describes what features have been upgraded using the Collection Interface. Mozilla Developer's Center ARIA page – Validated all widgets for ATSPI support. In addition, the new Mozilla Developer's Guide to Live Regions has been added during this milestone period. This provides a set of guidelines an AT developer can reference when implementing live regions. Bug Report and Code Submittal Mozilla The following is a list of bugs that I have submitted since the beginning of my grant: 390298 - ATK hierarchy inconsistent for ARIA spinners 392061 - Live region object attributes are not being persisted for AT- SPI 393279 - ARIA checkboxTriState do not trigger object:state- changed:checked events 394318 - ARIA trees are triggering an unnecessary ATK caret- moved event 395041 - STATE_SELECTED should be used in single select containers that use activedescendant 395699 - relations not working when pointing to a <span> 395900 - Image frame changes causes recreation of ATK objects 395902 - children-changed event points to wrong child for lists 397485 - Embed characters to children not 1:1 402049 - ARIA tooltips triggering many repeated AT-SPI events 402597 - AT-SPI Accessibility:Event.user_data None for ARIA tooltips/alerts 412288 - Toolbar menus do not have ATK state focusable 412965 - ARIA sliders and progressbars should not support ATK IText 413394 - ARIA role="presentation" adds whitespace to AT-SPI IText output 415069 - ARIA alerts triggering events with :system 415776 - AT-SPI Collection Interface crashes Firefox 415919 - No AT-SPI focus event when returning focus to Firefox 417249 - AT-SPI document load complete events not triggered everytime Orca The dependency tree for the Orca ARIA support bug is the best view of the ARIA bugs and the dependency tree for the Orca Collection support bug is the best view of the Collection bug that I have been working on for Orca. Peer reviewed source code was submitted to the trunk branch of Orca's Subversion repository. ARIA widget support appeared in Orca versions as it was made available. Major Live Region support was added to the 2.21.90 and minor changes were added to the 2.21.92 release. Collection support is targeted for the 2.22.0 release.