[accerciser] Added new Mallard documentation



commit 9cdfea1f724f3adc654a2fc8cd81a71ba18a96d6
Author: Aline Bessa <alibezz gmail com>
Date:   Sun Jul 10 23:02:23 2011 +0200

    Added new Mallard documentation

 Makefile.am                                |    4 +-
 configure.in                               |    2 +-
 help/C/api_browser_plugin.page             |   65 ++++++++
 help/C/desktop_tree_view.page              |   76 +++++++++
 help/C/event_monitor_plugin.page           |  134 ++++++++++++++++
 help/C/figures/IPython_plugin.png          |  Bin 0 -> 119753 bytes
 help/C/figures/accerciser-logo.png         |  Bin 0 -> 3602 bytes
 help/C/figures/accerciser-view.png         |  Bin 0 -> 107730 bytes
 help/C/figures/accerciser_preferences.png  |  Bin 0 -> 95652 bytes
 help/C/figures/accessible_tree.png         |  Bin 0 -> 151453 bytes
 help/C/figures/api_browser.png             |  Bin 22058 -> 151693 bytes
 help/C/figures/event_monitor.png           |  Bin 53861 -> 131303 bytes
 help/C/figures/event_monitor_plugin.png    |  Bin 0 -> 128766 bytes
 help/C/figures/global-hotkeys.png          |  Bin 0 -> 29505 bytes
 help/C/figures/highlighting.png            |  Bin 0 -> 15833 bytes
 help/C/figures/interface_viewer_plugin.png |  Bin 0 -> 103228 bytes
 help/C/figures/plugins.png                 |  Bin 0 -> 25117 bytes
 help/C/figures/tree_view_accerciser.png    |  Bin 0 -> 60810 bytes
 help/C/figures/validator_app_tree.png      |  Bin 0 -> 220905 bytes
 help/C/figures/validator_report.png        |  Bin 0 -> 210100 bytes
 help/C/howto_setting_up_accerciser.page    |   78 +++++++++
 help/C/howto_write_a_plugin.page           |  236 ++++++++++++++++++++++++++++
 help/C/index.page                          |   42 +++++
 help/C/interface_viewer_plugin.page        |  139 ++++++++++++++++
 help/C/introduction.page                   |  168 ++++++++++++++++++++
 help/C/ipython_plugin.page                 |   72 +++++++++
 help/C/preferences.page                    |  118 ++++++++++++++
 help/C/quick_select_plugin.page            |   37 +++++
 help/C/validator_plugin.page               |   73 +++++++++
 help/Makefile.am                           |   37 ++++-
 30 files changed, 1272 insertions(+), 9 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 111f41f..c220e8b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -25,7 +25,9 @@ EXTRA_DIST =  \
 	$(schemas_in_files) \
 	$(schemas_DATA)
 
-DISTCHECK_CONFIGURE_FLAGS = --disable-scrollkeeper
+DISTCHECK_CONFIGURE_FLAGS = \
+	--disable-scrollkeeper \
+	--enable-pydoc
 DISTCLEANFILES = \
 	$(desktop_DATA) \
 	accerciser.spec \
diff --git a/configure.in b/configure.in
index b2a49c7..4ff065f 100644
--- a/configure.in
+++ b/configure.in
@@ -3,7 +3,7 @@ AC_CONFIG_SRCDIR(src/accerciser.in)
 AM_INIT_AUTOMAKE
 AM_MAINTAINER_MODE
 
-GNOME_DOC_INIT
+GNOME_DOC_INIT([0.17.3])
 
 dnl == check for python ==
 AM_PATH_PYTHON(2.4)
