1. 22 May, 2021 1 commit
  2. 19 Apr, 2021 1 commit
    • Matthias Clasen's avatar
      a11y: Track window states more closely · 9e8187bd
      Matthias Clasen authored and Emmanuele Bassi's avatar Emmanuele Bassi committed
      Orca ignores events unless the object is inside an object
      with role window and states ACTIVE and SHOWING. To arrange
      for this, introduce a new ACTIVE platform state, and set it
      for windows when they are active.
      
      This gets orca to be a lot more talkative.
      9e8187bd
  3. 17 Apr, 2021 1 commit
  4. 16 Dec, 2020 1 commit
  5. 11 Nov, 2020 1 commit
  6. 10 Nov, 2020 1 commit
    • Emmanuele Bassi's avatar
      a11y: Parse reference lists using varargs · c264254d
      Emmanuele Bassi authored
      Using GList is a bit lame, and makes the API more complicated to use
      than necessary in the common case.
      
      The only real use case for a GList is gtk_widget_add_mnemonic_label(),
      and for that we can use the GValue-based API instead.
      
      Fixes: #3343
      c264254d
  7. 09 Nov, 2020 1 commit
    • Emmanuele Bassi's avatar
      a11y: Consolidate accessibility environment variables · 0af66305
      Emmanuele Bassi authored
      Use a single environment variable for everything:
      
       - select the ATContext implementation
       - select the test ATContext
       - disable ATContext entirely
      
      We use the same pattern as GSK_RENDERER, GTK_DEBUG, etc.
      
      The documentation needs to be updated to include the environment
      variable.
      0af66305
  8. 19 Oct, 2020 1 commit
  9. 12 Oct, 2020 1 commit
    • Matthias Clasen's avatar
      a11y: Pass on platform changes · b5ee73d2
      Matthias Clasen authored
      Add an enum for 'platform changes' to the at context
      change notification mechanism. This will let us pass
      along things that ARIA considers 'platform state' such
      as focus or editability. The difference between the
      platform state and other ARIA states is that we don't
      keep the platform state separately in the at context
      - backends are expected to just query the widgets.
      
      This is just about avoiding notify listeners for
      change notification.
      b5ee73d2
  10. 04 Aug, 2020 1 commit
  11. 28 Jul, 2020 1 commit
    • Emmanuele Bassi's avatar
      a11y: Add proper error reporting to value collection · bf06cad5
      Emmanuele Bassi authored
      We're currently overloading NULL to mean both "this value is undefined,
      and should be reset to its default" and "the value collection failed".
      Let's do error reporting right, by using GError to mean "the collection
      failed, for this specific reason"; then, we can use a NULL return value
      to signal that the accessible attribute should be reset to its default
      value.
      
      This is only relevant for pointer-sized attribute values: strings,
      references, and reference lists; numeric, boolean, tristate, and token
      values either cannot be undefined, or have a specific "undefined" value.
      bf06cad5
  12. 26 Jul, 2020 10 commits
    • Emmanuele Bassi's avatar
      a11y: Simplify the test API · 3d642460
      Emmanuele Bassi authored
      We don't need as many functions to print out the property, relation, and
      state of an accessible. Additionally, we should allow comparing the
      accessible attributes with an expected value, and print out the real
      accessible value if they do not match.
      3d642460
    • Emmanuele Bassi's avatar
      a11y: Add more test API · dc1c1e8a
      Emmanuele Bassi authored
      dc1c1e8a
    • Emmanuele Bassi's avatar
      Fix build with debugging notes disabled · 296f0844
      Emmanuele Bassi authored
      296f0844
    • Matthias Clasen's avatar
      testatcontext: Print role nicks · 609383f9
      Matthias Clasen authored and Emmanuele Bassi's avatar Emmanuele Bassi committed
      This makes for easier reading.
      609383f9
    • Matthias Clasen's avatar
      testatcontext: Use the new debug flag · 0b6df9ef
      Matthias Clasen authored and Emmanuele Bassi's avatar Emmanuele Bassi committed
      Only dump a11y state if GTK_DEBUG=accessibility is set.
      0b6df9ef
    • Emmanuele Bassi's avatar
      a11y: Add testing API · 0d87f8cd
      Emmanuele Bassi authored
      We want to test the accessibility API, as well as the implementation
      inside each widget. For that, we should expose an API that lets us
      verify that a GtkAccessible has a given role, as well as a given
      property.
      
      The API follows the pattern of other GTest API:
      
       - a macro to assert that a condition is respected
       - a function that prints out the error message in case of failure
      0d87f8cd
    • Emmanuele Bassi's avatar
      a11y: Consolidate the attributes container · 732578eb
      Emmanuele Bassi authored
      While we have split the various attributes for convenience, there's no
      reason why we should have specialised data types for the attributes
      container object.
      732578eb
    • Emmanuele Bassi's avatar
      a11y: Add relations API · 1124f250
      Emmanuele Bassi authored
      Since we split relation attributes from the generic properties, we need
      to add API for setting and retrieving their values.
      1124f250
    • Emmanuele Bassi's avatar
      Add accessible properties to GtkAccessible · da1ce01a
      Emmanuele Bassi authored
      We propagate the accessible state and properties to each ATContext in
      the same virtual function, since they are functionally similar.
      da1ce01a
    • Emmanuele Bassi's avatar
      Add GtkATContext · a382dfd3
      Emmanuele Bassi authored
      The ATContext type is meant to be used as the base class for
      implementations of the assistive technology API—the actual mechanism
      needed to communicate to components like the screen reader, or any other
      AT.
      
      Every time the widget state changes, the ATContext is meant to broadcast
      the state change; and every time the AT queries the state of a UI
      element, the ATContext is meant to provide that information.
      
      We also have a "test" ATContext implementation, which is meant to be
      used to write tests to verify that changes are propagated without
      requiring a whole desktop session.
      a382dfd3