1. 16 Dec, 2020 2 commits
    • Joanmarie Diggs's avatar
      Web: Try to be a little bit smart about dumping cache · 208ee0d7
      Joanmarie Diggs authored
      Quirks in web sites and web browsers are tricky....
      
      * If the children-changed event is our current object, dump cache and
        also the context because all bets are off regarding whether or not
        our current location is stale.
      * If the children-changed event is an ancestor of our current object,
        dump cache but preserve the context because something around us
        has changed, but our present location should still be valid. Plus
        subsequent sanity checks should trigger us to update things if
        our present location isn't valid after all.
      * Otherwise, something elsewhere has changed so don't dump the cache.
      
      Also add more debugging to get to the bottom of remaining quirks.
      208ee0d7
    • Joanmarie Diggs's avatar
  2. 15 Dec, 2020 5 commits
  3. 14 Dec, 2020 1 commit
    • Joanmarie Diggs's avatar
      Web: Try to filter out duplicate caret-moved events resulting from click · ee411f2f
      Joanmarie Diggs authored
      We now clear our cache whenever the document or its descendant emits
      children-changed events. This prevents us from potentially getting
      stuck in a stale accessibility subtree. Unfortunately, if clicking
      with the mouse causes the browser to emit duplicate caret-moved events
      with a children-changed event in between, we'll double-speak that
      caret-moved event. Try to work around this by caching the last caret
      context resulting from a mouse click -- and not clearing that cache
      in response to children-changed.
      ee411f2f
  4. 13 Dec, 2020 1 commit
  5. 10 Dec, 2020 3 commits
  6. 09 Dec, 2020 4 commits
    • Joanmarie Diggs's avatar
      Web: Ignore caret-moved events for the document itself when Tab is used · d8fed6f4
      Joanmarie Diggs authored
      When the user Tabs into the document, we sometimes see a caret-moved
      event for the document. This causes us to look for the first presentable
      thing at offset and update our location to that thing. If the first
      presentable thing in the document happens to be a focusable widget,
      this can cause us to present the focusable widget as if it were focused
      and to ignore a subsequent focus event for when it really becomes focused.
      On the other hand, if the first presentable thing is a text element such
      as a paragraph, we should be getting the caret moved event for that
      element rather than from the document.
      d8fed6f4
    • Joanmarie Diggs's avatar
    • Joanmarie Diggs's avatar
      Use AT-SPI2's cache for children · 917aaf87
      Joanmarie Diggs authored
      Not using the cache for children was an old solution to work around not
      getting updates from apps/toolkits/browsers when objects were added or
      removed. But not using the AT-SPI2 cache comes with a performance hit
      in large accessibility trees. Therefore, we'll start using the cache for
      children and address specific offenders on a more targeted basis.
      917aaf87
    • Joanmarie Diggs's avatar
      Web: Clear the cache for all non-live-region children-changed events · ac37d8c5
      Joanmarie Diggs authored
      If the document content changes anywhere around the current element,
      we can wind up with stale information that can break navigation in
      browse mode. Therefore, always dump all cached objects in response
      to children-changed events unless we're in a live region. Live
      region updates are typically presented rather than navigated within.
      ac37d8c5
  7. 08 Dec, 2020 6 commits
  8. 07 Dec, 2020 3 commits
    • Anders Jonsson's avatar
      Grammar fixes in strings · 84f9fb2f
      Anders Jonsson authored
      84f9fb2f
    • Joanmarie Diggs's avatar
      Don't treat unknown coordinates as definitely off-screen · 7740829c
      Joanmarie Diggs authored
      Apparently (-1, -1, -1, -1) is being used to specify an undetermined
      bounding box. Therefore do not automatically treat an object with
      these coordinates as off-screen. This will hopefully solve the flat
      review failure seen with apps written in Gtk+ 3.24.24.
      7740829c
    • Joanmarie Diggs's avatar
      Web: Cache textiness rather than the accessible text object · 78533048
      Joanmarie Diggs authored
      queryNonEmptyText() was caching the accessible text object for elements
      which we concluded should be treated as navigable text. It relied upon
      accessibility events to trigger the clearing of our cache. When those
      events are missing, we can wind up incorrectly concluding that an element
      lacks text and skip over that content. Rather than caching the text
      object itself, just cache the decision about whether or not the object
      should be treated as text.
      78533048
  9. 04 Dec, 2020 4 commits
  10. 03 Dec, 2020 1 commit
  11. 02 Dec, 2020 1 commit
  12. 30 Nov, 2020 2 commits
    • Joanmarie Diggs's avatar
      Fall back on gridcell name when generating name for nameless checkboxes · 57c96a7c
      Joanmarie Diggs authored
      According to the ARIA spec, checkboxes are supposed to have a name.
      But if the author fails to provide a name, and we're in a gridcell,
      that gridcell might have presentable content. This is needed, for
      example, in the Chromium history list where focus goes to descendants
      of the gridcells and the checkbox for multi-selection lacks a name.
      57c96a7c
    • Joanmarie Diggs's avatar
      Don't treat grids as layout-only, or gridcells as text-block elements · 1793730e
      Joanmarie Diggs authored
      The heuristics we have to identify items as layout-only and text-block
      assume things like grids will have a name (as per the ARIA spec). And
      that the gridcells (rather than a descendant) will be what is given
      focus by the author. We should instead just look at the ARIA role.
      1793730e
  13. 28 Nov, 2020 1 commit
  14. 23 Nov, 2020 2 commits
  15. 18 Nov, 2020 1 commit
  16. 17 Nov, 2020 2 commits
  17. 12 Nov, 2020 1 commit