Page MenuHomePhabricator

Refactoring of org.a11y.atspi.Value interface realization
Open, Incoming QueuePublic

Description

The outcome from the analysis of org.a11y.atspi.Value interface realization shows that there is an Efl interface hierarchy with identical functionality: Efl.Ui.Range_Display and inheriting from it Efl.Ui.Range_Interactive. Hence, I propose following changes in ATSPI bridge:

a) remove interface Efl.Access.Value and its realization from widgets like: Efl.Ui.Slider_Interval, Efl.Ui.Slider, Efl.Ui.Spin_Button, Efl.UI.Progressbar, Efl.Ui.Spin

b) modify Elm.Atspi.Bridge to use Efl.Ui.Range* interfaces instead of Efl.Access.Value; for widgets that implements Efl.Ui.Range_Display but does not implement Efl.Ui.Range_Interactive return value 0 for MinimumIncrement property

Architecture before:

Architecture after:

bu5hm4n added a subscriber: bu5hm4n.

That sounds indeed like a very good idea, and a lot of deduplication.

We did a lot of such work for the Efl.Ui interfaces, so my (maybe offtopic here) question:

  • Efl.Ui.Selectable / Efl.Ui.Single_Selectable / Efl.Ui.Multi_Selectable instead of Efl.Access_Selection
  • Efl.Ui.Text* instead of Efl.Access.Text

(If this is offtopic, we can also drag this somewhere else i think.)

Thanks for supporting the idea of refactoring. :)

Actually, the analysis for Efl.Access_Selection and Efl.Access.Text is in progress, I'll create separate phab tickets for each Efl.Access* interface that has a potential for deduplication.

At first glance it seams that the full functionality of Selectable interface can be mapped to the existing Efl.Ui interfaces you have mentioned above but in case of Text I suspect some functionality (like handling text regions with given granularity: word/sentence/paragraph) probably will have to be added to the Efl.Ui.Text* interfaces.

@l.oleksak is this ticket resolved with the commit that has gone in or is there more work needed?