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
8interface nsIAccessible;
9interface nsIAccessibleDocument;
10
11webidl Node;
12
13%{C++
14#define NS_ACCESSIBLE_EVENT_TOPIC "accessible-event"
15%}
16
17/**
18 * An interface for accessibility events listened to
19 * by in-process accessibility clients, which can be used
20 * to find out how to get accessibility and DOM interfaces for
21 * the event and its target. To listen to in-process accessibility invents,
22 * make your object an nsIObserver, and listen for accessible-event by
23 * using code something like this:
24 *   nsCOMPtr<nsIObserverService> observerService =
25 *     do_GetService("@mozilla.org/observer-service;1", &rv);
26 *   if (NS_SUCCEEDED(rv))
27 *     rv = observerService->AddObserver(this, "accessible-event", PR_TRUE);
28 */
29[scriptable, builtinclass, uuid(20c69a40-6c2c-42a3-a578-6f4473aab9dd)]
30interface nsIAccessibleEvent : nsISupports
31{
32  /**
33   * An object has been created.
34   */
35  const unsigned long EVENT_SHOW = 0x0001;
36
37  /**
38   * An object has been destroyed.
39   */
40  const unsigned long EVENT_HIDE = 0x0002;
41
42  /**
43   * An object's children have changed
44   */
45  const unsigned long EVENT_REORDER = 0x0003;
46
47  /**
48   * The active descendant of a component has changed. The active descendant
49   * is used in objects with transient children.
50   */
51  const unsigned long EVENT_ACTIVE_DECENDENT_CHANGED = 0x0004;
52
53  /**
54   * An object has received the keyboard focus.
55   */
56  const unsigned long EVENT_FOCUS = 0x0005;
57
58  /**
59   * An object's state has changed.
60   */
61  const unsigned long EVENT_STATE_CHANGE = 0x0006;
62
63  /**
64   * An object has changed location, shape, or size.
65   */
66  const unsigned long EVENT_LOCATION_CHANGE = 0x0007;
67
68  /**
69   * An object's Name property has changed.
70   */
71  const unsigned long EVENT_NAME_CHANGE = 0x0008;
72
73  /**
74   * An object's Description property has changed.
75   */
76  const unsigned long EVENT_DESCRIPTION_CHANGE = 0x0009;
77
78  /**
79   * An object's numeric Value has changed.
80   */
81  const unsigned long EVENT_VALUE_CHANGE = 0x000A;
82
83  /**
84   * An object's help has changed.
85   */
86  const unsigned long EVENT_HELP_CHANGE = 0x000B;
87
88  /**
89   * An object's default action has changed.
90   */
91  const unsigned long EVENT_DEFACTION_CHANGE = 0x000C;
92
93  /**
94   * An object's action has changed.
95   */
96  const unsigned long EVENT_ACTION_CHANGE = 0x000D;
97
98  /**
99   * An object's keyboard shortcut has changed.
100   */
101  const unsigned long EVENT_ACCELERATOR_CHANGE = 0x000E;
102
103  /**
104   * The selection within a container object has changed.
105   */
106  const unsigned long EVENT_SELECTION = 0x000F;
107
108  /**
109   * An item within a container object has been added to the selection.
110   */
111  const unsigned long EVENT_SELECTION_ADD = 0x0010;
112
113  /**
114   * An item within a container object has been removed from the selection.
115   */
116  const unsigned long EVENT_SELECTION_REMOVE = 0x0011;
117
118  /**
119   * Numerous selection changes have occurred within a container object.
120   */
121  const unsigned long EVENT_SELECTION_WITHIN = 0x0012;
122
123  /**
124   * An alert has been generated. Server applications send this event when a
125   * user needs to know that a user interface element has changed.
126   */
127  const unsigned long EVENT_ALERT = 0x0013;
128
129  /**
130   * The foreground window has changed.
131   */
132  const unsigned long EVENT_FOREGROUND = 0x0014;
133
134  /**
135   * A menu item on the menu bar has been selected.
136   */
137  const unsigned long EVENT_MENU_START = 0x0015;
138
139  /**
140   * A menu from the menu bar has been closed.
141   */
142  const unsigned long EVENT_MENU_END = 0x0016;
143
144  /**
145   * A pop-up menu has been displayed.
146   */
147  const unsigned long EVENT_MENUPOPUP_START = 0x0017;
148
149  /**
150   * A pop-up menu has been closed.
151   */
152  const unsigned long EVENT_MENUPOPUP_END = 0x0018;
153
154  /**
155   * A window has received mouse capture.
156   */
157  const unsigned long EVENT_CAPTURE_START = 0x0019;
158
159  /**
160   * A window has lost mouse capture.
161   */
162  const unsigned long EVENT_CAPTURE_END = 0x001A;
163
164  /**
165   * A window is being moved or resized.
166   */
167  const unsigned long EVENT_MOVESIZE_START = 0x001B;
168
169  /**
170  * The movement or resizing of a window has finished
171  */
172  const unsigned long EVENT_MOVESIZE_END = 0x001C;
173
174  /**
175   * A window has entered context-sensitive Help mode
176   */
177  const unsigned long EVENT_CONTEXTHELP_START = 0x001D;
178
179  /**
180   * A window has exited context-sensitive Help mode
181   */
182  const unsigned long EVENT_CONTEXTHELP_END = 0x001E;
183
184  /**
185   * An application is about to enter drag-and-drop mode
186   */
187  const unsigned long EVENT_DRAGDROP_START = 0x001F;
188
189  /**
190   * An application is about to exit drag-and-drop mode
191   */
192  const unsigned long EVENT_DRAGDROP_END = 0x0020;
193
194  /**
195   * A dialog box has been displayed
196   */
197  const unsigned long EVENT_DIALOG_START = 0x0021;
198
199  /**
200   * A dialog box has been closed
201   */
202  const unsigned long EVENT_DIALOG_END = 0x0022;
203
204  /**
205   * Scrolling has started on a scroll bar
206   */
207  const unsigned long EVENT_SCROLLING_START = 0x0023;
208
209  /**
210   * Scrolling has ended on a scroll bar
211   */
212  const unsigned long EVENT_SCROLLING_END = 0x0024;
213
214  /**
215   * A window object is about to be minimized or maximized
216   */
217  const unsigned long EVENT_MINIMIZE_START = 0x0025;
218
219  /**
220   * A window object has been minimized or maximized
221   */
222  const unsigned long EVENT_MINIMIZE_END = 0x0026;
223
224  /**
225   * The loading of the document has completed.
226   */
227  const unsigned long EVENT_DOCUMENT_LOAD_COMPLETE = 0x0027;
228
229  /**
230   * The document contents are being reloaded.
231   */
232  const unsigned long EVENT_DOCUMENT_RELOAD = 0x0028;
233
234  /**
235   * The loading of the document was interrupted.
236   */
237  const unsigned long EVENT_DOCUMENT_LOAD_STOPPED = 0x0029;
238
239  /**
240   * The document wide attributes of the document object have changed.
241   */
242  const unsigned long EVENT_DOCUMENT_ATTRIBUTES_CHANGED = 0x002A;
243
244  /**
245   * The contents of the document have changed.
246   */
247  const unsigned long EVENT_DOCUMENT_CONTENT_CHANGED = 0x002B;
248
249  const unsigned long EVENT_PROPERTY_CHANGED = 0x002C;
250
251  /**
252   * A slide changed in a presentation document or a page boundary was
253   * crossed in a word processing document.
254   */
255  const unsigned long EVENT_PAGE_CHANGED = 0x002D;
256
257  /**
258   * A text object's attributes changed.
259   * Also see EVENT_OBJECT_ATTRIBUTE_CHANGED.
260   */
261  const unsigned long EVENT_TEXT_ATTRIBUTE_CHANGED = 0x002E;
262
263  /**
264   * The caret has moved to a new position.
265   */
266  const unsigned long EVENT_TEXT_CARET_MOVED = 0x002F;
267
268  /**
269   * This event indicates general text changes, i.e. changes to text that is
270   * exposed through the IAccessibleText and IAccessibleEditableText interfaces.
271   */
272  const unsigned long EVENT_TEXT_CHANGED = 0x0030;
273
274  /**
275   * Text was inserted.
276   */
277  const unsigned long EVENT_TEXT_INSERTED = 0x0031;
278
279  /**
280   * Text was removed.
281   */
282  const unsigned long EVENT_TEXT_REMOVED = 0x0032;
283
284  /**
285   * Text was updated.
286   */
287  const unsigned long EVENT_TEXT_UPDATED = 0x0033;
288
289  /**
290   * The text selection changed.
291   */
292  const unsigned long EVENT_TEXT_SELECTION_CHANGED = 0x0034;
293
294  /**
295   * A visibile data event indicates the change of the visual appearance
296   * of an accessible object.  This includes for example most of the
297   * attributes available via the IAccessibleComponent interface.
298   */
299  const unsigned long EVENT_VISIBLE_DATA_CHANGED = 0x0035;
300
301  /**
302   * The caret moved from one column to the next.
303   */
304  const unsigned long EVENT_TEXT_COLUMN_CHANGED = 0x0036;
305
306  /**
307   * The caret moved from one section to the next.
308   */
309  const unsigned long EVENT_SECTION_CHANGED = 0x0037;
310
311  /**
312   * A table caption changed.
313   */
314  const unsigned long EVENT_TABLE_CAPTION_CHANGED = 0x0038;
315
316  /**
317   * A table's data changed.
318   */
319  const unsigned long EVENT_TABLE_MODEL_CHANGED = 0x0039;
320
321  /**
322   * A table's summary changed.
323   */
324  const unsigned long EVENT_TABLE_SUMMARY_CHANGED = 0x003A;
325
326  /**
327   * A table's row description changed.
328   */
329  const unsigned long EVENT_TABLE_ROW_DESCRIPTION_CHANGED = 0x003B;
330
331  /**
332   * A table's row header changed.
333   */
334  const unsigned long EVENT_TABLE_ROW_HEADER_CHANGED = 0x003C;
335
336  const unsigned long EVENT_TABLE_ROW_INSERT = 0x003D;
337  const unsigned long EVENT_TABLE_ROW_DELETE = 0x003E;
338  const unsigned long EVENT_TABLE_ROW_REORDER = 0x003F;
339
340  /**
341   * A table's column description changed.
342   */
343  const unsigned long EVENT_TABLE_COLUMN_DESCRIPTION_CHANGED = 0x0040;
344
345  /**
346   * A table's column header changed.
347   */
348  const unsigned long EVENT_TABLE_COLUMN_HEADER_CHANGED = 0x0041;
349
350  const unsigned long EVENT_TABLE_COLUMN_INSERT = 0x0042;
351  const unsigned long EVENT_TABLE_COLUMN_DELETE = 0x0043;
352  const unsigned long EVENT_TABLE_COLUMN_REORDER = 0x0044;
353
354  const unsigned long EVENT_WINDOW_ACTIVATE = 0x0045;
355  const unsigned long EVENT_WINDOW_CREATE = 0x0046;
356  const unsigned long EVENT_WINDOW_DEACTIVATE = 0x0047;
357  const unsigned long EVENT_WINDOW_DESTROY = 0x0048;
358  const unsigned long EVENT_WINDOW_MAXIMIZE = 0x0049;
359  const unsigned long EVENT_WINDOW_MINIMIZE = 0x004A;
360  const unsigned long EVENT_WINDOW_RESIZE = 0x004B;
361  const unsigned long EVENT_WINDOW_RESTORE = 0x004C;
362
363  /**
364   * The ending index of this link within the containing string has changed.
365   */
366  const unsigned long EVENT_HYPERLINK_END_INDEX_CHANGED = 0x004D;
367
368  /**
369   * The number of anchors assoicated with this hyperlink object has changed.
370   */
371  const unsigned long EVENT_HYPERLINK_NUMBER_OF_ANCHORS_CHANGED = 0x004E;
372
373  /**
374   * The hyperlink selected state changed from selected to unselected or
375   * from unselected to selected.
376   */
377  const unsigned long EVENT_HYPERLINK_SELECTED_LINK_CHANGED = 0x004F;
378
379  /**
380   * One of the links associated with the hypertext object has been activated.
381   */
382  const unsigned long EVENT_HYPERTEXT_LINK_ACTIVATED = 0x0050;
383
384  /**
385   * One of the links associated with the hypertext object has been selected.
386   */
387  const unsigned long EVENT_HYPERTEXT_LINK_SELECTED = 0x0051;
388
389  /**
390   * The starting index of this link within the containing string has changed.
391   */
392  const unsigned long EVENT_HYPERLINK_START_INDEX_CHANGED = 0x0052;
393
394  /**
395   * Focus has changed from one hypertext object to another, or focus moved
396   * from a non-hypertext object to a hypertext object, or focus moved from a
397   * hypertext object to a non-hypertext object.
398   */
399  const unsigned long EVENT_HYPERTEXT_CHANGED = 0x0053;
400
401  /**
402   * The number of hyperlinks associated with a hypertext object changed.
403   */
404  const unsigned long EVENT_HYPERTEXT_NLINKS_CHANGED = 0x0054;
405
406  /**
407   * An object's attributes changed. Also see EVENT_TEXT_ATTRIBUTE_CHANGED.
408   */
409  const unsigned long EVENT_OBJECT_ATTRIBUTE_CHANGED = 0x0055;
410
411  /**
412   * A cursorable's virtual cursor has changed.
413   */
414  const unsigned long EVENT_VIRTUALCURSOR_CHANGED = 0x0056;
415
416  /**
417   * An object's text Value has changed.
418   */
419  const unsigned long EVENT_TEXT_VALUE_CHANGE = 0x0057;
420
421  /**
422   * An accessible's viewport is scrolling.
423   */
424  const unsigned long EVENT_SCROLLING = 0x0058;
425
426  /**
427   * An accessible is making an explicit announcement.
428   */
429  const unsigned long EVENT_ANNOUNCEMENT = 0x0059;
430
431  /**
432   * A live region has been introduced. Mac only.
433   */
434  const unsigned long EVENT_LIVE_REGION_ADDED = 0x005A;
435
436  /**
437   * A live region has been removed (aria-live attribute changed). Mac Only.
438   */
439  const unsigned long EVENT_LIVE_REGION_REMOVED = 0x005B;
440
441  /**
442   * A style change has occured on a table that may cause it to
443   * change from data to layout table, or the reverse.
444   */
445  const unsigned long EVENT_TABLE_STYLING_CHANGED = 0x005C;
446
447  /**
448   * Help make sure event map does not get out-of-line.
449   */
450  const unsigned long EVENT_LAST_ENTRY = 0x005D;
451
452  /**
453   * The type of event, based on the enumerated event values
454   * defined in this interface.
455   */
456  readonly attribute unsigned long eventType;
457
458  /**
459   * The nsIAccessible associated with the event.
460   * May return null if no accessible is available
461   */
462  readonly attribute nsIAccessible accessible;
463
464  /**
465   * The nsIAccessibleDocument that the event target nsIAccessible
466   * resides in. This can be used to get the DOM window,
467   * the DOM document and the window handler, among other things.
468   */
469  readonly attribute nsIAccessibleDocument accessibleDocument;
470
471  /**
472   * The Node associated with the event
473   * May return null if accessible for event has been shut down
474   */
475  readonly attribute Node DOMNode;
476
477  /**
478   * Returns true if the event was caused by explicit user input,
479   * as opposed to purely originating from a timer or mouse movement
480   */
481  readonly attribute boolean isFromUserInput;
482};
483