diff --git a/help/C/api_browser_plugin.page b/help/C/api_browser_plugin.page
new file mode 100644
index 0000000..1fbd28d
--- /dev/null
+++ b/help/C/api_browser_plugin.page
@@ -0,0 +1,65 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="api_browser_plugin">
+  <info>
+    <link type="guide" xref="index#advanced" />
+    <title type="sort">1. API Browser Plugin</title>
+    <link type="next" xref="ipython_plugin" />
+    <desc>
+      Verifying interfaces, methods, and properties
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> API Browser Plugin</title>
+  <p>
+    Given an accessible widget selected in the <link xref="desktop_tree_view">Application Tree View</link>,
+    the API Browser Plugin shows its implemented AT-SPI interfaces along with its methods and properties.
+  </p>
+
+  <figure>
+    <title>API Browser Plugin</title>
+    <desc>
+      The API Browser Plugin allows you to verify interfaces, methods, and properties of a
+      target accessible widget in an application. 
+    </desc>
+    <media type="image" mime="image/png" width="800" height="500" src="figures/api_browser.png">
+      <p>
+       The API Browser Plugin allows you to verify interfaces, methods, and properties of a
+       target accessible widget in an application.
+      </p>
+    </media>
+  </figure>
+
+  <section id="running_api_browser_plugin">
+    <title>Running the API Browser Plugin</title>
+    <p>
+      To run the API Browser Plugin, select an accessible widget
+      in the Application Tree View. Double-clicking a widget highlights it in the
+      application's interface, so you can be sure whether a certain widget were the
+      one you were looking for. 
+    </p>
+    <p>
+      After that, select one of the widget's interfaces in the combobox.
+      All public methods of the selected interface will be
+      listed in the plugin's leftmost column. All public properties, with their 
+      corresponding values, will be listed in the plugin's rightmost column.
+    </p>  
+    <p>
+      By default, the API Browser Plugin hides private methods and properties. To see
+      them listed, unselect the checkbox <cmd>Hide Private Attributes</cmd>. To hide
+      them again, re-select this checkbox.
+    </p>
+  </section>
+</page>
diff --git a/help/C/desktop_tree_view.page b/help/C/desktop_tree_view.page
new file mode 100644
index 0000000..ff8858b
--- /dev/null
+++ b/help/C/desktop_tree_view.page
@@ -0,0 +1,76 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="desktop_tree_view">
+  <info>
+    <link type="guide" xref="index#examining_a11y" />
+    <title type="sort">1. Application Tree View</title>
+    <link type="next" xref="interface_viewer" />
+    <desc>
+      Exploring the accessible hierarchy of the desktop
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title>Application Tree View</title>
+
+  <p>
+    <app>Accerciser</app>'s interface contains a tree view, namely Application Tree View, that covers all
+    accessible applications currently running on the desktop. To create this tree view, <app>Accerciser</app>  
+    uses the AT-SPI's registry daemon. This daemon is responsible for keeping track of all the accessible 
+    applications on the desktop and forwarding X events over the AT-SPI D-Bus. After getting all accessible
+    applications, <app>Accerciser</app> represents each one of them as a hierarchical structure with expanding
+    nodes. 
+  </p>
+
+  <figure>
+    <title>Application Tree View</title>
+    <desc>
+      <app>Accerciser</app>'s Application Tree View represents the interface of each accessible application
+      running on the desktop as a widget hierarchical structure. 
+    </desc>
+    <media type="image" mime="image/png" width="400" height="600" src="figures/tree_view_accerciser.png">
+      <p><app>Accerciser</app>'s Application Tree View represents the interface of each accessible application
+      running on the desktop as a widget hierarchical structure.</p>
+    </media>
+  </figure>
+
+
+  <p>
+    The first node of each application represented in this tree view is the application itself. When you expand a node, you
+    can see all of its child widgets, which allows a hierarchical view of the application's interface. For each node, 
+    <app>Accerciser</app> provides some basic information, such as its name, role and number of children. 
+  </p>
+
+  <note style="caution">
+    <p>
+      Be aware that nodes with many children take a long time to expand.
+    </p>
+  </note>
+
+  <section id="bookmarking">
+    <title>Bookmarking items in the Application Tree View</title>
+    <p>
+      <app>Accerciser</app> allows bookmarking items in the Application Tree View for later examining. This is helpful when
+      the target application must be restarted - after rebuilding it, for example. To bookmark an item, select it and do
+      <guiseq><gui>Bookmarks</gui><gui>Add Bookmark</gui></guiseq> or press <key>Ctrl</key>+<key>d</key>. 
+    </p>
+    <p>
+      Bookmarks to accessible items in <app>Accerciser</app> are defined by an application name and a "path" in the
+      application's internal accessible hierarchy to the bookmarked accessible. When the target application is in a
+      different state - i.e. multiple top level frames -, the path might not be correct. Bookmarks could be managed
+      by accessing the bookmark editing dialog through <guiseq><gui>Bookmarks</gui><gui>Edit Bookmarks</gui></guiseq>.
+    </p>
+  </section>
+
+</page>
diff --git a/help/C/event_monitor_plugin.page b/help/C/event_monitor_plugin.page
new file mode 100644
index 0000000..829c3c0
--- /dev/null
+++ b/help/C/event_monitor_plugin.page
@@ -0,0 +1,134 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="event_monitor_plugin">
+  <info>
+    <link type="guide" xref="index#examining_a11y" />
+    <title type="sort">4. Event Monitor Plugin</title>
+    <link type="next" xref="quick_select_plugin" />
+    <desc>
+      Monitoring accessible events as they occur
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> Event Monitor Plugin</title>
+  <p>
+    The Event Monitor Plugin allows you to view 
+    <link href="http://accessibility.linuxfoundation.org/a11yspecs/atspi/adoc/atspi-events.html";>AT-SPI events</link>
+    as they occur on the applications exposed in <app>Accerciser</app>'s
+    <link xref="desktop_tree_view">Application Tree View</link>. The plugin is useful to explore the dynamics of an 
+    application's interface and verify which accessible widgets are related to which AT-SPI events.
+  </p>
+
+  <figure>
+    <title>Event Monitor Plugin</title>
+    <desc>
+      The Event Monitor Plugin allows you to view AT-SPI events and match them
+      with accessible widgets. 
+    </desc>
+    <media type="image" mime="image/png" width="700" height="500" src="figures/event_monitor_plugin.png">
+      <p>
+       The Event Monitor Plugin allows you to view AT-SPI events and match them
+       with accessible widgets.
+      </p>
+    </media>
+  </figure>
+
+  <section id="running_event_monitor_plugin">
+    <title>Running the Event Monitor Plugin</title>
+    <p>
+      When you open the Event Monitor Plugin, you see a list of checkboxes
+      representing all the different AT-SPI event classes covered by the
+      plugin:
+    </p>
+
+    <list>
+      <item>
+        <p>
+          document
+        </p>
+      </item>
+      <item>
+        <p>
+          focus
+        </p>
+      </item>
+      <item>
+        <p>
+          mouse
+        </p>
+      </item>
+      <item>
+        <p>
+          object
+        </p>
+      </item>
+      <item>
+        <p>
+          terminal
+        </p>
+      </item>
+      <item>
+        <p>
+          window
+        </p>
+      </item>
+    </list>
+
+    <p>
+      If you check a class,
+      all of its event types will be monitored by the plugin. The classes
+      are exposed as tree structures; therefore, you can refine your selection
+      by expanding them and checking only the event types you really care about.
+    </p>
+    <p>  
+      If you want to monitor all possible types of AT-SPI events, press the <cmd>Select All</cmd>
+      button. Similarly, if you want to clear all currently selected event types,
+      press the <cmd>Clear Selection</cmd> button.
+    </p>
+
+    <note style="tip">
+      <p>
+        Selecting only a few event types per monitoring gives you a clearer output. 
+      </p>
+    </note>
+
+    <p>  
+      Another way to refine event monitoring is by the event source. By default, the Source option <cmd>Everything</cmd>
+      is selected, indicating that AT-SPI events of all applications will be monitored.
+      If you want to investigate a single application, select it
+      in the Application Tree View and click the Source radio button <cmd>Selected application</cmd>. Likewise,
+      if you want to monitor a single accessible widget and its corresponding descendants,
+      select it in the Application Tree View and click the Source radio button <cmd>Selected accessible</cmd>.
+    </p>
+
+    <p>
+      After selecting event types and specifying a Source option, the Event Monitor Plugin starts
+      monitoring AT-SPI events automatically, because the <cmd>Monitor Events</cmd> button is
+      pressed by default. Whenever you want to stop monitoring, click the <cmd>Monitor Events</cmd>
+      button. To restart monitoring, press this button again.
+    </p>
+    
+    <p>
+      For each incoming event, the Event Monitor Plugin indicates the source and the application. Activating the
+      link for either of these items will cause it to become selected in the Application Tree View.
+    </p>
+
+    <p>
+      If you want to save the output generated by the Event Monitor Plugin,
+      just press the <cmd>Save</cmd> button. To clear the output screen, you just need to
+      click the <cmd>Clear</cmd> button.
+    </p>
+  </section>
+</page>
diff --git a/help/C/figures/IPython_plugin.png b/help/C/figures/IPython_plugin.png
new file mode 100644
index 0000000..62339c7
Binary files /dev/null and b/help/C/figures/IPython_plugin.png differ
diff --git a/help/C/figures/accerciser-logo.png b/help/C/figures/accerciser-logo.png
new file mode 100644
index 0000000..a057eaf
Binary files /dev/null and b/help/C/figures/accerciser-logo.png differ
diff --git a/help/C/figures/accerciser-view.png b/help/C/figures/accerciser-view.png
new file mode 100644
index 0000000..01e0083
Binary files /dev/null and b/help/C/figures/accerciser-view.png differ
diff --git a/help/C/figures/accerciser_preferences.png b/help/C/figures/accerciser_preferences.png
new file mode 100644
index 0000000..b786ab4
Binary files /dev/null and b/help/C/figures/accerciser_preferences.png differ
diff --git a/help/C/figures/accessible_tree.png b/help/C/figures/accessible_tree.png
new file mode 100644
index 0000000..de96abf
Binary files /dev/null and b/help/C/figures/accessible_tree.png differ
diff --git a/help/C/figures/api_browser.png b/help/C/figures/api_browser.png
index 5a42a49..56c3dfd 100644
Binary files a/help/C/figures/api_browser.png and b/help/C/figures/api_browser.png differ
diff --git a/help/C/figures/event_monitor.png b/help/C/figures/event_monitor.png
index 12aa648..a742ae5 100644
Binary files a/help/C/figures/event_monitor.png and b/help/C/figures/event_monitor.png differ
diff --git a/help/C/figures/event_monitor_plugin.png b/help/C/figures/event_monitor_plugin.png
new file mode 100644
index 0000000..a216810
Binary files /dev/null and b/help/C/figures/event_monitor_plugin.png differ
diff --git a/help/C/figures/global-hotkeys.png b/help/C/figures/global-hotkeys.png
new file mode 100644
index 0000000..bd1553b
Binary files /dev/null and b/help/C/figures/global-hotkeys.png differ
diff --git a/help/C/figures/highlighting.png b/help/C/figures/highlighting.png
new file mode 100644
index 0000000..6de0d6c
Binary files /dev/null and b/help/C/figures/highlighting.png differ
diff --git a/help/C/figures/interface_viewer_plugin.png b/help/C/figures/interface_viewer_plugin.png
new file mode 100644
index 0000000..8408753
Binary files /dev/null and b/help/C/figures/interface_viewer_plugin.png differ
diff --git a/help/C/figures/plugins.png b/help/C/figures/plugins.png
new file mode 100644
index 0000000..8709f73
Binary files /dev/null and b/help/C/figures/plugins.png differ
diff --git a/help/C/figures/tree_view_accerciser.png b/help/C/figures/tree_view_accerciser.png
new file mode 100644
index 0000000..92000c9
Binary files /dev/null and b/help/C/figures/tree_view_accerciser.png differ
diff --git a/help/C/figures/validator_app_tree.png b/help/C/figures/validator_app_tree.png
new file mode 100644
index 0000000..5361ad8
Binary files /dev/null and b/help/C/figures/validator_app_tree.png differ
diff --git a/help/C/figures/validator_report.png b/help/C/figures/validator_report.png
new file mode 100644
index 0000000..136a8ff
Binary files /dev/null and b/help/C/figures/validator_report.png differ
diff --git a/help/C/howto_setting_up_accerciser.page b/help/C/howto_setting_up_accerciser.page
new file mode 100644
index 0000000..d5f3422
--- /dev/null
+++ b/help/C/howto_setting_up_accerciser.page
@@ -0,0 +1,78 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="howto_setting_up_accerciser">
+<info>
+  <link type="guide" xref="index#getting_started" />
+  <link type="next" xref="desktop_tree_view" />
+  <title type="sort">2. How to install and run <app>Accerciser</app></title>
+  <title type="link">Setting up <app>Accerciser</app></title>
+    <desc>
+      Installing and running <app>Accerciser</app> on your system
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title>Setting up <app>Accerciser</app></title>
+
+    <p>
+      Check if your distribution has <app>Accerciser</app> already packaged.
+      If this is the case, you can install it via its package manager. Otherwise,
+      you can follow the section below to install <app>Accerciser</app> manually.  
+    </p>
+
+    <section id="installing_accerciser_manually">
+      <title>Installing <app>Accerciser</app> manually</title>
+       <p>
+        To install <app>Accerciser</app> manually, you will need to download it first. <app>Accerciser</app>'s
+        source code can either be downloaded from <link href="http://ftp.gnome.org/pub/GNOME/sources/accerciser/";>the gnome.org 
+        FTP site</link> or cloned from <link href="http://git.gnome.org/browse/accerciser";>the gnome.org GIT repository</link>.
+      </p>
+
+      <note style="caution">
+        <p>
+         If you are not using GNOME 3, you may find that <app>Accerciser</app> version 3 or later is not compatible with your
+         environment.
+       </p>
+      </note>
+
+
+      <p>
+        After getting <app>Accerciser</app>, install it using the following commands:
+      </p>
+      <steps>
+        <item><p><cmd>cd accerciser</cmd></p></item>
+        <item><p><cmd>./autogen.sh # or ./configure for first time installation</cmd></p></item>
+        <item><p><cmd>make</cmd></p></item>
+        <item><p><cmd>sudo make install # or make install as root</cmd></p></item>
+      </steps>
+      <p>
+        If you find any problems installing <app>Accerciser</app> on your system, it is likely that some 
+        of its dependencies are missing. Check <link href="https://live.gnome.org/Accerciser/#Requirements";>
+        <app>Accerciser</app>'s wiki</link> to make sure you have all dependencies properly installed.
+      </p>
+    </section>
+ 
+    <section id="running_accerciser">
+      <title>Running <app>Accerciser</app></title>
+        <p>
+          To start <app>Accerciser</app>, type <cmd>accerciser</cmd> in a terminal window or
+          within the Run dialog and then press <key>Return</key>.
+        </p>
+        <p>
+          After that, you can use <app>Accerciser</app> to inspect any accessible item shown in the
+          <link xref="desktop_tree_view">Application Tree View</link>'s hierarchy. Select an item and investigate
+          it using one of <app>Accerciser</app>'s plugins.
+        </p>
+    </section>
+</page>
diff --git a/help/C/howto_write_a_plugin.page b/help/C/howto_write_a_plugin.page
new file mode 100644
index 0000000..fa5f822
--- /dev/null
+++ b/help/C/howto_write_a_plugin.page
@@ -0,0 +1,236 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="howto_write_a_plugin">
+  <info>
+    <link type="guide" xref="index#advanced" />
+    <title type="sort">3. Writing New Plugins</title>
+    <link type="next" xref="preferences_setting" />
+    <desc>
+      Extending <app>Accerciser</app> with your desired functionalities
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> Writing Plugins for <app>Accerciser</app></title>
+  <p>
+    Extending <app>Accerciser</app> with new plugins became much simpler
+    since <link href="http://live.gnome.org/Accerciser/PluginTutorial";>this tutorial</link>
+    was written. Given that it provides a very detailed explanation about the topic,
+    this section consists basically of its original content - only simple editions
+    and updates were done.
+  </p>
+  <p>
+    <app>Accerciser</app> supports three basic types of plugins:
+  </p>
+  <list>
+    <item>
+      <p>
+        Base plugins - These plugins are derived from the Plugin base class. They do not provide
+        a visible interface, but could provide additional functionality to <app>Accerciser</app>.
+      </p>
+    </item>
+    <item>
+      <p>
+        Console plugins - These plugins provide simple console output into a text area in a plugin
+        tab. Not to be confused with the packaged <link xref="ipython_plugin">IPython Console Plugin</link>.
+      </p>
+    </item>
+    <item>
+      <p>
+        Viewport plugins - The majority of <app>Accerciser</app> default plugins. 
+        They provide a custom graphical interface in a tab. 
+      </p>
+    </item>
+  </list>
+
+  <section id="base_plugin">
+    <title>Creating a Base Plugin</title>
+    <p>
+      We will create a simplified version of the <link xref="quick_select_plugin">Quick Select Plugin</link>. 
+      This plugin will select the last focused accessible when pressing <key>ctrl</key>+<key>alt</key>+<key>e</key>.
+    </p>
+    <p>
+      First off, the import lines we will use are: 
+    </p>
+    <code>
+      from accerciser.plugin import Plugin
+      import gtk
+      import pyatspi
+    </code>
+    <p>
+      Next we will derive a new class from the Plugin base class, 
+      and assign some mandatory class attributes: 
+    </p>
+    <code>
+      class FocusSelect(Plugin):
+        plugin_name = 'Focus Select'
+        plugin_description = 'Allows selecting last focused accessible.'
+    </code>
+    <p>
+      We will now override the init method, in which we will set a global key
+      action for selecting the last focused accessible item, register an event
+      listener for the "focus" event, and set the <cmd>last_focused</cmd> instance
+      variable to <cmd>None</cmd>. 
+    </p>
+    <code>
+      def init(self):
+        pyatspi.Registry.registerEventListener(self.accEventFocusChanged, 'focus')
+        self.global_hotkeys = [('Inspect last focused accessible',
+                                self.inspectLastFocused,
+                                gtk.keysyms.e,
+                                gtk.gdk.CONTROL_MASK | gtk.gdk.MOD1_MASK)]
+        self.last_focused = None
+    </code>
+    <p>
+      Notice that the <cmd>global_hotkeys</cmd> instance variable is a list of
+      tuples. Each tuple is a global hotkey action, composed by an action description,
+      a desired method to call, a key symbol of keypress, and a key modifier mask.
+    </p>
+    <p>
+      In the "focus" event callback, we assign the <cmd>last_focused</cmd> instance
+      variable with the accessible item that has just emitted the "focus" event. 
+    </p>
+    <code>
+      def accEventFocusChanged(self, event):
+        if not self.isMyApp(event.source):
+          self.last_focused = event.source
+    </code>
+    <p>
+       In the hotkey action callback, we update the application wide node with the
+       last focused accessible item, if we have recorded it:
+    </p>
+    <code>
+      def inspectLastFocused(self):
+        if self.last_focused:
+          self.node.update(self.last_focused)
+    </code>
+  </section>
+  <section id="console_plugin">
+    <title>Creating a Console Plugin</title>
+    <p>
+      We will create a console plugin to display focus changes emitted by an accessible
+      item with a "push button" role - remember that it is easy to check what is the role
+      of any item with <app>Accerciser</app>; you can verify it in the <link xref="desktop_tree_view">Application Tree View</link>,
+      for example. 
+    </p>
+    <p>
+      The needed import lines are:
+    </p>
+    <code>
+      from accerciser.plugin import ConsolePlugin
+      import pyatspi
+    </code>
+    <p>
+      Then we add a class definition, with a plugin name and description: 
+    </p> 
+    <code>
+      class PushButtonFocus(ConsolePlugin):
+        plugin_name = 'Push Button Focus'
+        plugin_description = 'Print event when pushbutton get\'s focus.'
+    </code>
+    <p>
+      We override the init method adding a register listener: 
+    </p>
+    <code>
+       def init(self):
+         pyatspi.Registry.registerEventListener(self.accEventFocusChanged, 'focus')
+    </code>
+    <p>
+      In the callback method, all push button events are printed. 
+    </p>
+    <code>
+      def accEventFocusChanged(self, event):
+        if event.source.getRole() == pyatspi.ROLE_PUSH_BUTTON:
+          self.appendText(str(event)+'\n')
+    </code>
+  </section>
+  <section id="viewport_plugin">
+    <title>Creating a Viewport Plugin</title>
+    <p>
+      We will create a viewport plugin that allows quick testing of the
+      "click" action in accessible items that support the AT-SPI Action interface
+      and have an action named "click". It will be a simple button that, once
+      clicked, does the "click" action in the accessible. 
+    </p>
+    <p>
+      First off, some mandatory import lines:
+    </p>
+    <code>
+      import gtk
+      from accerciser.plugin import ViewportPlugin
+    </code>
+    <p>
+      Next, a class definition, with a name and description: 
+    </p>
+    <code>
+      class Clicker(ViewportPlugin):
+        plugin_name = 'Clicker'
+        plugin_description = 'Test the "click" action in relevant accessibles.'
+    </code>
+    <p>
+      We override the init method with some UI building, and connecting a callback
+      to a signal for the button. We use the alignment container to allow the button
+      to be centered in the plugin tab, and not monstrously take up the entire plugin
+      space. Notice that the <cmd>plugin_area</cmd> instance variable contains a gtk.Frame
+      that could be populated with all the plugin's widgets. 
+    </p>
+    <code>
+       def init(self):
+         alignment = gtk.Alignment(0.5,0.5,0,0)
+         self.click_button = gtk.Button('Click me!')
+         alignment.add(self.click_button)
+         self.plugin_area.add(alignment)
+
+         self.click_button.connect('clicked', self.onClick)
+
+         self.show_all()
+    </code>
+    <p>
+       We also created a convenience method that returns a list of supported actions
+       of the currently selected accessible item - if it does not support the Action
+       interface, it returns an empty list: 
+    </p> 
+    <code>
+       def accSupportedActions(self):
+       try:
+         ai = self.node.acc.queryAction()
+       except NotImplementedError:
+         action_names = []
+       else:
+         action_names = [ai.getName(i) for i in xrange(ai.nActions)]
+       return action_names
+    </code>
+    <p>
+      The base plugin class has a method call onAccChanged that is called everytime the
+      target application's selected accessible item changes. We will override it setting
+      the button to be sensitive only when the current accessible item has the "click" action: 
+    </p>
+    <code>
+       def onAccChanged(self, acc):
+         has_click = 'click' in self.accSupportedActions()
+         self.click_button.set_sensitive(has_click)
+    </code>
+    <p>
+      The callback method for button "clicked" performs the "click" action on the accessible item. 
+      Since this callback could only be called when the button is sensitive, we don't need to worry 
+      about checking if the current accessible has the "click" action?
+    </p>
+    <code>
+      def onClick(self, button):
+        ai = self.node.acc.queryAction()
+        action_names = [ai.getName(i) for i in xrange(ai.nActions)]
+        ai.doAction(action_names.index('click'))
+    </code>
+   </section>
+</page>
diff --git a/help/C/index.page b/help/C/index.page
new file mode 100644
index 0000000..699e567
--- /dev/null
+++ b/help/C/index.page
@@ -0,0 +1,42 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="guide" id="index">
+  <info>
+    <title type="text">Accerciser</title>
+    <title type="link">Introduction to <app>Accerciser</app></title>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title>
+    <media type="image" mime="image/png" src="figures/accerciser-logo.png">
+      <app>Accerciser</app>'s logo
+    </media>
+    <app>Accerciser</app>
+  </title>
+  <note style="important">
+    <title>Before You Begin</title>
+    <p>
+      Read the <link href="ghelp:gnome-help#a11y">Universal Access Help</link>
+    </p>
+  </note>
+  <section id="getting_started" style="2column">
+    <title>Getting Started</title>
+  </section>
+  <section id="examining_a11y" style="2column">
+    <title>Examining the Accessibility of an Application</title>
+  </section>
+  <section id="advanced" style="2column">
+    <title>Advanced Topics</title>
+  </section>
+</page>
diff --git a/help/C/interface_viewer_plugin.page b/help/C/interface_viewer_plugin.page
new file mode 100644
index 0000000..1ce4aeb
--- /dev/null
+++ b/help/C/interface_viewer_plugin.page
@@ -0,0 +1,139 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="interface_viewer">
+  <info>
+    <link type="guide" xref="index#examining_a11y" />
+    <title type="sort">2. Interface Viewer Plugin</title>
+    <link type="next" xref="validator_plugin" />
+    <desc>
+      Examining your accessibility implementation
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title>Interface Viewer Plugin</title>
+
+  <p>
+    The Interface Viewer Plugin shows the information and controls provided by the AT-SPI interfaces
+    present in each accessible item from the <link xref="desktop_tree_view">Application Tree View</link>. After
+    selecting an item, you can use this plugin to quickly review its supported interfaces, to retrieve 
+    each interface's information, and to manipulate the item through all the interfaceâs methods.
+  </p>
+
+  <figure>
+    <title>Examining a Menu with the Interface Viewer Plugin</title>
+    <desc>
+      Given a selected item in the Application Tree View, all of its AT-SPI interfaces will be shown as sensitive
+      in the Interface Viewer Plugin. Those unsupported will appear grayed out, such as the Application
+      and Collection interfaces in the figure above.
+    </desc>
+    <media type="image" mime="image/png" width="800" height="450" src="figures/interface_viewer_plugin.png">
+      <p>Given a selected item in the Application Tree View, all of its AT-SPI interfaces will be shown as sensitive
+      in the Interface Viewer Plugin. Those unsupported will appear grayed out, such as the Application and Collection
+      interfaces in the figure above.</p>
+    </media>
+  </figure>
+
+  <section id="running_interface_viewer">
+    <title>Running the Interface Viewer Plugin</title>
+    <p>
+      The first step to run the Interface Viewer Plugin is to select an item in the <link xref="desktop_tree_view">
+      Application Tree View</link>. After that, all AT-SPI interfaces covered by the plugin will be listed in the
+      plugin's panel. The interfaces implemented by the selected item will be sensitive, so you can click each one of
+      them to either retrieve their provided information or to interact with available methods. The following interfaces 
+      can be explored in <app>Accerciser</app>, assuming the selected item implements them:
+    </p>
+    <list>
+      <item>
+        <p>
+          Accessible - This interface shows the selected item's child count (number of child widgets), description, states,
+          relations, and attributes.
+        </p>
+      </item>
+      <item>
+        <p>
+          Action - This interface shows all the actions that can be performed by the selected item. For each interface,
+          you will see its name, such as "press" or "click", followed by a description and a key binding, if there are
+          any. If you select an action, a "Perform action" button will become sensitive. Press this button to see the
+          item performing the selected action. 
+        </p>
+      </item>
+      <item>
+        <p>
+          Application - This interface can be implemented by items with role "application". It is worth to point out that
+          items with role "application" not necessarily implement this interface. If the selected item implements it, the interface
+          will show its ID and, if there are any, its toolkit and version.
+        </p>
+      </item>
+      <item>
+        <p>
+          Component - This interface shows the selected item's absolute position (with respect to the desktop coordinate system), relative           position (with respect to the window coordinate system), size, layer type, MDI-Z-order (a short integer indicating the
+          stacking order of the component in the MDI layer), and alpha (if alpha blending is used).
+        </p>
+      </item>
+      <item>
+        <p>
+          Document - This interface shows the selected item's document attributes and locale description, if there is one. 
+        </p>
+      </item>
+      <item>
+        <p>
+          Hypertext - This interface shows a list with all the selected item's hypertext hyperlinks. For each hyperlink, the interface
+          provides its name, URI, start (the index in the hypertext at which the hyperlink begins) and end (the index in the hypertext
+          at which this hyperlink ends).
+        </p>
+      </item>
+      <item>
+        <p>
+          Image - This interface shows the selected item's description (or "no description" if unspecified), size, position
+          (with respect to the desktop coordinate system), and locale, if there is one. 
+        </p>
+      </item>
+      <item>
+        <p>
+          Selection - This interface shows all selectable child items of the selected item. If the selected item is a menu bar
+          with options "File", "Edit", "View", and "Help", and all of them are selectable, then they will be listed in this
+          interface. If you click a listed option - "File", for example - and want to clear it, just press the "Clear" button
+          below the list. 
+        </p>
+      </item>
+      <item>
+        <p> 
+          Streamable Content - This interface shows the selected item's content types and their corresponding URIs.
+        </p>
+      </item>
+      <item>
+        <p>
+          Table - This interface shows the selected item's caption and summary, rows (number of rows), columns (number of columns),
+          selected rows (number of selected rows), and selected columns (number of selected columns). For a selected cell, the 
+          interface shows its row's and column's header and extents.
+        </p>
+      </item>
+      <item>
+        <p>
+          Text - This interface shows the selected item's text content, that can be editable, and its attributes. The basic 
+          attributes are offset (the number of characters the text has) and justification. To see possible CSS attributes, 
+          click the "Include defaults" check box.
+        </p>
+      </item>
+      <item>
+        <p>
+          Value - This interface shows the selected item's current value, minimum allowed value, maximum allowed value, and
+          the minimum increment by which the value may be changed (or zero if this value cannot be determined). The current
+          value can be manually changed via a spin button.
+        </p>
+      </item> 
+    </list>
+  </section>
+</page>
diff --git a/help/C/introduction.page b/help/C/introduction.page
new file mode 100644
index 0000000..16fe019
--- /dev/null
+++ b/help/C/introduction.page
@@ -0,0 +1,168 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="introduction">
+  <info>
+    <link type="guide" xref="index#getting_started" />
+    <link type="next" xref="howto_setting_up_accerciser" />
+    <title type="sort">1. What is Accerciser?</title>
+    <desc>
+      An interactive accessibility explorer
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title>What is <app>Accerciser</app>?</title>
+  <p>
+    <app>Accerciser</app> is an interactive Python accessibility explorer.
+    It uses the AT-SPI library to inspect, examine, and interact with widgets, allowing
+    you to check if an application is providing correct information to assistive
+    technologies and automated testing frameworks. <app>Accerciser</app> comes with a set
+    of plugins that you can use to create custom views of accessibility 
+    information.  
+  </p>
+
+  <p>
+    By default, <app>Accerciser</app>'s main interface is comprised of three sections:
+    a tree view of the entire desktop accessible hierarchy, namely <link xref="desktop_tree_view">
+    Application Tree View</link>, and two plugin areas. If you prefer to see all plugins in a single
+    area, dividing <app>Accerciser</app>'s interface in two sections instead of three, type <key>ctrl
+    </key>+<key>t</key>. To re-divide it in three sections, just press <key>ctrl</key>+<key>t</key> again.
+  </p>
+
+  <note style="tip">
+    <p>
+      Make sure that accessibility suport is enabled in your desktop - otherwise,
+      <app>Accerciser</app> will not work as expected.
+    </p>
+  </note>
+
+  <figure>
+    <title><app>Accerciser</app></title>
+    <desc>
+      <app>Accerciser</app>'s default interface.
+    </desc>
+    <media type="image" mime="image/png" src="figures/accerciser-view.png">
+      <p>
+        <app>Accerciser</app>'s default interface.
+      </p>
+    </media>
+  </figure>
+
+  <section id="more_about_gnome_accessibility">
+    <title><app>Accerciser</app>'s intended audience</title>
+    <p>
+      <app>Accerciser</app> fits the needs of many different audiences. User interface developers
+      use it to ensure that their applications are providing all of their features through AT-SPI. 
+      Assistive technology developers are able to see what AT-SPI is providing to their applications.
+      Automated UI test developers find <app>Accerciser</app> beneficial since it exposes different
+      events that could be expected from their target application. 
+    </p>
+  </section>
+
+  <section id="accerciser_plugin_architecture">
+    <title><app>Accerciser</app>'s plugin architecture</title>
+    <p>
+      <app>Accerciser</app> has an extensible, plugin-based architecture.
+      Its core code is fairly small and most of its features are part of 
+      default plugins: 
+    </p>
+    <list>
+      <item>
+        <p>
+          <link xref="interface_viewer">Interface Viewer</link> - A plugin that lets you explore the AT-SPI 
+          interfaces provided by each accessible widget of a target application.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link xref="validator_plugin">AT-SPI Validator</link> - A plugin that applies tests to verify the
+          accessibility of a target application.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link xref="event_monitor_plugin">Event Monitor</link> - A plugin that displays AT-SPI events emitted by a target
+          application as they occur.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link xref="quick_select_plugin">Quick Select</link> - A plugin that provides global hotkeys for quickly
+          selecting accessible widgets in <app>Accerciser</app>'s Application Tree View.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link xref="api_browser_plugin">API Browser</link> - A plugin that shows the interfaces, methods, and 
+          attributes available on each accessible widget of a target application.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link xref="ipython_plugin">IPython Console</link> - A plugin that provides a full, interactive Python
+          shell with access to selected accessible widgets of a target application.
+        </p>
+      </item>
+    </list>
+  </section>
+
+
+  <section id="more_about_gnome_accessibility">
+    <title>More about Accessibility</title>
+    <p>
+       Accessibility is a core value that should touch all aspects of a Desktop
+       Environment. To help achieve it in GNOME, some libraries were developed,
+       such as ATK and AT-SPI. Though originated in GNOME, these libraries are now
+       also used in other Desktop Environments. To learn more about Accessibility
+       Libraries for GNU/UNIX systems, you can consult:
+    </p>
+    <list>
+      <item>
+        <p>
+          <link href="http://developer.gnome.org/atk/";>ATK Accessibility Toolkit</link> - 
+          ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications.
+          Using the ATK interfaces, accessibility tools have full access to view and control running applications.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link href="http://developer.gnome.org/at-spi-cspi/stable/";>AT-SPI</link> - 
+          AT-SPI is the primary service interface by which assistive technologies query and receive 
+          notifications from running applications. Additional material is available from the 
+          <link href="http://accessibility.kde.org/developer/atk.php#coreclasses";>KDE Accessibility Development Community</link>.  
+        </p>
+      </item>
+      <item>
+        <p>
+          <link href="http://library.gnome.org/users/gnome-access-guide/stable/";>GNOME Desktop Accessibility Guide</link> -
+          A guide for anyone interested in how the GNOME Desktop supports the needs of users with disabilities.
+        </p>
+      </item>
+      <item>
+        <p>
+          <link href="http://developer.gnome.org/accessibility-devel-guide/stable/";>GNOME Accessibility Developer's Guide</link> - 
+          A guide for developers who want to ensure their applications are accessible to the widest audience of users. 
+        </p>
+      </item>
+      <item>
+        <p>
+          <link href="http://projects.gnome.org/accessibility/";>GNOME Accessibility Project</link> - 
+          The GNOME Accessibility Project includes the guides listed above along with many other useful links
+          for users, developers and system administrators.
+        </p>
+      </item>
+    </list>
+  </section>
+
+</page>
diff --git a/help/C/ipython_plugin.page b/help/C/ipython_plugin.page
new file mode 100644
index 0000000..39d000a
--- /dev/null
+++ b/help/C/ipython_plugin.page
@@ -0,0 +1,72 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="ipython_plugin">
+  <info>
+    <link type="guide" xref="index#advanced" />
+    <title type="sort">2. IPython Plugin</title>
+    <link type="next" xref="howto_write_a_plugin" />
+    <desc>
+      When all else fails
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> IPython Console Plugin</title>
+  <p>
+    The IPython Console Plugin allows real-time interaction with a selected item in the <link xref="desktop_tree_view">
+    Application Tree View</link>. Since the IPython Console Plugin is an interactive Python shell, you can import any Python
+    modules you want.
+  </p>
+
+  <note style="tip">
+    <p>
+      Make sure you have the standalone package IPython installed in your system. Otherwise, the IPython Console Plugin will
+      not work properly.
+    </p>
+  </note>
+  
+  <section id="running_ipython_plugin">
+    <title>Running the IPython Console Plugin</title>
+    <p>
+      To run the IPython Console Plugin, select one of the accessible items
+      listed in the Application Tree View - either an application or a widget. In the plugin, the
+      selected item will correspond to the variable 'acc'. 
+    </p>
+    <p>     
+      Pressing <key>Tab</key> shows completions for the current command in the console,
+      what can be useful for discovering pyatspi methods.
+    </p>  
+
+  <figure>
+    <title>Investigating selected items with the IPython Console Plugin</title>
+    <desc>
+      The IPython Console Plugin lets you investigate methods, constants, and properties
+      related to a selected item in the Application Tree View. 
+    </desc>
+    <media type="image" mime="image/png" width="800" height="500" src="figures/IPython_plugin.png">
+      <p>
+       The IPython Console Plugin lets you investigate methods, constants, and properties
+       related to a selected item in the Application Tree View. 
+      </p>
+    </media>
+  </figure>
+
+  <note style="tip">
+    <p>
+      Typing <cmd>help(acc)</cmd> in the IPython Console Plugin shows some useful documentation
+      about the corresponding selected accessible item.
+    </p>
+  </note>
+  </section>
+</page>
diff --git a/help/C/preferences.page b/help/C/preferences.page
new file mode 100644
index 0000000..2c1450b
--- /dev/null
+++ b/help/C/preferences.page
@@ -0,0 +1,118 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="preferences_setting">
+  <info>
+    <link type="guide" xref="index#advanced" />
+    <title type="sort">4. Preferences</title>
+    <!-- link type="next" xref="event_monitor_plugin" /-->
+    <desc>
+      Customizing <app>Accerciser</app>'s preferences 
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> Configuring <app>Accerciser</app></title>
+  <p>
+    To configure plugins, hotkeys, and highlighting, do either <key>ctrl</key>+<key>p</key> or <guiseq><gui>Edit</gui>
+    <gui>Preferences</gui></guiseq> to open a dialog.
+  </p>
+
+  <figure>
+    <title><app>Accerciser</app> preferences</title>
+    <desc>
+      <app>Accerciser</app> allows you to configure plugins, global hotkeys, and widget's highlighting.
+    </desc>
+    <media type="image" mime="image/png" width="900" height="500" src="figures/accerciser_preferences.png">
+      <p>
+        <app>Accerciser</app> allows you to configure plugins, global hotkeys, and widget's highlighting.
+      </p>
+    </media>
+  </figure>
+
+  <section id="plugin">
+    <title>Configuring plugins</title>
+    <p>
+      After opening the Preferences Dialog, you will find a list of all available plugins, with corresponding checkboxes,
+      under the "Plugins" tab. To enable or disable a plugin, toggle its checkbox. Only active plugins can be accessed via 
+      <app>Accerciser</app>'s interface.
+    </p>
+    <p>
+      Right-clicking on any given plugin allows you to choose its location: "Top Panel", "Bottom Panel", and "New View". Selecting "New 
+      View" creates a new window for the plugin.
+    </p>
+
+
+  <figure>
+    <title>Configuring plugins' preferences</title>
+    <desc>
+     <app>Accerciser</app> allows you to adjust your plugins' preferences.
+    </desc>
+    <media type="image" mime="image/png" src="figures/plugins.png">
+      <p> 
+       <app>Accerciser</app> allows you to adjust your plugins' preferences.
+      </p>
+    </media>
+  </figure>
+
+    <note style="tip">
+      <p>
+        You may bypass the Preferences dialog by using drag and drop to move a plugin from a location to another.
+      </p>
+    </note>
+  </section>
+
+  <section id="global_hotkey">
+    <title>Configuring global hotkeys</title>
+    <p>
+      Some elements in <app>Accerciser</app> may enable certain functionalities via hotkeys. An example is the 
+      <link xref="quick_select_plugin">Quick Select Plugin</link>. The hotkey combination for each functionality
+      can be changed via the Preferences dialog, under the "Global Hotkeys" tab. Under this tab,  you will find a
+      list of all features for which hotkeys can be configured. Use the <cmd>ctrl</cmd>, <cmd>alt</cmd>, and 
+      <cmd>shift</cmd> checkboxes to enable or disable these modifiers.
+    </p>
+
+    <figure>
+    <title>Configuring global hotkeys' preferences</title>
+    <desc>
+     <app>Accerciser</app> allows you to adjust your hotkeys' preferences.
+    </desc>
+    <media type="image" mime="image/png" src="figures/global-hotkeys.png">
+      <p> 
+       <app>Accerciser</app> allows you to adjust your plugin's preferences.
+      </p>
+    </media>
+  </figure> 
+
+   </section>
+   <section id="highlighting">
+     <title>Configuring widget's highlighting</title>
+     <p>
+       Some of <app>Accerciser</app>'s elements, such as the global hotkey <key>ctrl</key>+<key>alt</key>+<key>/</key>,
+       highlight a specific widget in a target application. The highlighting duration, border color, and fill color can
+       be customized via the Preferences dialog, under the "Highlighting" tab.
+     </p>
+
+    <figure>
+    <title>Configuring highlighting preferences</title>
+    <desc>
+     <app>Accerciser</app> allows you to adjust your highlighting preferences.
+    </desc>
+    <media type="image" mime="image/png" src="figures/highlighting.png">
+      <p> 
+       <app>Accerciser</app> allows you to adjust your highlighting preferences.
+      </p>
+    </media>
+  </figure>
+   </section>
+</page>
diff --git a/help/C/quick_select_plugin.page b/help/C/quick_select_plugin.page
new file mode 100644
index 0000000..5c491b5
--- /dev/null
+++ b/help/C/quick_select_plugin.page
@@ -0,0 +1,37 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="quick_select_plugin">
+  <info>
+    <link type="guide" xref="index#examining_a11y" />
+    <title type="sort">5. Quick Select Plugin</title>
+    <link type="next" xref="api_browser_plugin" />
+    <desc>
+      Locating the object you need
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> Quick Select Plugin</title>
+  <p>
+    The Quick Select Plugin does not provide a visible interface like the other default <app>Accerciser</app> plugins - 
+    instead, it adds facilities for quickly selecting items in the <link xref="desktop_tree_view">Application Tree View</link> via
+    global hotkeys. Originally, these hotkeys were part of <app>Accerciser</app>'s core code, turning into the Quick
+    Select Plugin later.
+  </p>
+  <p>
+    The Quick Select Plugin provides two global hotkeys. Pressing <key>ctrl</key>+<key>alt</key>+<key>a</key>
+    selects the last focused accessible widget in the Application Tree View. Pressing <key>ctrl</key>+<key>alt</key>+<key>/</key>
+    selects the accessible widget under the pointer in the Application Tree View and highlights it in the target application.
+  </p> 
+</page>
diff --git a/help/C/validator_plugin.page b/help/C/validator_plugin.page
new file mode 100644
index 0000000..8d43a51
--- /dev/null
+++ b/help/C/validator_plugin.page
@@ -0,0 +1,73 @@
+<page xmlns="http://projectmallard.org/1.0/"; type="topic" id="validator_plugin">
+  <info>
+    <link type="guide" xref="index#examining_a11y" />
+    <title type="sort">3. Validator Default Plugin</title>
+    <link type="next" xref="event_monitor_plugin" />
+    <desc>
+      Testing an application for accessibility
+    </desc>
+    <credit type="author">
+      <name>Eitan Isaacson</name>
+      <email>eitan ascender com</email>
+    </credit>
+    <credit type="author">
+      <name>Peter Parente</name>
+      <email>pparent us ibm com</email>
+    </credit>
+    <credit type="author">
+      <name>Aline Bessa</name>
+      <email>alibezz gmail com</email>
+    </credit>
+    <license>
+      <p>Creative Commons Share Alike 3.0</p>
+    </license>
+  </info>
+  <title> AT-SPI Validator Plugin</title>
+  <p>
+    The AT-SPI Validator Plugin generates a report with accessibility
+    issues related to a target application. For each error, the report
+    includes the severity level and a brief description.
+  </p>
+   <figure>
+    <title>AT-SPI Validator Plugin</title>
+    <desc>
+      The AT-SPI Validator Plugin generates useful reports for verifying the accessibility of
+      a target application.
+    </desc>
+    <media type="image" mime="image/png" width="800" height="500" src="figures/validator_report.png">
+      <p>
+        The AT-SPI Validator Plugin generates useful reports for verifying the accessibility of
+        a target application.
+      </p>
+    </media>
+  </figure>
+
+  <section id="running_at_spi_validator">
+      <title>Running the AT-SPI Validator Plugin</title>
+      <p>
+        To run the AT-SPI Validator Plugin, select an item in the Application Tree View.
+        The validator will generate the report with respect to the selected
+        item and all of its descendant widgets in the tree hierarchy.
+      </p>
+
+      <p>
+        After selecting an item, choose a validation schema in the combobox and press the <cmd>Validate</cmd>
+        button to start generating the report. If you want to cancel the execution, just press the <cmd>Validate</cmd>
+        button again.
+      </p>
+
+      <p>
+        The generated report is interactive. Therefore, you can double-click any error found to check which of the target
+        application widgets is causing it. The corresponding widget will then appear selected in the <link xref="desktop_tree_view">
+        Application Tree View</link> and highlighted in the target application.  
+      </p>  
+      <p>
+        If you want to save the generated report in your system, just click the <cmd>Save</cmd> button.
+        To clear the validation screen, press the <cmd>Clear</cmd> button.
+      </p>
+      <p>
+        To get more information about an error in the generated report, make sure the corresponding item is
+        selected and press the <cmd>Help</cmd> button. It will open a Help Page in your default browser.
+      </p>        
+  </section>
+</page>
diff --git a/help/Makefile.am b/help/Makefile.am
index 5598756..62b31d7 100644
--- a/help/Makefile.am
+++ b/help/Makefile.am
@@ -1,14 +1,37 @@
 include $(top_srcdir)/gnome-doc-utils.make
