Accessibility/CacheTheWorld

From MozillaWiki
Jump to: navigation, search

About

Firefox's current architecture for multi-process accessibility suffers from severe performance issues and is costly and difficult to maintain due to the massively different and specialised approaches necessary on different operating systems. In addition, it is currently impossible to support builtin Windows accessibility tools such as Narrator and Windows Speech Recognition. This project aims to re-architect our multi-process accessibility support to cache the entire accessibility trees for all content processes within the parent process.

Meeting Notes

Jamie, Morgan, and Eitan meet weekly to discuss this project. You can find the meeting notes in this google doc.

Current Bug Tracking

Full Query
ID Summary Priority Status
1692523 Prefix local and remote hierarchy functions -- RESOLVED
1693597 Rename Accessible to LocalAccessible and ProxyAccessible to RemoteAccessible -- RESOLVED
1693607 [Linux] Add braces around statements -- RESOLVED
1694203 Have RemoteAccessible and LocalAccessible share the same base class -- RESOLVED
1694565 Implement AsLocal/AsRemote methods -- RESOLVED
1694566 Unified hierarchy for Accessible -- RESOLVED
1694569 Optimise memory usage for LocalAccessible/RemoteAccessible -- RESOLVED
1694571 Remove AccessibleOrProxy -- RESOLVED
1694572 Move all methods in LocalAccessible called by OS/XPCOM into Accessible (base) -- RESOLVED
1694573 Make AccEvent use new Accessible base class -- NEW
1694574 Create base a11y interfaces (HyperTextAccessible, etc.) -- RESOLVED
1694865 Separate Windows MSAA implementation into its own class hierarchy -- RESOLVED
1695116 Make Windows use RemoteAccessible for tree navigation and role -- RESOLVED
1695765 Remove AccessibleOrProxy from XPCOM -- RESOLVED
1700166 Cleanup obsolete remote interface enum and dependent constructors -- RESOLVED
1700260 RemoteAccessible cache storage mechanism -- RESOLVED
1700263 Framework for building and sending a11y cache data from content to parent -- RESOLVED
1700264 Cache accessible name -- RESOLVED
1710975 OuterDocAccessible::ChildCount probably returns wrong value on non-Windows platforms -- RESOLVED
1710976 Add a pref for Cache the World -- RESOLVED
1713272 Support IAccessible2 role, uniqueID, hwnd, indexInParent for RemoteAccessibles -- RESOLVED
1713551 Don't reserve MSAA id bits for the content process when the cache is enabled -- RESOLVED
1714390 Slim accessibility attributes -- RESOLVED
1715230 Get rid of RemoteAccessibleWrap on Windows -- RESOLVED
1725894 Support IEnumVARIANT for remote children when the cache is enabled -- RESOLVED
1726227 Cache bounds -- NEW
1726452 Make Name() an abstract Accessible method -- RESOLVED
1726695 Make MsaaAccessible use Accessible::Name -- RESOLVED
1727227 Add a static assert to ensure the size of the value variant in AccAttributes isn't unintentionally changed P1 RESOLVED
1727643 Cache numeric value fields -- RESOLVED
1728403 Add proper enum for cache update type in Cache IPDL message. -- RESOLVED
1728437 Don't populate entries in cache for absent/default fields -- RESOLVED
1728442 Cache accessible descriptions -- RESOLVED
1729058 Don't store DeleteEntry entries in cache -- RESOLVED
1729061 Log accessible cache discrepancies -- NEW
1729407 Cache friendly accessible text implementation -- RESOLVED
1730085 TextLeafPoint: Implement BOUNDARY_WORD_END and BOUNDARY_LINE_END -- NEW
1730086 TextLeafPoint: Implement HyperTextAccessible::TextBefore/AfterOffset using TextLeafPoint -- NEW
1730087 Rename hyperTextAccessible to LocalHyperTextAccessible -- RESOLVED
1730088 Implement unified HyperTextAccessibleBase -- NEW
1730090 TextLeafPoint: Implement BOUNDARY_PARAGRAPH -- NEW
1730093 Cache text and line offsets -- NEW
1730095 Implement Mac text navigation using TextLeafPoint/Range -- NEW
1730096 TextLeafPoint/Range: Implement support for format boundaries -- NEW
1730862 TextLeafPoint: Implement support for caret at end of wrapped line -- NEW
1730868 TextLeafPoint: Better handling for inline-block for line boundaries -- NEW
1731003 RemoteAccessible shouldn't try to call methods on a COM proxy if the cache is enabled -- RESOLVED
1731154 Make AccAttributes entries movable and avoid copies. P1 RESOLVED
1731374 Add string storage to AccAttributes with move semantics P1 NEW

49 Total; 13 Open (26.53%); 36 Resolved (73.47%); 0 Verified (0%);