[g-a-devel]Accessibility support in Glade



Hi,

I'm about to add a11y support to Glade, based on the libglade DTD.

A few questions:


ATK Properties
--------------

 o The libglade DTD has:

    <!ELEMENT atkproperty (#PCDATA | accessibility)* >

   so it looks like ATK properties can contain other ATK properties,
   actions, and relations. What is this used for? What would the
   atkproperty name be?

   The libglade parser seems to accept these, but it doesn't seem to
   keep the hierarchy. All the child properties/actions/relations seem
   to get folded into one list.

   Does it matter if Glade doesn't preserve the hierarchy?
   (Glade uses the libglade parsing code as well.)


 o The libglade parser seems to look for a translatable attribute on ATK
   properties. Should we add this to the DTD? The atkaction description
   should probably also have a translatable attribute.

   We could say that all ATK properties and action descriptions are
   translatable, so the attribute is not necessary, but intltool would
   need updating to handle that.


 o I think the only ATK properties we need to handle are:

    AtkObject::accessible-name
    AtkObject::accessible-description

   Are there any others?

   Do we have to add the above to properties to every widget?



ATK Relations
-------------

 o Is there a way of programmatically determining which relation types
   are relevant to which widgets?

   If not, is there a list of which types are relevant to which widgets?

   It looks like some relations are automatically created by GAIL
   itself, e.g. "member-of" is automatically handled for radiobutton
   groups. So Glade doesn't need to support those.



Glade GUI
---------

I think I'll add a new page to the property editor for a11y.
(I think I'll use an icon in the notebook tab as we don't have much room
for text, especially 'Accessibility'!.)

At the top we'll have the 2 ATK properties, a string property for
'Name:' and a text property for 'Description:', i.e.

  Name:          _____________________________
  Description:   _____________________________
                 _____________________________

Below that will be text properties for descriptions for each of the
actions that the widget supports. e.g. for a button it will show:
 
  click:         _____________________________
                 _____________________________
  press:         _____________________________
                 _____________________________
  release:       _____________________________
                 _____________________________

(Note that the action names are not translated, so they aren't
i18n-friendly. But I could hard-code translation support for them.)


Finally, if we can determine which relations are relevant to each type
of widget (maybe hard-coding them), we'll show properties for each
relation here, e.g.

  controlled-by: widget1,widget2_________[...]
  label-for:     button1_________________[...]

The text fields won't be editable.
The buttons on the right will pop up a dialog containing a list of all
widgets in the window/dialog with checkboxes next to them, so the user
can select one or more widgets easily. (I hope relations can only be
between widgets within one window.)


The only thing left to add is support for <atkproperty> elements with
child <accessibility> elements. But I don't know what that is used for
yet.


Damon





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]