-dist-hook: doc-dist-hook
 
-DOC_MODULE = accerciser
-DOC_ENTITIES = legal.xml 
-DOC_INCLUDES =
+DOC_ID = accerciser
 DOC_FIGURES = \
-	figures/accerciser.png \
+	figures/accerciser-logo.png \
+	figures/highlighting.png \
+	figures/accerciser_preferences.png \
+	figures/interface_viewer_plugin.png \
+	figures/accerciser-view.png \
+	figures/IPython_plugin.png \
+	figures/accessible_tree.png \
+	figures/plugins.png \
 	figures/api_browser.png \
+	figures/tree_view_accerciser.png \
+	figures/event_monitor_plugin.png \
+	figures/validator_app_tree.png \
 	figures/event_monitor.png \
-	figures/interface_viewer.png \
-	figures/script_recorder.png
+	figures/validator_report.png \
+	figures/global-hotkeys.png 
+
+DOC_PAGES = \
+	api_browser_plugin.page \
+	desktop_tree_view.page \
+	event_monitor_plugin.page \
+	howto_setting_up_accerciser.page \
+	howto_write_a_plugin.page \
+	index.page \
+	interface_viewer_plugin.page \
+	introduction.page \
+	ipython_plugin.page \
+	preferences.page \
+	quick_select_plugin.page \
+	validator_plugin.page
+
 DISTCLEANFILES = accerciser-C.omf
 DOC_LINGUAS = ca cs de el en_GB es fr gl it ja oc pt_BR sl sv uk zh_CN
+dist-hook: doc-dist-hook



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]