+
+ /**
+ * The object is a component whose textual content may be entered or modified by the user,
+ * provided STATE_EDITABLE is present.
+ * @note a readonly ROLE_ENTRY object (i.e. where STATE_EDITABLE is not present) implies a
+ * read-only ¨text field¨ in a form, as opposed to a title, label, or caption.
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_ENTRY,
+ /**
+ * The object is a graphical depiction of quantitative data. It may contain multiple
+ * subelements whose attributes and/or description may be queried to obtain both the
+ * quantitative data and information about how the data is being presented.
+ * The LABELLED_BY relation is particularly important in interpreting objects of this type,
+ * as is the accessible-description property.
+ * @see ROLE_CAPTION
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_CHART,
+ /**
+ * The object contains descriptive information, usually textual, about another user interface
+ * element such as a table, chart, or image.
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_CAPTION,
+ /**
+ * The object is a visual frame or container which contains a view of document content.
+ * Document frames may occur within another Document instance, in which case the second
+ * document may be said to be embedded in the containing instance. HTML frames are
+ * often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement
+ * the Document interface.
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_DOCUMENT_FRAME,
+ /**
+ * The object serves as a heading for content which follows it in a document.
+ * The 'heading level' of the heading, if availabe, may be obtained by
+ * querying the object's attributes.
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_HEADING,
+ /**
+ * The object is a containing instance which encapsulates a page of
+ * information. ROLE_PAGE is used in documents and content which support
+ * a paginated navigation model.
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_PAGE,
+ /**
+ * The object is a containing instance of document content which constitutes
+ * a particular 'logical' section of the document. The type of content within
+ * a section, and the nature of the section division itself, may be obtained
+ * by querying the object's attributes. Sections may be nested.
+ *
+ * @since AT-SPI 1.7.0
+ */
+ ROLE_SECTION,
+ /**
+ * The object is redundant with another object in the hierarchy,
+ * and is exposed for purely technical reasons. Objects of this role
+ * should be ignored by clients, if they are encountered at all.
+ *
+ * @since AT-SPI 1.7.6
+ */
+ ROLE_REDUNDANT_OBJECT,
+ /**
+ * The object is a containing instance of document content which
+ * has within it components with which the user can interact in order to
+ * input information; i.e. the object is a container for pushbuttons,
+ * comboboxes, text input fields, and other 'GUI' components.
+ * ROLE_FORM should not, in general, be used for toplevel GUI containers
+ * or dialogs, but should be reserved for 'GUI' containers which occur within
+ * document content, for instance within Web documents, presentations, or
+ * text documents. Unlike other GUI containers and dialogs which occur inside
+ * application instances, ROLE_FORM containers' components are associated with
+ * the current document, rather than the current foreground application or
+ * viewer instance.
+ *
+ * @since AT-SPI 1.7.6
+ */
+ ROLE_FORM,
+ /**
+ * The object is a hypertext anchor, i.e. a "link" in a
+ * hypertext document. Such objects are distinct from 'inline'
+ * content which may also use the Hypertext/Hyperlink interfaces
+ * to indicate the range/location within a text object where
+ * an inline or embedded object lies.
+ *
+ * @since AT-SPI 1.7.6
+ */
+ ROLE_LINK,
+ /**
+ * The object is a window or similar viewport which is used
+ * to allow composition or input of a 'complex character',
+ * in other words it is an "input method window."
+ *
+ * @since AT-SPI 1.7.6
+ */
+ ROLE_INPUT_METHOD_WINDOW,
+
+ /** not a valid role, used for finding end of enumeration. */