nsIAccessibleRelation.idl (5665B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #include "nsISupports.idl" 7 #include "nsIArray.idl" 8 9 interface nsIAccessible; 10 11 /** 12 * This interface gives access to an accessible's set of relations. 13 */ 14 [scriptable, builtinclass, uuid(55b308c4-2ae4-46bc-b4cd-4d4370e0a660)] 15 interface nsIAccessibleRelation : nsISupports 16 { 17 /** 18 * This object is labelled by a target object. 19 */ 20 const unsigned long RELATION_LABELLED_BY = 0x00; 21 22 /** 23 * This object is label for a target object. 24 */ 25 const unsigned long RELATION_LABEL_FOR = 0x01; 26 27 /** 28 * This object is described by the target object. 29 */ 30 const unsigned long RELATION_DESCRIBED_BY = 0x02; 31 32 /** 33 * This object is describes the target object. 34 */ 35 const unsigned long RELATION_DESCRIPTION_FOR = 0x3; 36 37 /** 38 * This object is a child of a target object. 39 */ 40 const unsigned long RELATION_NODE_CHILD_OF = 0x4; 41 42 /** 43 * This object is a parent of a target object. A dual relation to 44 * RELATION_NODE_CHILD_OF 45 */ 46 const unsigned long RELATION_NODE_PARENT_OF = 0x5; 47 48 /** 49 * Some attribute of this object is affected by a target object. 50 */ 51 const unsigned long RELATION_CONTROLLED_BY = 0x06; 52 53 /** 54 * This object is interactive and controls some attribute of a target object. 55 */ 56 const unsigned long RELATION_CONTROLLER_FOR = 0x07; 57 58 /** 59 * Content flows from this object to a target object, i.e. has content that 60 * flows logically to another object in a sequential way, e.g. text flow. 61 */ 62 const unsigned long RELATION_FLOWS_TO = 0x08; 63 64 /** 65 * Content flows to this object from a target object, i.e. has content that 66 * flows logically from another object in a sequential way, e.g. text flow. 67 */ 68 const unsigned long RELATION_FLOWS_FROM = 0x09; 69 70 /** 71 * This object is a member of a group of one or more objects. When there is 72 * more than one object in the group each member may have one and the same 73 * target, e.g. a grouping object. It is also possible that each member has 74 * multiple additional targets, e.g. one for every other member in the group. 75 */ 76 const unsigned long RELATION_MEMBER_OF = 0x0a; 77 78 /** 79 * This object is a sub window of a target object. 80 */ 81 const unsigned long RELATION_SUBWINDOW_OF = 0x0b; 82 83 /** 84 * This object embeds a target object. This relation can be used on the 85 * OBJID_CLIENT accessible for a top level window to show where the content 86 * areas are. 87 */ 88 const unsigned long RELATION_EMBEDS = 0x0c; 89 90 /** 91 * This object is embedded by a target object. 92 */ 93 const unsigned long RELATION_EMBEDDED_BY = 0x0d; 94 95 /** 96 * This object is a transient component related to the target object. When 97 * this object is activated the target object doesn't lose focus. 98 */ 99 const unsigned long RELATION_POPUP_FOR = 0x0e; 100 101 /** 102 * This object is a parent window of the target object. 103 */ 104 const unsigned long RELATION_PARENT_WINDOW_OF = 0x0f; 105 106 /** 107 * Part of a form/dialog with a related default button. It is used for 108 * MSAA/XPCOM, it isn't for IA2 or ATK. 109 */ 110 const unsigned long RELATION_DEFAULT_BUTTON = 0x10; 111 112 /** 113 * The target object is the containing document object. 114 */ 115 const unsigned long RELATION_CONTAINING_DOCUMENT = 0x11; 116 117 /** 118 * The target object is the topmost containing document object in the tab pane. 119 */ 120 const unsigned long RELATION_CONTAINING_TAB_PANE = 0x12; 121 122 /** 123 * The target object is the containing window object. 124 */ 125 const unsigned long RELATION_CONTAINING_WINDOW = 0x13; 126 127 /** 128 * The target object is the containing application object. 129 */ 130 const unsigned long RELATION_CONTAINING_APPLICATION = 0x14; 131 132 /** 133 * The target object provides the detailed, extended description for this 134 * object. It provides more detailed information than would normally be 135 * provided using the DESCRIBED_BY relation. A common use for this relation is 136 * in digital publishing where an extended description needs to be conveyed in 137 * a book that requires structural markup or the embedding of other technology 138 * to provide illustrative content. 139 */ 140 const unsigned long RELATION_DETAILS = 0x15; 141 142 /** 143 * This object provides the detailed, extended description for the target 144 * object. See DETAILS relation. 145 */ 146 const unsigned long RELATION_DETAILS_FOR = 0x16; 147 148 /** 149 * The target object is the error message for this object. 150 */ 151 const unsigned long RELATION_ERRORMSG = 0x17; 152 153 /** 154 * This object is the error message for the target object. 155 */ 156 const unsigned long RELATION_ERRORMSG_FOR = 0x18; 157 158 /** 159 * The target object is the anchor referenced by this link. 160 */ 161 const unsigned long RELATION_LINKS_TO = 0x19; 162 163 /** 164 * This object is has an action associated with the target object. 165 */ 166 const unsigned long RELATION_ACTION = 0x20; 167 168 /** 169 * This object is has an action that operates on the target object. 170 */ 171 const unsigned long RELATION_ACTION_FOR = 0x21; 172 173 /** 174 * Returns the type of the relation. 175 */ 176 readonly attribute unsigned long relationType; 177 178 /** 179 * Returns the number of targets for this relation. 180 */ 181 readonly attribute unsigned long targetsCount; 182 183 /** 184 * Returns one accessible relation target. 185 * @param index - 0 based index of relation target. 186 */ 187 nsIAccessible getTarget(in unsigned long index); 188 189 /** 190 * Returns multiple accessible relation targets. 191 */ 192 nsIArray getTargets(); 193 };