Merge branch 'master' of git+ssh://git.codethink.co.uk/git/atspi-dbus into HEAD
[platform/core/uifw/at-spi2-atk.git] / xml / org.freedesktop.atspi.Accessible.xml
1 <node name="/node" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
2
3 <tp:title>AT-SPI - Assistive Technology Service Provider Interface </tp:title>
4 <tp:copyright>Copyright 2008 Novell, Inc.</tp:copyright>
5 <tp:copyright>Copyright 2001 Sun Microsystems Inc.</tp:copyright>
6 <tp:license xmlns="http://www.w3.org/1999/xhtml">
7   <p>This library is free software; you can redistribute it and/or
8     modify it under the terms of the GNU Library General Public
9     License as published by the Free Software Foundation; either
10     version 2 of the License, or (at your option) any later version.</p>
11
12   <p>This library is distributed in the hope that it will be useful,
13     but WITHOUT ANY WARRANTY; without even the implied warranty of
14     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15     Library General Public License for more details.</p>
16
17   <p>You should have received a copy of the GNU Library General Public
18     License along with this library; if not, write to the
19     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20     Boston, MA 02111-1307, USA.</p>
21 </tp:license>
22 <tp:enum name="LOCALE_TYPE" type="u">
23   <tp:docstring>
24     used by Text and Document: these correspond to the POSIX setlocale() enum values. 
25   </tp:docstring>
26   <tp:enumvalue suffix="LOCALE_TYPE_MESSAGES"/>
27   <tp:enumvalue suffix="LOCALE_TYPE_COLLATE" value="1"/>
28   <tp:enumvalue suffix="LOCALE_TYPE_CTYPE" value="2"/>
29   <tp:enumvalue suffix="LOCALE_TYPE_MONETARY" value="3"/>
30   <tp:enumvalue suffix="LOCALE_TYPE_NUMERIC" value="4"/>
31   <tp:enumvalue suffix="LOCALE_TYPE_TIME" value="5"/>
32 </tp:enum>
33 <tp:struct name="BoundingBox">
34   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
35     <p>Used by Component and Text, a struct defining a bounding rectangle. 
36       The relevant coordinate system is determined by the context of the
37       API call which returned or receives the value.</p>
38   </tp:docstring>
39   <tp:member type="i" tp:name="x">
40   <tp:docstring>
41     &lt; the value corresponding to the minimum or leftmost x position. 
42   </tp:docstring>
43   </tp:member>
44   <tp:member type="i" tp:name="y">
45   <tp:docstring>
46     &lt; the value corresponding to the minimum y value.  
47   </tp:docstring>
48   </tp:member>
49   <tp:member type="i" tp:name="width">
50   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
51     <p>&lt; the horizontal extent of the bounding box,
52       that is, the difference between the maximum and minimum
53       x coordinate bounds.</p>
54   </tp:docstring>
55   </tp:member>
56   <tp:member type="i" tp:name="height">
57   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
58     <p>&lt; the vertical extent of the bounding box, 
59       that is, the difference between the maximum and minimum
60       y coordinate bounds.</p>
61   </tp:docstring>
62   </tp:member>
63 </tp:struct>
64 <interface name="org.freedesktop.atspi.Accessible">
65   <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
66     <p>The base interface which is implemented by all accessible objects. 
67       All objects support interfaces for querying their contained 'children' 
68       and position in the accessible-object hierarchy, whether or not they
69       actually have children.  </p>
70
71     <p>@note Events that may be emitted by instances of Accessible include:
72       \li \c &quot;object:property-change&quot; A base (strongly-typed) object attribute has changed,
73       for instance &quot;object:property-change:accessible-name&quot;.
74       Notifed property subtypes include accessible-name, accessible-description,
75       accessible-parent and accessible-role.   </p>
76
77     <p>\li \c &quot;object:children-changed&quot; The number or identity of an object's children
78       has changed.
79       \li \c &quot;object:state-changed&quot; The object's StateSet has had a state added
80       or removed.
81       \li \c &quot;object:active-descendant-changed&quot; If the object includes 
82       STATE_MANAGES_DESCENDANTS, this event is fired to indicate that the 
83       descendant having STATE_ACTIVE has changed; this corresponds to
84       &quot;micro&quot; keyboard focus when the containing/emitting object has
85       &quot;macro&quot; or technical keyboard focus.  For instance, this event is
86       usually emitted while traversing tables and/or spreadsheet cells.
87       \li \c &quot;object:attribute-change&quot; A weakly-typed property, as contained in the
88       AttributeSet returned by Accessible::getAttributes, has changed in value,
89       been added, or been removed from the object.
90       (&quot;object:attribute-change&quot; notifications were added in AT-SPI 1.7.0)</p>
91   </tp:docstring>
92   <tp:property name="name" type="s" access="readwrite">
93   <tp:docstring>
94     a (short) \c string representing the object's name.
95   </tp:docstring>
96   </tp:property>
97   <tp:property name="description" type="s" access="readwrite">
98   <tp:docstring>
99     a \c string describing the object in more detail than \a name.
100   </tp:docstring>
101   </tp:property>
102   <tp:property name="parent" type="o" access="read">
103   <tp:docstring>
104     an ::Accessible object which is this object's containing object.
105   </tp:docstring>
106   </tp:property>
107   <tp:property name="childCount" type="i" access="read">
108   <tp:docstring>
109     childCount: the number of children contained by this object.
110   </tp:docstring>
111   </tp:property>
112   <method name="getChildren">
113     <tp:docstring>
114       Get the accessible children of this object.
115     </tp:docstring>
116     <arg direction="out" type="ao" tp:type="AccessibleSet">
117     <tp:docstring>
118       the ::Accessible children of this object.
119     </tp:docstring>
120     </arg>
121   </method>
122   <method name="getIndexInParent">
123     <tp:docstring>
124       Get the index of this object in its parent's child list.
125     </tp:docstring>
126     <arg direction="out" type="i">
127     <tp:docstring>
128       a long integer indicating this object's index in the parent's list.
129     </tp:docstring>
130     </arg>
131   </method>
132   <!-- TODO: Decide whether to implement this, or put these in the tree
133   <method name="getRelationSet">
134     <tp:docstring>
135       Get a set defining this object's relationship to other accessible objects.
136     </tp:docstring>
137     <arg direction="out" type="a(uao)" tp:type="RelationSet">
138     <tp:docstring>
139       a ::RelationSet defining this object's relationships.
140     </tp:docstring>
141     </arg>
142   </method>
143   -->
144   <method name="getRole">
145     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
146       <p>Get the ::Role indicating the type of UI role played by this object.    </p>
147     </tp:docstring>
148     <arg direction="out" type="u" tp:type="Role">
149     <tp:docstring>
150       a ::Role indicating the type of UI role played by this object.
151     </tp:docstring>
152     </arg>
153   </method>
154   <method name="getRoleName">
155     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
156       <p>Get a string indicating the type of UI role played by this object.    </p>
157     </tp:docstring>
158     <arg direction="out" type="s">
159     <tp:docstring>
160       a UTF-8 string indicating the type of UI role played by this object.
161     </tp:docstring>
162     </arg>
163   </method>
164   <method name="getLocalizedRoleName">
165     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
166       <p>Get a string indicating the type of UI role played by this object,
167         translated to the current locale.    </p>
168     </tp:docstring>
169     <arg direction="out" type="s">
170     <tp:docstring>
171       a UTF-8 string indicating the type of UI role played by this object.
172     </tp:docstring>
173     </arg>
174   </method>
175   <method name="getState">
176     <tp:docstring>
177       Get the current state of the object as a ::StateSet.
178     </tp:docstring>
179     <arg direction="out" type="au" tp:type="StateSet">
180     <tp:docstring>
181       a ::StateSet encapsulating the currently true states of the object.
182       Returns an array of (currently two) 32-bit integers giving bitwise flags.
183     </tp:docstring>
184     </arg>
185   </method>
186   <method name="getAttributes">
187     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
188       <p>Get a list of properties applied to this object as a whole, as an 
189         ::AttributeSet consisting of name-value pairs.  As such these attributes
190         may be considered weakly-typed properties or annotations, as distinct
191         from the strongly-typed interface instance data declared using the IDL 
192         &quot;attribute&quot; keyword.    </p>
193
194       <p>Not all objects have explicit &quot;name-value pair&quot; AttributeSet properties.      </p>
195
196       <p>Attribute names and values may have any UTF-8 string value, however where possible,
197         in order to facilitate consistent use and exposure of &quot;attribute&quot; properties by
198         applications and AT clients, attribute names and values should chosen from  
199         a publicly-specified namespace where appropriate.    </p>
200
201       <p>Where possible, the names and values in the name-value pairs
202         should be chosen from well-established attribute namespaces
203         using standard semantics.       
204         For example, attributes of ::Accessible objects corresponding to XHTML content 
205         elements should correspond to attribute names and values specified in the w3c 
206         XHTML specification, at http://www.w3.org/TR/xhtml2, where such values are not 
207         already exposed via a more strongly-typed aspect of the AT-SPI API.
208         Metadata names and
209         values should be chosen from the 'Dublin Core' Metadata
210         namespace using Dublin Core semantics:
211         http://dublincore.org/dcregistry/
212         Similarly, relevant structural metadata should be exposed
213         using attribute names and values chosen from the CSS2 and WICD specification:
214         http://www.w3.org/TR/1998/REC-CSS2-19980512
215         WICD (http://www.w3.org/TR/2005/WD-WICD-20051121/).    </p>
216
217       <p>@note Clients seeking semantic or typographical attributes associated with
218         specific character spans of text content should use ::Text::getAttributeRun instead.
219         The attributes returned by Accessible::getAttributes do not include
220         &quot;text attributes&quot;.    </p>
221
222       <p>@see ::Accessibility::Text::getAttributeRun    </p>
223     </tp:docstring>
224     <arg direction="out" type="as" tp:type="AttributeSet">
225     <tp:docstring>
226       an ::AttributeSet encapsulating any &quot;attribute values&quot; currently defined for the object.@since AT-SPI 1.7.0
227     </tp:docstring>
228     </arg>
229   </method>
230   <method name="getApplication">
231     <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
232       <p>Get the containing Application for this object.    </p>
233     </tp:docstring>
234     <arg direction="out" type="o" tp:type="Application">
235     <tp:docstring>
236       the Application instance to which this object belongs.@since AT-SPI 1.7.0
237     </tp:docstring>
238     </arg>
239   </method>
240   <method name="unimplemented">
241     <tp:docstring>
242       /cond future expansion 
243     </tp:docstring>
244   </method>
245 </interface>
246 </node>