introduce new HIGHLIGHTABLE and HIGHLIGHTED states.
[platform/upstream/at-spi2-core.git] / atspi / atspi-constants.h
index 4eb517e..dd10679 100644 (file)
@@ -412,7 +412,13 @@ typedef enum {
  * @ATSPI_STATE_INVALID: Indicates an invalid state - probably an error 
  * condition.
  * @ATSPI_STATE_ACTIVE: Indicates a window is currently the active window, or
- * is an active subelement within a container or table.
+ * an object is the active subelement within a container or table.
+ * @ATSPI_STATE_ACTIVE should not be used for objects which have
+ * @ATSPI_STATE_FOCUSABLE or @ATSPI_STATE_SELECTABLE: Those objects should use
+ * @ATSPI_STATE_FOCUSED and @ATSPI_STATE_SELECTED respectively.
+ * @ATSPI_STATE_ACTIVE is a means to indicate that an object which is not
+ * focusable and not selectable is the currently-active item within its
+ * parent container.
  * @ATSPI_STATE_ARMED: Indicates that the object is armed.
  * @ATSPI_STATE_BUSY: Indicates the current object is busy, i.e. onscreen
  * representation is in the process of changing, or       the object is
@@ -553,6 +559,23 @@ typedef enum {
  * @ATSPI_STATE_VISITED: This state indicates that the object (typically a
  * hyperlink) has already been activated or invoked, with the result that
  * some backing data has been downloaded or rendered.
+ *@ATSPI_STATE_CHECKABLE: Indicates this object has the potential to
+ *  be checked, such as a checkbox or toggle-able table cell. @Since:
+ *  2.12
+ *@ATSPI_STATE_HAS_POPUP: Indicates that the object has a popup
+ * context menu or sub-level menu which may or may not be
+ * showing. This means that activation renders conditional content.
+ * Note that ordinary tooltips are not considered popups in this
+ * context. @Since: 2.12
+ * @ATSPI_STATE_READ_ONLY: Indicates that an object which is ENABLED and
+ * SENSITIVE has a value which can be read, but not modified, by the
+ * user. @Since: 2.16
+ * @ATSPI_STATE_HIGHLIGHTED: Indicates that an object which is HIGHLIGHTABLE
+ * has been graphically marked to assits visally impared users. Only one
+ * object per window can have ATSPI_STATE_HIGHLIGHTED  state.
+ * @ATSPI_STATE_HIGHLIGHTABLE: Indicates that an object can be graphically
+ * marked to assist visially impaired users.
+ * user. @Since: 2.16
  * @ATSPI_STATE_LAST_DEFINED: This value of the enumeration should not be used
  * as a parameter, it indicates the number of items in the #AtspiStateType
  * enumeration.
@@ -604,6 +627,11 @@ typedef enum {
     ATSPI_STATE_SELECTABLE_TEXT,
     ATSPI_STATE_IS_DEFAULT,
     ATSPI_STATE_VISITED,
+    ATSPI_STATE_CHECKABLE,
+    ATSPI_STATE_HAS_POPUP,
+    ATSPI_STATE_READ_ONLY,
+    ATSPI_STATE_HIGHLIGHTED,
+    ATSPI_STATE_HIGHLIGHTABLE,
     ATSPI_STATE_LAST_DEFINED,
 } AtspiStateType;
 
@@ -972,8 +1000,13 @@ typedef enum {
  * @ATSPI_ROLE_TEAROFF_MENU_ITEM: Object allows menu to be removed from menubar
  * and shown in its own window.
  * @ATSPI_ROLE_TERMINAL: An object that emulates a terminal.
- * @ATSPI_ROLE_TEXT: An object that presents text to the user, of nonspecific
- * type.
+ * @ATSPI_ROLE_TEXT: An interactive widget that supports multiple lines of text
+ * and optionally accepts user input, but whose purpose is not to solicit user
+ * input. Thus @ATSPI_ROLE_TEXT is appropriate for the text view in a plain text
+ * editor but inappropriate for an input field in a dialog box or web form. For
+ * widgets whose purpose is to solicit input from the user, see @ATSPI_ROLE_ENTRY
+ * and @ATSPI_ROLE_PASSWORD_TEXT. For generic objects which display a brief amount
+ * of textual information, see @ATSPI_ROLE_STATIC.
  * @ATSPI_ROLE_TOGGLE_BUTTON: A specialized push button that can be checked or
  * unchecked, but does not procide a separate indicator for the current
  * state.
@@ -1031,7 +1064,7 @@ typedef enum {
  * contains a view of document content. #AtspiDocument frames may occur within
  * another #AtspiDocument instance, in which case the second  document may be
  * said to be embedded in the containing instance.  HTML frames are often
- * @ATSPI_ROLE_DOCUMENT_FRAME:  Either this object, or a singleton descendant, 
+ * ATSPI_ROLE_DOCUMENT_FRAME:  Either this object, or a singleton descendant, 
  * should implement the #AtspiDocument interface.
  * @ATSPI_ROLE_HEADING: The object serves as a heading for content which
  * follows it in a document. The 'heading level' of the heading, if
@@ -1095,9 +1128,67 @@ typedef enum {
  * particular application.
  * @ATSPI_ROLE_INFO_BAR: An object designed to present a message to the user
  * within an existing window.
- *@ATSPI_ROLE_LEVEL_BAR: A bar that serves as a level indicator to, for
+ * @ATSPI_ROLE_LEVEL_BAR: A bar that serves as a level indicator to, for
  * instance, show the strength of a password or the state of a battery. 
- * Since: 2.8
+ *   Since: 2.8
+ *@ATSPI_ROLE_TITLE_BAR: A bar that serves as the title of a window or a
+ * dialog. @Since: 2.12
+ *@ATSPI_ROLE_BLOCK_QUOTE: An object which contains a text section
+ * that is quoted from another source.  @Since: 2.12
+ *@ATSPI_ROLE_AUDIO: An object which represents an audio
+ * element. @Since: 2.12
+ *@ATSPI_ROLE_VIDEO: An object which represents a video
+ * element. @Since: 2.12
+ *@ATSPI_ROLE_DEFINITION: A definition of a term or concept. @Since: 2.12
+ *@ATSPI_ROLE_ARTICLE: A section of a page that consists of a
+ * composition that forms an independent part of a document, page, or
+ * site. Examples: A blog entry, a news story, a forum post. @Since:
+ * 2.12
+ *@ATSPI_ROLE_LANDMARK: A region of a web page intended as a
+ * navigational landmark. This is designed to allow Assistive
+ * Technologies to provide quick navigation among key regions within a
+ * document. @Since: 2.12
+ *@ATSPI_ROLE_LOG: A text widget or container holding log content, such
+ * as chat history and error logs. In this role there is a
+ * relationship between the arrival of new items in the log and the
+ * reading order. The log contains a meaningful sequence and new
+ * information is added only to the end of the log, not at arbitrary
+ * points. @Since: 2.12
+ *@ATSPI_ROLE_MARQUEE: A container where non-essential information
+ * changes frequently. Common usages of marquee include stock tickers
+ * and ad banners. The primary difference between a marquee and a log
+ * is that logs usually have a meaningful order or sequence of
+ * important content changes. @Since: 2.12
+ *@ATSPI_ROLE_MATH: A text widget or container that holds a mathematical
+ * expression. @Since: 2.12
+ *@ATSPI_ROLE_RATING: A widget whose purpose is to display a rating,
+ * such as the number of stars associated with a song in a media
+ * player. Objects of this role should also implement
+ * AtspiValue. @Since: 2.12
+ *@ATSPI_ROLE_TIMER: An object containing a numerical counter which
+ * indicates an amount of elapsed time from a start point, or the time
+ * remaining until an end point. @Since: 2.12
+ *@ATSPI_ROLE_STATIC: A generic non-container object whose purpose is to display
+ * a brief amount of information to the user and whose role is known by the
+ * implementor but lacks semantic value for the user. Examples in which
+ * @ATSPI_ROLE_STATIC is appropriate include the message displayed in a message
+ * box and an image used as an alternative means to display text.
+ * @ATSPI_ROLE_STATIC should not be applied to widgets which are traditionally
+ * interactive, objects which display a significant amount of content, or any
+ * object which has an accessible relation pointing to another object. The
+ * displayed information, as a general rule, should be exposed through the
+ * accessible name of the object. For labels which describe another widget, see
+ * @ATSPI_ROLE_LABEL. For text views, see @ATSPI_ROLE_TEXT. For generic
+ * containers, see @ATSPI_ROLE_PANEL. For objects whose role is not known by the
+ * implementor, see @ATSPI_ROLE_UNKNOWN. @Since: 2.16.
+ *@ATSPI_ROLE_MATH_FRACTION: An object that represents a mathematical fraction.
+ * @Since: 2.16.
+ *@ATSPI_ROLE_MATH_ROOT: An object that represents a mathematical expression
+ * displayed with a radical. @Since: 2.16.
+ *@ATSPI_ROLE_SUBSCRIPT: An object that contains text that is displayed as a
+ * subscript. @Since: 2.16.
+ *@ATSPI_ROLE_SUPERSCRIPT: An object that contains text that is displayed as a
+ * superscript. @Since: 2.16.
  * @ATSPI_ROLE_LAST_DEFINED: Not a valid role, used for finding end of
  * enumeration.
  *
@@ -1210,6 +1301,23 @@ typedef enum {
     ATSPI_ROLE_NOTIFICATION,
     ATSPI_ROLE_INFO_BAR,
     ATSPI_ROLE_LEVEL_BAR,
+    ATSPI_ROLE_TITLE_BAR,
+    ATSPI_ROLE_BLOCK_QUOTE,
+    ATSPI_ROLE_AUDIO,
+    ATSPI_ROLE_VIDEO,
+    ATSPI_ROLE_DEFINITION,
+    ATSPI_ROLE_ARTICLE,
+    ATSPI_ROLE_LANDMARK,
+    ATSPI_ROLE_LOG,
+    ATSPI_ROLE_MARQUEE,
+    ATSPI_ROLE_MATH,
+    ATSPI_ROLE_RATING,
+    ATSPI_ROLE_TIMER,
+    ATSPI_ROLE_STATIC,
+    ATSPI_ROLE_MATH_FRACTION,
+    ATSPI_ROLE_MATH_ROOT,
+    ATSPI_ROLE_SUBSCRIPT,
+    ATSPI_ROLE_SUPERSCRIPT,
     ATSPI_ROLE_LAST_DEFINED,
 } AtspiRole;
 
@@ -1218,7 +1326,7 @@ typedef enum {
  *
  * One higher than the highest valid value of #AtspiRole.
  */
-#define ATSPI_ROLE_COUNT (90+1)
+#define ATSPI_ROLE_COUNT (121+1)
 
 typedef enum
 {
@@ -1232,10 +1340,7 @@ typedef enum
   ATSPI_CACHE_INTERFACES  = 1 << 6,
   ATSPI_CACHE_ATTRIBUTES = 1 << 7,
   ATSPI_CACHE_ALL         = 0x3fffffff,
-  ATSPI_CACHE_DEFAULT = ATSPI_CACHE_PARENT | ATSPI_CACHE_CHILDREN |
-                        ATSPI_CACHE_NAME | ATSPI_CACHE_DESCRIPTION |
-                        ATSPI_CACHE_STATES | ATSPI_CACHE_ROLE |
-                        ATSPI_CACHE_INTERFACES,
+  ATSPI_CACHE_DEFAULT = ATSPI_CACHE_PARENT | ATSPI_CACHE_CHILDREN | ATSPI_CACHE_NAME | ATSPI_CACHE_DESCRIPTION | ATSPI_CACHE_STATES | ATSPI_CACHE_ROLE | ATSPI_CACHE_INTERFACES,
   ATSPI_CACHE_UNDEFINED   = 0x40000000,
 } AtspiCache;
 
@@ -1266,6 +1371,7 @@ typedef enum
 #define ATSPI_DBUS_INTERFACE_IMAGE "org.a11y.atspi.Image"
 #define ATSPI_DBUS_INTERFACE_SELECTION "org.a11y.atspi.Selection"
 #define ATSPI_DBUS_INTERFACE_TABLE "org.a11y.atspi.Table"
+#define ATSPI_DBUS_INTERFACE_TABLE_CELL "org.a11y.atspi.TableCell"
 #define ATSPI_DBUS_INTERFACE_TEXT "org.a11y.atspi.Text"
 #define ATSPI_DBUS_INTERFACE_VALUE "org.a11y.atspi.Value"
 #define ATSPI_DBUS_INTERFACE_SOCKET "org.a11y.atspi.Socket"