/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is mozilla.org code. * * The Initial Developer of the Original Code is * Netscape Communications Corporation. * Portions created by the Initial Developer are Copyright (C) 2003 * the Initial Developer. All Rights Reserved. * * Original Author: Aaron Leventhal (aaronl@netscape.com) * Contributor(s): Kyle Yuan (kyle.yuan@sun.com) * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ #include "nsISupports.idl" interface nsIDOMNode; interface nsIAccessible; interface nsIWeakReference; interface nsIPresShell; interface nsIDOMWindow; interface nsIAccessNode; interface nsIDOMDOMStringList; /** * An interface for in-process accessibility clients * wishing to get an nsIAccessible or nsIAccessNode for * a given DOM node. * More documentation at: * http://www.mozilla.org/projects/ui/accessibility * * @status UNDER_REVIEW */ [scriptable, uuid(7eb49afb-6298-4ce6-816f-9615936540f4)] interface nsIAccessibleRetrieval : nsISupports { /** * Return an nsIAccessible for a DOM node in pres shell 0. * Create a new accessible of the appropriate type if necessary, * or use one from the accessibility cache if it already exists. * @param aNode The DOM node to get an accessible for. * @return The nsIAccessible for the given DOM node. */ nsIAccessible getAccessibleFor(in nsIDOMNode aNode); /** * The same like getAccessibleFor method except it returns accessible only if * it is attached, i.e. accessible is certified to be a descendent of the root * accessible. * * @param aNode - the DOM node to get an accessible for. * * @return - the accessible for the given DOM node. */ nsIAccessible getAttachedAccessibleFor(in nsIDOMNode aNode); /** * Return an DOM node that is relevant to attached accesible check. This * node is either from bindings chain if given node is anonymous and owner * binding denies accessible in anonymous content or given node (it's not * important whether it is accessible or not). This method doesn't create * accessible object for returned node. * * @param aNode - the DOM node to get relevant content node. * * @return - the DOM node for parent attached accessible */ nsIDOMNode getRelevantContentNodeFor(in nsIDOMNode aNode); /** * Return an nsIAccessible for a DOM node in the given pres shell. * Create a new accessible of the appropriate type if necessary, * or use one from the accessibility cache if it already exists. * @param aNode The DOM node to get an accessible for. * @param aPresShell The presentation shell which contains layout info for the DOM node. * @return The nsIAccessible for the given DOM node. */ nsIAccessible getAccessibleInShell(in nsIDOMNode aNode, in nsIPresShell aPresShell); /** * Return an nsIAccessNode for an already created DOM node in the given weak shell. * Does not create a new one -- only returns cached access nodes. * @param aNode The DOM node to get an access node for. * @param aPresShell The presentation shell which contains layout info for the DOM node. * @return The nsIAccessNode for the given DOM node or null if * an access node does not already exist for this DOM node. */ nsIAccessNode getCachedAccessNode(in nsIDOMNode aNode, in nsIWeakReference aShell); /** * Return an nsIAccessible for an already created DOM node in the given weak shell. * Does not create a new one -- only returns cached accessibles. * @param aNode The DOM node to get an accessible for. * @param aPresShell The presentation shell which contains layout info for the DOM node. * @return The nsIAccessible for the given DOM node or null if * an accessible does not already exist for this DOM node. */ nsIAccessible getCachedAccessible(in nsIDOMNode aNode, in nsIWeakReference aShell); /** * Returns accessible role as a string. * * @param aRole - the accessible role constants. */ AString getStringRole(in unsigned long aRole); /** * Returns list which contains accessible states as a strings. * * @param aStates - accessible states. * @param aExtraStates - accessible extra states. */ nsIDOMDOMStringList getStringStates(in unsigned long aStates, in unsigned long aExtraStates); /** * Get the type of accessible event as a string. * * @param aEventType - the accessible event type constant * @return - accessible event type presented as human readable string */ AString getStringEventType(in unsigned long aEventType); /** * Get the type of accessible relation as a string. * * @param aRelationType - the accessible relation type constant * @return - accessible relation type presented as human readable string */ AString getStringRelationType(in unsigned long aRelationType); }; %{ C++ // for component registration // {663CA4A8-D219-4000-925D-D8F66406B626} #define NS_ACCESSIBLE_RETRIEVAL_CID \ { 0x663ca4a8, 0xd219, 0x4000, { 0x92, 0x5d, 0xd8, 0xf6, 0x64, 0x6, 0xb6, 0x26 } } %}