Accessibility/CacheTheWorld: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Add assignee to bug tracker)
(Added Roadmap.)
Line 5: Line 5:
Jamie, Morgan, and Eitan meet weekly to discuss this project. You can find the meeting notes in [https://docs.google.com/document/d/1JpjAgOM793shYIR0vcFKmmE2RIpJ33RoLuX8NzNWPq4/edit?usp=sharing this google doc].  
Jamie, Morgan, and Eitan meet weekly to discuss this project. You can find the meeting notes in [https://docs.google.com/document/d/1JpjAgOM793shYIR0vcFKmmE2RIpJ33RoLuX8NzNWPq4/edit?usp=sharing this google doc].  


== Current Bug Tracking ==
== Roadmap ==
Given the large scope of the project, we are breaking the project down into quarterly milestones. Each milestone will aim to support a set of user scenarios. This roadmap is in the early stages and subject to significant change. It will be updated as milestones become clearer, with future milestones being less well defined than earlier ones.


=== Milestone 0: December 2021 ===
Initial proof of concept.
All testing will be performed with the NVDA screen reader, for two reasons:
# Cache the World is all or nothing on Windows. That makes it easy to determine where we're at regarding real world usage.
# The performance benefits are most necessary and noticeable on Windows.
In milestone 0, the following capabilities will be provided:
# Reading and navigating a page with text, links and headings.
# Plain text editing: reading the line of text when focused; backspacing; moving the caret by line, word and character.
# Access to formatting information: font, bold/italic, etc.
# Access to screen coordinates on simple pages.
# Loading very large pages will be at least 10x faster with the cache than without.
==== Test Scenarios ====
# Do a Google search, navigate the results using heading navigation and follow a result link.
# Fill out the form for a Google Advanced Search.
# Go to https://www.reaper.fm. Check the formatting of the “This is REAPER.” text (which isn’t a heading even though it should be) and confirm that the font size is reported as bigger than the paragraph of text below it.
# Build Gecko in the background. Do a Google search. Verify that the browser does not become unresponsive.
# Load https://searchfox.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp. Page should take < 10 sec to be usable.
# Open Gmail, find a message in the inbox, open it, read it, return to the inbox.
# Compose a message in Gmail containing text, a link, a bulleted list and a block quote. Read back through the message.
# Open Slack, use the quick switcher to switch to a channel, read some messages, write a message.
==== Bugzilla ====
Note that the roadmap wasn't created until late in milestone 0, so many bugs are missing below.
<bugzilla>
    {
        "quicksearch": "ALL whiteboard:[ctw-m0]",
        "include_fields": "id, summary, assigned_to, status"
    }
</bugzilla>
=== Milestone 1: March 2022 ===
Android.
The primary focus of this milestone is getting the cache working for Android. Mozilla aims to implement Fission for Android in 2022h1. Modifying the existing multi-process architecture to support Fission on Android will require significant engineering effort. Rather than investing in a solution which we will be throwing away once the cache is implemented, we will instead switch Android to use the cache and extend the cache to include functionality required by Android.
In milestone 1, the following capabilities will be provided:
# The cache will support GroupPosition.
# TextLeafRange will support word end and line end boundaries, which are needed for Android text navigation.
# Pivot will support navigating text using TextLeafRange, which is needed for Android text navigation.
# Cached screen bounds will be updated appropriately when scrolling.
# Android will use the cache for all functionality except hit testing.
# As an interim solution, Android will use the existing async IPDL mechanism for hit testing, updated to target the call at the correct document to handle OOP iframes. (Synchronous hit testing in the core cache will take longer to implement and will be done in a future milestone.)
==== Test Scenarios ====
# TBD: simple website reading. News site?
# TBD: filling a form.
# TBD: character/word/line navigation.
# With Talkback, load https://www.nvaccess.org/. Navigate to the embedded video in four different ways: item navigation, explore by touch, controls navigation and Talkback search. Activate the Play button to play the video.
==== Bugzilla ====
<bugzilla>
    {
        "quicksearch": "ALL whiteboard:[ctw-m1]",
        "include_fields": "id, summary, assigned_to, status"
    }
</bugzilla>
=== Milestone 2: June 2022 ===
TBD. Opt-in user preview. Enable in Nightly?
=== Milestone 3: September 2022 ===
TBD. Beta experiment? Release experiment?
== Backlog ==
<bugzilla>
<bugzilla>
     {
     {
         "product": ["Core"],
         "quicksearch": "ALL blocked:1694563,1733486,1735970,1733417 -whiteboard:[ctw-m",
        "component": ["Disability Access APIs"],
         "include_fields": "id, summary, assigned_to, status"
        "bug_status": ["NEW", "ASSIGNED", "REOPENED", "UNCONFIRMED", "RESOLVED"],
         "include_fields": "id, summary, assigned_to, status",
        "f1": "blocked",
        "o1": "equals",
        "v1": 1694563
     }
     }
</bugzilla>
</bugzilla>

Revision as of 02:47, 22 December 2021

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.

Roadmap

Given the large scope of the project, we are breaking the project down into quarterly milestones. Each milestone will aim to support a set of user scenarios. This roadmap is in the early stages and subject to significant change. It will be updated as milestones become clearer, with future milestones being less well defined than earlier ones.

Milestone 0: December 2021

Initial proof of concept.

All testing will be performed with the NVDA screen reader, for two reasons:

  1. Cache the World is all or nothing on Windows. That makes it easy to determine where we're at regarding real world usage.
  2. The performance benefits are most necessary and noticeable on Windows.

In milestone 0, the following capabilities will be provided:

  1. Reading and navigating a page with text, links and headings.
  2. Plain text editing: reading the line of text when focused; backspacing; moving the caret by line, word and character.
  3. Access to formatting information: font, bold/italic, etc.
  4. Access to screen coordinates on simple pages.
  5. Loading very large pages will be at least 10x faster with the cache than without.

Test Scenarios

  1. Do a Google search, navigate the results using heading navigation and follow a result link.
  2. Fill out the form for a Google Advanced Search.
  3. Go to https://www.reaper.fm. Check the formatting of the “This is REAPER.” text (which isn’t a heading even though it should be) and confirm that the font size is reported as bigger than the paragraph of text below it.
  4. Build Gecko in the background. Do a Google search. Verify that the browser does not become unresponsive.
  5. Load https://searchfox.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp. Page should take < 10 sec to be usable.
  6. Open Gmail, find a message in the inbox, open it, read it, return to the inbox.
  7. Compose a message in Gmail containing text, a link, a bulleted list and a block quote. Read back through the message.
  8. Open Slack, use the quick switcher to switch to a channel, read some messages, write a message.

Bugzilla

Note that the roadmap wasn't created until late in milestone 0, so many bugs are missing below.

Full Query
ID Summary Assigned to Status
1735955 Cached bounds all 0s for many (most?) elements on Google search James Teh [:Jamie] RESOLVED
1739050 If the focused Accessible is moved, the RemoteAccessible is recreated but focus isn't fired on it (AKA broken Google Search box on Windows + CTW) James Teh [:Jamie] RESOLVED
1741792 Cache the caret James Teh [:Jamie] RESOLVED
1742902 Fix window emulation when the cache is enabled James Teh [:Jamie] RESOLVED
1742915 Cache tag object attribute James Teh [:Jamie] RESOLVED
1742917 Implement StartOffset for RemoteAccessible and LinkIndexAtOffset for HyperTextAccessibleBase James Teh [:Jamie] RESOLVED
1746827 Crash in [@ PLDHashTable::Search | mozilla::a11y::RemoteAccessibleBase<T>::MinValue] James Teh [:Jamie] RESOLVED

7 Total; 0 Open (0%); 7 Resolved (100%); 0 Verified (0%);


Milestone 1: March 2022

Android.

The primary focus of this milestone is getting the cache working for Android. Mozilla aims to implement Fission for Android in 2022h1. Modifying the existing multi-process architecture to support Fission on Android will require significant engineering effort. Rather than investing in a solution which we will be throwing away once the cache is implemented, we will instead switch Android to use the cache and extend the cache to include functionality required by Android.

In milestone 1, the following capabilities will be provided:

  1. The cache will support GroupPosition.
  2. TextLeafRange will support word end and line end boundaries, which are needed for Android text navigation.
  3. Pivot will support navigating text using TextLeafRange, which is needed for Android text navigation.
  4. Cached screen bounds will be updated appropriately when scrolling.
  5. Android will use the cache for all functionality except hit testing.
  6. As an interim solution, Android will use the existing async IPDL mechanism for hit testing, updated to target the call at the correct document to handle OOP iframes. (Synchronous hit testing in the core cache will take longer to implement and will be done in a future milestone.)

Test Scenarios

  1. TBD: simple website reading. News site?
  2. TBD: filling a form.
  3. TBD: character/word/line navigation.
  4. With Talkback, load https://www.nvaccess.org/. Navigate to the embedded video in four different ways: item navigation, explore by touch, controls navigation and Talkback search. Activate the Play button to play the video.

Bugzilla

Full Query
ID Summary Assigned to Status
1730085 TextLeafPoint: Implement BOUNDARY_WORD_END and BOUNDARY_LINE_END James Teh [:Jamie] RESOLVED
1730086 TextLeafPoint: Implement HyperTextAccessible::TextBefore/AfterOffset using TextLeafPoint James Teh [:Jamie] RESOLVED
1730090 TextLeafPoint: Implement BOUNDARY_PARAGRAPH James Teh [:Jamie] RESOLVED
1733268 Cache OPAQUE1 state (no state change event) Morgan Reschenberg [:morgan] RESOLVED
1735970 New table implementation which can work with the cache James Teh [:Jamie] RESOLVED
1737944 Implement GroupPosition for cached RemoteAccessibles Eitan Isaacson [:eeejay] RESOLVED
1741793 Cache text selection James Teh [:Jamie] RESOLVED
1746833 Implement textual value for cached RemoteAccessibles Eitan Isaacson [:eeejay] RESOLVED
1747172 Make Pivot text functions use HyperTextAccessibleBase James Teh [:Jamie] RESOLVED
1747835 Cache text input type Eitan Isaacson [:eeejay] RESOLVED
1748749 Cache ActionCount/ActionNameAt Eitan Isaacson [:eeejay] RESOLVED
1749828 Support cached grouppos in windows and xpcom Eitan Isaacson [:eeejay] RESOLVED
1752380 Support actions in linkable accessible's indirect actions Eitan Isaacson [:eeejay] RESOLVED
1754360 Move EndOffset to base Accessible James Teh [:Jamie] RESOLVED
1755420 Clean up HyperTextAccessible methods now that all boundaries are supported by TextLeafPoint James Teh [:Jamie] RESOLVED
1755817 Implement cached version of LandmarkRole Eitan Isaacson [:eeejay] RESOLVED
1756229 Cache scroll offset Morgan Reschenberg [:morgan] RESOLVED
1756528 TextRange::Crop doesn't crop siblings James Teh [:Jamie] RESOLVED
1757812 Make android pivot traversal rules remote friendly. Eitan Isaacson [:eeejay] RESOLVED
1758009 Description is not proxied in RemoteAccessibleWrap Eitan Isaacson [:eeejay] RESOLVED
1758540 Pref on a11y.cache.enabled in Android Eitan Isaacson [:eeejay] RESOLVED
1758559 Add cross domain iframe tests to Android a11y tests Eitan Isaacson [:eeejay] RESOLVED
1758592 Use pivot result to determine boundaries in parent-side traversal Eitan Isaacson [:eeejay] RESOLVED
1758811 Stop using java cache when gecko a11y cache is enabled Eitan Isaacson [:eeejay] RESOLVED
1760735 Support TableAccessibleBase in AccGroupInfo James Teh [:Jamie] RESOLVED
1765430 Remove RemoteAccessibleWrap and map accessibles to their IDs in SessionAccessibility. Eitan Isaacson [:eeejay] RESOLVED
1765433 Make GetNodeInfo and Pivot methods run safely in Android UI thread Eitan Isaacson [:eeejay] RESOLVED
1768726 Make RemoteAccessibleBase::BoundsWithOffset thread safe for Android Eitan Isaacson [:eeejay] RESOLVED
1768913 Don't send WINDOW_CONTENT_CHANGED when about:blank loads Eitan Isaacson [:eeejay] RESOLVED
1768927 Don't use StringBundle off main thread Eitan Isaacson [:eeejay] RESOLVED
1768972 DocAccessibleParent::AddChildDoc calls RecvEvent causing monitor lock reentry Eitan Isaacson [:eeejay] RESOLVED
1769640 Cache AppUnitsPerDevPixel in top DocAccessibleParents Eitan Isaacson [:eeejay] RESOLVED
1771271 102.0a1 Crash Report PLDHashTable::Search | mozilla::a11y::RemoteAccessibleBase<T>::RetrieveCachedBounds Eitan Isaacson [:eeejay] RESOLVED
1771931 Crash in [@ OOM | large | NS_ABORT_OOM | nsTArray_base<T>::EnsureCapacity<T> | mozilla::a11y::CachedTableAccessible::EnsureRowCol] James Teh [:Jamie] RESOLVED
1771934 Crash in [@ mozilla::a11y::AccessibleWrap::GetVirtualViewID] James Teh [:Jamie] RESOLVED
1772019 Delay WillRefresh until PresShell is initialized Eitan Isaacson [:eeejay] RESOLVED
1772032 Crash in [@ nsContentUtils::GetLinkLocation] Eitan Isaacson [:eeejay] RESOLVED
1772165 Turn off ctw on Android Beta/Release Eitan Isaacson [:eeejay] RESOLVED
1772170 Crash in [@ mozilla::a11y::TextRange::CommonParent] James Teh [:Jamie] RESOLVED
1773260 Crash in [@ mozilla::a11y::SessionAccessibility::PopulateNodeInfo] RESOLVED

40 Total; 0 Open (0%); 40 Resolved (100%); 0 Verified (0%);


Milestone 2: June 2022

TBD. Opt-in user preview. Enable in Nightly?

Milestone 3: September 2022

TBD. Beta experiment? Release experiment?

Backlog

Full Query
ID Summary Assigned to Status
1372296 [CtW] Unify ScrollSubstringToPoint James Teh [:Jamie] RESOLVED
1692523 Prefix local and remote hierarchy functions Eitan Isaacson [:eeejay] RESOLVED
1693597 Rename Accessible to LocalAccessible and ProxyAccessible to RemoteAccessible Eitan Isaacson [:eeejay] RESOLVED
1693607 [Linux] Add braces around statements Eitan Isaacson [:eeejay] RESOLVED
1694203 Have RemoteAccessible and LocalAccessible share the same base class Eitan Isaacson [:eeejay] RESOLVED
1694565 Implement AsLocal/AsRemote methods Eitan Isaacson [:eeejay] RESOLVED
1694566 Unified hierarchy for Accessible Eitan Isaacson [:eeejay] RESOLVED
1694569 Optimise memory usage for LocalAccessible/RemoteAccessible Morgan Reschenberg [:morgan] RESOLVED
1694571 Remove AccessibleOrProxy Morgan Reschenberg [:morgan] RESOLVED
1694572 Move all methods in LocalAccessible called by OS/XPCOM into Accessible (base) RESOLVED
1694573 Unify platform event firing across local and remote Accessibles James Teh [:Jamie] RESOLVED
1694574 Create base a11y interfaces (HyperTextAccessible, etc.) RESOLVED
1694865 Separate Windows MSAA implementation into its own class hierarchy James Teh [:Jamie] RESOLVED
1695116 Make Windows use RemoteAccessible for tree navigation and role James Teh [:Jamie] RESOLVED
1695765 Remove AccessibleOrProxy from XPCOM Eitan Isaacson [:eeejay] RESOLVED
1700166 Cleanup obsolete remote interface enum and dependent constructors Eitan Isaacson [:eeejay] RESOLVED
1700260 RemoteAccessible cache storage mechanism Morgan Reschenberg [:morgan] RESOLVED
1700263 Framework for building and sending a11y cache data from content to parent Eitan Isaacson [:eeejay] RESOLVED
1700264 Cache accessible name Eitan Isaacson [:eeejay] RESOLVED
1704658 Implement ParamTraits to serialize nsAtom David Parks [:handyman] RESOLVED
1710975 OuterDocAccessible::ChildCount probably returns wrong value on non-Windows platforms James Teh [:Jamie] RESOLVED
1710976 Add a pref for Cache the World James Teh [:Jamie] RESOLVED
1713272 Support IAccessible2 role, uniqueID, hwnd, indexInParent for RemoteAccessibles James Teh [:Jamie] RESOLVED
1713551 Don't reserve MSAA id bits for the content process when the cache is enabled James Teh [:Jamie] RESOLVED
1714390 Slim accessibility attributes Eitan Isaacson [:eeejay] RESOLVED
1715230 Get rid of RemoteAccessibleWrap on Windows James Teh [:Jamie] RESOLVED
1725894 Support IEnumVARIANT for remote children when the cache is enabled James Teh [:Jamie] RESOLVED
1726227 Cache bounds Morgan Reschenberg [:morgan] RESOLVED
1726452 Make Name() an abstract Accessible method Eitan Isaacson [:eeejay] RESOLVED
1726695 Make MsaaAccessible use Accessible::Name Morgan Reschenberg [:morgan] RESOLVED
1727227 Add a static assert to ensure the size of the value variant in AccAttributes isn't unintentionally changed James Teh [:Jamie] RESOLVED
1727643 Cache numeric value fields Eitan Isaacson [:eeejay] RESOLVED
1728403 Add proper enum for cache update type in Cache IPDL message. Eitan Isaacson [:eeejay] RESOLVED
1728437 Don't populate entries in cache for absent/default fields Eitan Isaacson [:eeejay] RESOLVED
1728442 Cache accessible descriptions Eitan Isaacson [:eeejay] RESOLVED
1729058 Don't store DeleteEntry entries in cache Eitan Isaacson [:eeejay] RESOLVED
1729061 Log accessible cache discrepancies Eitan Isaacson [:eeejay] RESOLVED
1729407 Cache friendly accessible text implementation James Teh [:Jamie] RESOLVED
1730087 Rename hyperTextAccessible to LocalHyperTextAccessible RESOLVED
1730088 Implement unified HyperTextAccessibleBase for TextSubstring, TextAtOffset and CharacterCount James Teh [:Jamie] RESOLVED
1730093 Cache text and line offsets James Teh [:Jamie] RESOLVED
1730096 TextLeafPoint/Range: Implement support for format boundaries James Teh [:Jamie] RESOLVED
1730862 TextLeafPoint: Implement support for caret at end of wrapped line James Teh [:Jamie] RESOLVED
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 James Teh [:Jamie] RESOLVED
1731154 Make AccAttributes entries movable and avoid copies. Eitan Isaacson [:eeejay] RESOLVED
1731374 Add string storage to AccAttributes with move semantics Eitan Isaacson [:eeejay] RESOLVED
1732179 [CTW] Bounds are incorrectly calculated for transformed documents Nathan LaPré VERIFIED
1732944 "No remote found!" assertion reached when cache is enabled Eitan Isaacson [:eeejay] RESOLVED
1733188 [meta] Notify of state changes for caching purposes RESOLVED
1733417 [meta] Cache relations RESOLVED
1733486 [meta] Cache text RESOLVED
1733513 Implement IAccessibleText nCharacters, text, textAtOffset and caretOffset for RemoteAccessible James Teh [:Jamie] RESOLVED
1733514 Add basic testing for text caching James Teh [:Jamie] RESOLVED
1734322 Get RemoteAccessible::DOMNodeID working on Windows with the cache enabled James Teh [:Jamie] RESOLVED
1734540 Make it possible to use HTML snippets in the parent process for a11y browser tests James Teh [:Jamie] RESOLVED
1734582 Make TextLeafPoint handle display: contents James Teh [:Jamie] RESOLVED
1734583 Text cache retrieval should null check mCachedFields and verify the cache James Teh [:Jamie] RESOLVED
1734695 Add cache-safe test functions Eitan Isaacson [:eeejay] RESOLVED
1735706 Non-Windows RemoteAccessible should check cache pref instead of mCachedFields James Teh [:Jamie] RESOLVED
1735722 Unify LinkAt in HyperTextAccessibleBase James Teh [:Jamie] RESOLVED
1735952 Fix IAccessibleValue and accLocation for cached RemoteAccessibles James Teh [:Jamie] RESOLVED
1735953 Temporary hacks to get NVDA virtual buffers rendering from the cache James Teh [:Jamie] RESOLVED
1735969 Implement PDocAccessible::TakeFocus on Windows James Teh [:Jamie] RESOLVED
1738032 Push initial states to the cache and update using events James Teh [:Jamie] RESOLVED
1738051 Support focused state in the cache James Teh [:Jamie] RESOLVED
1739559 Cache isn't updated when text attributes change NEW
1743064 With cache enabled, opening a Gmail message renders incorrectly in NVDA buffer James Teh [:Jamie] RESOLVED
1743749 Clean up use of atoms for cache keys James Teh [:Jamie] RESOLVED
1743967 Implement DoAction for cached RemoteAccessible on Windows Eitan Isaacson [:eeejay] RESOLVED
1743968 Cache the display object attribute James Teh [:Jamie] RESOLVED
1747157 A11y browser tests run in the parent process (chrome: true) can't use certain elements due to sanitizer James Teh [:Jamie] RESOLVED
1754675 Loading w3c.github.io/aria crashes Firefox with CTW enabled James Teh [:Jamie] RESOLVED
1754680 Bullets treated as embedded objects by RemoteAccessible (AKA li elements broken with NVDA + CTW) James Teh [:Jamie] RESOLVED
1754905 Reimagine XPCOM testing for Pivot Eitan Isaacson [:eeejay] RESOLVED
1755383 Move SelectAccessible methods to Accessible Eitan Isaacson [:eeejay] RESOLVED
1756730 Crash when fetching text attributes while loading Microsoft Docs pages with CTW + NVDA James Teh [:Jamie] RESOLVED
1757127 Cache Language James Teh [:Jamie] RESOLVED
1757257 Firefox consistently hits MOZ_ASSERT(rootFrame, "No frame for accessible!") with cache enabled James Teh [:Jamie] RESOLVED
1757260 Cache initial focus, caret and text selection NEW
1757661 Expose mCachedFields in test harness Morgan Reschenberg [:morgan] RESOLVED
1763214 Cache image position Morgan Reschenberg [:morgan] RESOLVED
1764739 State change event not fired when document designMode is turned off RESOLVED
1764750 [CTW] Document sometimes keeps stale state James Teh [:Jamie] RESOLVED
1765217 Cleanup: Add OPAQUE1 to kRemoteCalculatedStates James Teh [:Jamie] RESOLVED
1765651 Move DOMNodeID getter to Accessible Eitan Isaacson [:eeejay] RESOLVED
1765964 [CTW] Don't send scroll position if it's 0 James Teh [:Jamie] RESOLVED
1765968 [CTW] Use QueueCacheUpdate instead of SendCacheUpdate wherever possible James Teh [:Jamie] RESOLVED
1766147 Cleanup: Get rid of Accessible::IsProxy and eProxyType AccType James Teh [:Jamie] RESOLVED
1766514 RemoteAccessible::TableIsProbablyForLayout does not use cache when enabled Eitan Isaacson [:eeejay] RESOLVED
1766954 [CTW] Poor performance caching large text nodes James Teh [:Jamie] RESOLVED
1767169 Crash in [@ style::gecko_properties::ComputedValues::get_resolved_value] James Teh [:Jamie] RESOLVED
1767173 [CTW] Button containing details + summary doesn't get rendered in NVDA browse mode James Teh [:Jamie] RESOLVED
1768396 [CTW] Consider caching RemoteAccessibleBase::IndexInParent James Teh [:Jamie] RESOLVED
1768951 Some text bounds are incorrectly calculated within iframes NEW
1769165 Make CharBounds handle embedded characters NEW
1769688 [CTW] Include info about the parent process a11y cache in about:memory Paul Bone [:pbone] RESOLVED
1769824 Move some of HyperTextAccessibleBase::TextBounds into TextLeafRange::TextBounds Eitan Isaacson [:eeejay] RESOLVED
1771429 [CTW] Consider caching for RemoteAccessibleBase::EmbeddedChildAt NEW
1772477 [CTW] RemoteAccessible probably doesn't handle a move inside a subtree that is being hidden Nathan LaPré RESOLVED
1772861 OOP iframe docs are not accounted for in bounds calculation Morgan Reschenberg [:morgan] RESOLVED
1773996 [CTW] Don't queue cache updates if we're never going to send them James Teh [:Jamie] RESOLVED
1774330 [CTW] Hit testing can return a descendant from a different subtree Morgan Reschenberg [:morgan] RESOLVED
1774393 [CTW] Implement BoundsInCSSPixels for cached RemoteAccessible James Teh [:Jamie] RESOLVED
1774705 [CTW] Changing CSS position properties doesn't update cached bounds James Teh [:Jamie] VERIFIED
1774708 [CTW] Transform changes don't update viewport cache Morgan Reschenberg [:morgan] RESOLVED
1774785 [CTW] Cache math attributes NEW
1776275 Adjust AUPDP used in BoundsInAppUnits for consistency (and correctness in BoundsInCSSPixels) Morgan Reschenberg [:morgan] RESOLVED
1777410 [CTW] Webextension sidebars are inaccessible on Windows James Teh [:Jamie] VERIFIED
1778433 Cleanup: Get rid of *AccessibleWrap types which are no longer used James Teh [:Jamie] RESOLVED
1779162 Performance optimisation in CachedTableCellAccessible::RowHeaderCells James Teh [:Jamie] RESOLVED
1779578 Crash in [@ mozilla::ipc::IProtocol::ChannelSend | mozilla::a11y::PDocAccessibleChild::SendShowEvent | IPC_Message_Name=PDocAccessible::Msg_ShowEvent] James Teh [:Jamie] VERIFIED
1785930 Add flag to TextLeafPoint::FindBoundary to stop inside editables Eitan Isaacson [:eeejay] RESOLVED
1786584 Enable CtW on Android in Beta and Release Eitan Isaacson [:eeejay] RESOLVED
1789239 [CTW] Expose id object attribute James Teh [:Jamie] RESOLVED
1789384 Crash in [@ NS_CycleCollectorSuspect3 | nsCoreUtils::GetDocShellFor] James Teh [:Jamie] RESOLVED
1789474 Android Fission Crash in [@ mozilla::a11y::IDSet::ReleaseID] Eitan Isaacson [:eeejay] RESOLVED
1789790 [CTW] Tables don't lose layout-guess when rows are added James Teh [:Jamie] RESOLVED
1789959 Crash in [@ PLDHashTable::Iterator::Iterator | mozilla::a11y::xpcAccessible::GetCache] James Teh [:Jamie] RESOLVED
1793073 Crash in [@ mozilla::a11y::LocalAccessible::BundleFieldsForCache] James Teh [:Jamie] RESOLVED
1793423 Crash in [@ PLDHashTable::EntryStore::IsAllocated | PLDHashTable::Search | nsTHashtable<T>::GetEntry | nsBaseHashtable<T>::Lookup | mozilla::a11y::AccAttributes::GetAttribute] James Teh [:Jamie] RESOLVED
1793710 [CTW] Support MSAA string role hack James Teh [:Jamie] RESOLVED
1793772 Crash in [@ mozilla::a11y::Accessible::FirstChild] RESOLVED
1794974 [CTW] Runtime adjustment of requested cache domains Nathan LaPré RESOLVED
1796731 [CTW] Name is incorrect for initial aria-owns NEW
1796733 [CTW] Implicit selected state not exposed for single select widgets James Teh [:Jamie] VERIFIED
1796734 [CTW] Focused state is incorrect in the embedding document when an in-process iframe has focus James Teh [:Jamie] RESOLVED
1796737 [CTW] Show event might not be fired for a move RESOLVED
1797221 [CTW] Removing alt text on img does not update accessible name properly RESOLVED
1798614 [CTW] Consider not caching opacity if it is 1.0 James Teh [:Jamie] RESOLVED
1798620 [CTW] Consider making RemoteAccessibleBase::mParent a pointer instead of an id James Teh [:Jamie] RESOLVED
1799578 [CTW] Text Cursor Indicator misplaced on multiline textareas with padding Morgan Reschenberg [:morgan] RESOLVED
1800060 [CTW] LINKS_TO should return early if there's no hash and shouldn't strip subsequent hashes Morgan Reschenberg [:morgan] RESOLVED
1800181 [CTW] Atomize more value strings to reduce memory usage James Teh [:Jamie] RESOLVED
1800749 Assertion failure: value > 0, at /builds/worker/checkouts/gecko/accessible/generic/LocalAccessible.cpp:3579 Nathan LaPré VERIFIED
1800755 Assertion failure: false (MOZ_ASSERT_UNREACHABLE: No remote found!), at /builds/worker/checkouts/gecko/accessible/ipc/DocAccessibleParent.cpp:678 James Teh [:Jamie] VERIFIED
1800777 Assertion failure: removed (Can't find old reverse relation), at /builds/worker/checkouts/gecko/accessible/ipc/RemoteAccessibleBase.cpp:933 Morgan Reschenberg [:morgan] VERIFIED
1801879 Crash in [@ NS_CycleCollectorSuspect3 | nsCycleCollectingAutoRefCnt::incr<T>], inside of mozilla::a11y::nsAccUtils::GetSelectableContainer on Android (with an a11y service enabled) James Teh [:Jamie] RESOLVED
1801986 Crash in [@ NS_CycleCollectorSuspect3 | nsCycleCollectingAutoRefCnt::incr<T>] inside of mozilla::a11y::SessionAccessibility::CachedPivot Eitan Isaacson [:eeejay] RESOLVED
1802040 Crash in [@ RefPtr<T>::get | RefPtr<T>::operator mozilla::dom::CanonicalBrowsingContext* const | mozilla::a11y::DocAccessibleParent::GetBrowsingContext] James Teh [:Jamie] VERIFIED
1802354 [CTW][Mac] Text support inconsistencies with dynamically inserted text fields. RESOLVED
1802866 [CTW] Cleanup: Don't send empty cache pushes James Teh [:Jamie] RESOLVED
1804186 [CTW] Cleanup: DocAccessibleParent::mReverseRelations should use RelationType instead of uint64_t Morgan Reschenberg [:morgan] RESOLVED
1804991 mozilla::detail::InvalidArrayIndex_CRASH(unsigned long, unsigned long) when stringifying empty array Morgan Reschenberg [:morgan] RESOLVED
1806356 [CTW] Transforms are not applied if they are attached to an element with no Accessible Nathan LaPré RESOLVED
1807844 Assertion failure: hyperAcc, at /builds/worker/checkouts/gecko/accessible/base/TextLeafRange.cpp:1345 Sean Feng [:sefeng211] RESOLVED
1807851 crash near null in [@ nsLayoutUtils::FindNearestCommonAncestorFrame] Sean Feng [:sefeng211] RESOLVED
1809695 [CTW] Text/Char bounds are 8px fuzzy in nested inline elements Morgan Reschenberg [:morgan] RESOLVED
1809699 [CTW] Consider simplifying char rect caching by using a line iterator NEW
1809761 [CTW] Incorrect text bounds when interleaving block- and inline-frame accessibles Morgan Reschenberg [:morgan] RESOLVED
1811522 Crash in [@ mozilla::jni::detail::Accessor<T>::Accessor] RESOLVED
1812165 Assertion failure: false (MOZ_ASSERT_UNREACHABLE: No remote found!), at /builds/worker/checkouts/gecko/accessible/ipc/DocAccessibleParent.cpp:639 NEW
1813976 [CTW] Language not reported for images James Teh [:Jamie] RESOLVED
1813980 [CTW] ApplyCrossDocOffset checks Parent before IsDoc James Teh [:Jamie] RESOLVED
1814220 Allow TextLeafRange API to ignore list item markers Eitan Isaacson [:eeejay] RESOLVED
1816094 [CTW] Simplify caching of text bounds James Teh [:Jamie] RESOLVED
1816514 [CTW] Can't focus some elements when scrolling UNCONFIRMED
1818176 [CTW] Support querying to IAccessibleImage on Windows James Teh [:Jamie] RESOLVED
1818404 Assertion failure: hyperAcc, at /builds/worker/checkouts/gecko/accessible/base/TextLeafRange.cpp:1466 James Teh [:Jamie] VERIFIED
1819799 [CTW] untilCacheCondition should treat timeout as a test failure James Teh [:Jamie] RESOLVED
1821951 [CTW] Remove HyperTextAccessible methods that call HyperTextAccessibleBase James Teh [:Jamie] RESOLVED
1821954 [CTW] Delegate to HyperTextAccessibleBase in HyperTextAccessible::Char/TextBounds James Teh [:Jamie] RESOLVED
1821955 [CTW] Enable the cache regardless of the pref James Teh [:Jamie] RESOLVED
1821956 [CTW] Remove Windows code which uses COM proxies when the cache is disabled James Teh [:Jamie] RESOLVED
1821957 [CTW] Remove RemoteAccessible methods which can already delegate to RemoteAccessibleBase James Teh [:Jamie] RESOLVED
1821963 [CTW] Remove COM proxy infrastructure James Teh [:Jamie] RESOLVED
1821965 [CTW] Remove LegacyTextMarker Eitan Isaacson [:eeejay] RESOLVED
1821967 [CTW] Remove legacy Android a11y implementation RESOLVED
1821969 [CTW] Remove non-text Mac stuff for the non-caching implementation James Teh [:Jamie] RESOLVED
1821972 Remove mscom stuff that was only used by non-caching legacy accessibility implementation James Teh [:Jamie] RESOLVED
1822004 [CTW] Use cached hit testing instead of Android specific implementation James Teh [:Jamie] RESOLVED
1822225 Always capture async stacks in a11y browser tests James Teh [:Jamie] RESOLVED
1822443 [CTW] TextLeafPoint::FindTextAttrsStart should walk into the next/previous container NEW
1822457 [CTW] Use the cached focus instead of PDocAccessible::RestoreFocus NEW
1823979 Assertion failure: aPoint.mAcc->IsDoc() || content->HasFlag(NODE_IS_EDITABLE) Eitan Isaacson [:eeejay] RESOLVED
1824757 Using Firefox with Google BARD I cannot read the web page with NVDA using the mouse RESOLVED
1825085 cached LINKS_TO relation is slow NEW
1825172 Consider whether TextLeafPoint::FindBoundary should return an invalid point when it can't move any further NEW
1825411 [CTW] Scroll regions with scroll offset (0,0) do not have cached scroll position Morgan Reschenberg [:morgan] RESOLVED
1825421 [CTW] Hit testing reports Accessibles hidden by an element with no accessible RESOLVED
1825500 Crash in [@ mozilla::a11y::AccAttributes::GetAttribute] RESOLVED
1825525 Crash in [@ mozilla::a11y::TextLeafPoint::GetChar] RESOLVED
1825611 [CTW] Hit testing overflow:hidden; nodes is incorrect Morgan Reschenberg [:morgan] RESOLVED
1825618 [CTW] Retrieving many selections is slow (AKA massive jank when selecting many table cells with Windows Text Cursor Indicator enabled) James Teh [:Jamie] RESOLVED
1825638 [CTW] Create mCachedFields when a RemoteAccessible is constructed RESOLVED
1826242 Remote CaretOffset doesn't use cache James Teh [:Jamie] RESOLVED
1826264 [CtW] Support IAccessibleText::scrollSubStringTo Eitan Isaacson [:eeejay] RESOLVED
1826848 [CtW] Assert cache is disabled before calling sync IPDL calls Eitan Isaacson [:eeejay] RESOLVED
1826851 [CtW][tail-end] Sync call RemoteAccessible::IsSearchbox() is still used in MacOS Eitan Isaacson [:eeejay] RESOLVED
1826852 [CtW][tail-end] Sync call RemoteAccessible::CharAt() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826853 [CtW][tail-end] Sync call RemoteAccessible::CaretLineNumber() is still used in MacOS Eitan Isaacson [:eeejay] RESOLVED
1826854 [CtW][tail-end] Sync call RemoteAccessible::IsLinkValid() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826855 [CtW][tail-end] Sync call RemoteAccessible::AnchorCount() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826856 [CtW][tail-end] Sync call RemoteAccessible::AnchorURIAt() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826857 [CtW][tail-end] Sync call RemoteAccessible::AnchorAt() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826858 [CtW][tail-end] Sync call RemoteAccessible::LinkAt() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826859 [CtW][tail-end] Sync call RemoteAccessible::ColIdx() is still used in MacOS RESOLVED
1826860 [CtW][tail-end] Sync call RemoteAccessible::RowIdx() is still used in MacOS RESOLVED
1826861 [CtW][tail-end] Sync call RemoteAccessible::RowExtent() is still used in XPCOM RESOLVED
1826862 [CtW][tail-end] Sync call RemoteAccessible::ColHeaderCells() is still used in MacOS, Linux, and XPCOM RESOLVED
1826863 [CtW][tail-end] Sync call RemoteAccessible::RowHeaderCells() is still used in MacOS, Linux, XPCOM RESOLVED
1826864 [CtW][tail-end] Sync call RemoteAccessible::IsCellSelected() is still used in XPCOM RESOLVED
1826865 [CtW][tail-end] Sync call RemoteAccessible::SetCurValue() is still used in MacOS, Linux, and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826866 [CtW][tail-end] Sync call RemoteAccessible::DocType() is still used in Linux and XPCOM Eitan Isaacson [:eeejay] RESOLVED
1826868 [CtW][tail-end] Sync call RemoteAccessible::Title() is still used in XPCOM and MacOS Eitan Isaacson [:eeejay] RESOLVED
1826869 [CtW][tail-end] Sync call RemoteAccessible::MimeType() is still used in Linux Eitan Isaacson [:eeejay] RESOLVED
1826870 [CtW][tail-end] Sync call RemoteAccessible::Extents() is still used in Linux Eitan Isaacson [:eeejay] RESOLVED
1826995 [CtW][tail-end] Sync call RemoteAccessible::SelectionBoundsAt() is still used in Linux, Mac and XPCOM RESOLVED
1828373 [CtW] Bounds incorrect when an element becomes scrollable later without reflow Morgan Reschenberg [:morgan] RESOLVED
1829603 Starting from Firefox version 111.0 and after its initial launch, a significant number of IAccessible Attributes are not returned James Teh [:Jamie] RESOLVED
1830394 Firefox does not respond when using SD Times in maximized window when using NVDA RESOLVED
1830466 [CTW] When there are two consecutive line breaks, VoiceOver reads the line below the blank line when moving up and down. James Teh [:Jamie] VERIFIED
1831035 [CTW] Unify PDocAccessible, DocAccessibleChild and RemoteAccessible James Teh [:Jamie] RESOLVED
1832228 [CTW] Remove ARIA table classes James Teh [:Jamie] RESOLVED
1832260 Crash in [@ nsIFrame::IsTextFrame] when reaching New Import Modal with Narrator active Morgan Reschenberg [:morgan] VERIFIED
1832261 [CTW] Remove most of HTMLTable*Accessible James Teh [:Jamie] RESOLVED
1832353 [CtW][tail-end] Clipboard actions should be async IPC calls Eitan Isaacson [:eeejay] RESOLVED
1832686 Completely clipped accs should not be forced into the tree Morgan Reschenberg [:morgan] RESOLVED
1834006 [CtW] Remove unnecessary differentiation between Local and Remote Accessibles in platform specific code James Teh [:Jamie] RESOLVED
1835725 [CTW] Remove a11y::IsCacheActive James Teh [:Jamie] RESOLVED
1836944 Wrong MSAA positions on dynamic elements since introduction of accessibility cache RESOLVED
1837414 Hit testing broken for YouTube recommended similar videos sidebar Morgan Reschenberg [:morgan] RESOLVED
1837496 Reply buttons on gmail messages with suggested responses have incorrect bounds Morgan Reschenberg [:morgan] VERIFIED
1838138 [CTW] Remove InSendMessageEx hack James Teh [:Jamie] RESOLVED
1838250 High CPU usage and unresponsiveness on page with very long horizontal scroll Jonathan Kew [:jfkthame] RESOLVED
1840295 [CTW] Get rid of the Windows ifdefs for PDocAccessible CaretMoveEvent and FocusEvent James Teh [:Jamie] RESOLVED
1840298 [CTW] Unify ScrollToPoint James Teh [:Jamie] RESOLVED
1842160 Missing labelled-by, label-for relationship with figures and their captions James Teh [:Jamie] VERIFIED
1845863 [CtW] HTML placeholder not exposed James Teh [:Jamie] VERIFIED
1846186 [meta] Bounds and hittesting incorrect for multiple elements on db.msin.jp NEW
1846922 [CtW] Allow QI to IAccessibleEditableText and IAccessibleHypertext2 interfaces for RemoteAccessible James Teh [:Jamie] RESOLVED
1848731 Incorrect bounds for buttons placed after dynamically inserted content RESOLVED
1849590 The "Learn more about how Fakespot determines review quality" text from the Shopping sidebar is not read out loud by NVDA James Teh [:Jamie] VERIFIED
1852865 MaybeInitWindowEmulation calls RemoteAccessible::Bounds before cache is received NEW
1853255 Text bounds incorrect for inline list items Morgan Reschenberg [:morgan] RESOLVED
1853468 Bounds of items in Wikipedia side nav element are incorrect after scroll Morgan Reschenberg [:morgan] VERIFIED
1861026 AT-SPI2 cannot be used to modify text UNCONFIRMED
1862802 Remove virtual cursor change events James Teh [:Jamie] RESOLVED
1862805 Remove MozMouseExploreByTouch event James Teh [:Jamie] NEW
1863466 [CTW] Support details and error relations James Teh [:Jamie] RESOLVED
1875629 VoiceOver loses cache contents in background tabs if no element on the page is focused when switching away Eitan Isaacson [:eeejay] VERIFIED

241 Total; 19 Open (7.88%); 204 Resolved (84.65%); 18 Verified (7.47%);