summaryrefslogtreecommitdiff
path: root/xml/Accessible.xml
blob: ad6d7d9ed667531110edee381f58c147d84f18fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
<?xml version="1.0" encoding="UTF-8"?>
<node xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
  <!--
      org.a11y.atspi.Accessible:
      @short_description: Base interface which is implemented by all accessible objects.
  -->
  <interface name="org.a11y.atspi.Accessible">

    <!--
        Name: Human-readable, localized, short name for the object.

        Normally you need to set this for objects which do not have a labelled-by
        relation.  Consider a widget to select RGB colors by setting three sliders.  The
        names for the sliders would be "Red", "Green", "Blue", respectively, or
        translations to application's locale.  The names would be unnecessary if each
        slider had a labelled-by relation to corresponding labels visible in the user
        interface.

        In general, something is missing from your application if an object that can be
        interacted with has no Name or a labelled-by relation.
    -->
    <property name="Name" type="s" access="read"/>

    <!--
        Description: Human-readable, localized description of the object in more detail.

        While the Name property is meant to be a short string that screen readers say
        during normal navigation, the Description property is for when the user asks for
        more detail.
    -->
    <property name="Description" type="s" access="read"/>

    <!--
        Parent: Accessible parent object of the current object.

        The (so) is a string for the application name, and an object path.

        Null parent: If the object has no parent (e.g. the application's root object is
        being queried), return "" for the application name name and "/org/a11y/atspi/null"
        for the object path.

        Root object: An application must have a single root object, called
        "/org/a11y/atspi/accessible/root".  All other objects should have that one as
        their highest-level ancestor.
    -->
    <property name="Parent" type="(so)" access="read">
      <annotation name="org.qtproject.QtDBus.QtTypeName" value="QSpiObjectReference"/>
    </property>

    <!--
        ChildCount: number of accessible children for this object.
    -->
    <property name="ChildCount" type="i" access="read"/>

    <!--
        Locale: Unix locale for the current object.

        For an application, this may be the locale for the language that the application
        shows in its user interface.

        For a document being shown in an application, or a paragraph within a document,
        the locale may refer to that object exclusively.  For example, an application may
        be showing itself in English ("en"), but it may be used to display a document in
        Spanish ("es").  In the latter case, a screen reader will want to know that it
        should switch to Spanish while reading the document.
    -->
    <property name="Locale" type="s" access="read"/>

    <!--
        AccessibleId: application-spcific identifier for the current object.

        You can use this to give a special id to an object to use in tests, for example,
        "my_widget".  Note that there is no way to directly find an object by its id; your
        test program may have to recursively get the children to find a specific id.  This
        is because accessible objects can be created dynamically, and they do not always
        correspond to a static view of an application's data.
    -->
    <property name="AccessibleId" type="s" access="read"/>

    <!--
        GetChildAtIndex:
        @index: 0-based index of the child to query.

        Queries the Nth accessible child of the current object.  It is expected that this
        will correspond to the order that the GetChildren method would return.

        Returns: The (so) is a string for the application name, and an object path.

        Notes: implementations vary in their behavior when the index is out of range.
        GTK4 returns an error, while atk-adaptor returns the null object path
        "/org/a11y/atspi/null".  To keep the type system gods happy, you should probably
        return a DBus error in that case.
    -->
    <method name="GetChildAtIndex">
      <arg direction="in" name="index" type="i"/>
      <arg direction="out" type="(so)"/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
    </method>

    <!--
        GetChildren:

        Returns a list of the object's accessible children.

        Each array element (so) is a string for the application name, and an object path.
    -->
    <method name="GetChildren">
      <arg direction="out" type="a(so)"/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReferenceArray"/>
    </method>

    <!--
        GetIndexInParent:

        Returns the 0-based index at which the object would be returned by calling
        GetChildren on its parent.
    -->
    <method name="GetIndexInParent">
      <arg direction="out" type="i"/>
    </method>

    <method name="GetRelationSet">
      <arg direction="out" type="a(ua(so))"/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiRelationArray"/>
    </method>

    <method name="GetRole">
      <arg direction="out" type="u"/>
    </method>

    <method name="GetRoleName">
      <arg direction="out" type="s"/>
    </method>

    <method name="GetLocalizedRoleName">
      <arg direction="out" type="s"/>
    </method>

    <method name="GetState">
      <arg direction="out" type="au"/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiIntList"/>
    </method>

    <method name="GetAttributes">
      <arg direction="out" type="a{ss}"/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiAttributeSet"/>
    </method>

    <method name="GetApplication">
      <arg direction="out" type="(so)"/>
      <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QSpiObjectReference"/>
    </method>

    <method name="GetInterfaces">
      <arg direction="out" type="as"/>
    </method>

  </interface>
</node>