# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: mhameed@src.gnome.org-20100104112839-xv7kapec589qgbqk
# target_branch: http://bzr.nvaccess.org/nvda/main/
# testament_sha1: bcb171f823d6ead0ea2cfea41682eb847e95b8f2
# timestamp: 2010-01-04 12:00:27 +0000
# base_revision_id: mick@kulgan.net-20100104044910-whkeupxu2j1us5fn
# 
# Begin patch
=== added file 'user_docs/en/user guide-fromWiki.html'
--- user_docs/en/user guide-fromWiki.html	1970-01-01 00:00:00 +0000
+++ user_docs/en/user guide-fromWiki.html	2010-01-04 11:28:39 +0000
@@ -0,0 +1,693 @@
+<html>
+<head>
+<META http-equiv=Content-Type content="text/html; charset=utf-8">
+<title>NVDA 2009.1 User Guide</title>
+</head>
+<body lang="en">
+<h1>NVDA 2009.1 User Guide</h1>
+<p>
+Last updated September 13, 2009
+</p>
+<h2>Table of Contents</h2>
+<ul>
+<li><a href="#1">1. Introduction</a></li>
+<ul>
+<li><a href="#1.1">1.1. General features</a></li>
+<li><a href="#1.2">1.2. Internationalization</a></li>
+<li><a href="#1.3">1.3. Speech synthesizer support</a></li>
+<li><a href="#1.4">1.4. Braille support</a></li>
+<li><a href="#1.5">1.5. License and copyright</a></li>
+</ul>
+<li><a href="#2">2. System Requirements</a></li>
+<li><a href="#3">3. Getting NVDA</a></li>
+<li><a href="#4">4. Installing NVDA</a></li>
+<ul>
+<li><a href="#4.1">4.1. The NVDA Installer</a></li>
+<li><a href="#4.2">4.2. NVDA Portable</a></li>
+</ul>
+<li><a href="#5">5. Getting started with NVDA</a></li>
+<ul>
+<li><a href="#5.1">5.1. Launching NVDA</a></li>
+<li><a href="#5.2">5.2. About NVDA keyboard commands</a></li>
+</ul>
+<li><a href="#6">6. The NVDA menu</a></li>
+<ul>
+<li><a href="#6.1">6.1. Accessing the NVDA menu</a></li>
+<li><a href="#6.2">6.2. Configuring NVDA</a></li>
+<ul>
+<li><a href="#6.2.1">6.2.1 The Preferences Menu</a></li>
+<ul>
+<li><a href="#6.2.1.1">6.2.1.1. General Settings</a></li>
+<li><a href="#6.2.1.2">6.2.1.2. Synthesizer Selection</a></li>
+<li><a href="#6.2.1.3">6.2.1.3. Voice Settings</a></li>
+<li><a href="#6.2.1.4">6.2.1.4. Braille Settings</a></li>
+<li><a href="#6.2.1.5">6.2.1.5. Keyboard Settings</a></li>
+<li><a href="#6.2.1.6">6.2.1.6. Mouse Settings</a></li>
+<li><a href="#6.2.1.7">6.2.1.7. Object Presentation Settings</a></li>
+<li><a href="#6.2.1.8">6.2.1.8. Virtual Buffer Settings</a></li>
+<li><a href="#6.2.1.9">6.2.1.9. Document Formatting Settings</a></li>
+<li><a href="#6.2.1.10">6.2.1.10. Speech dictionaries</a></li>
+</ul>
+<li><a href="#6.2.2">6.2.2: Saving and Reverting Configuration</a></li>
+</ul>
+</ul>
+<li><a href="#7">7. Navigating with NVDA</a></li>
+<ul>
+<li><a href="#7.1">7.1. Navigating by Focus</a></li>
+<li><a href="#7.2">7.2. Navigating with the System Caret</a></li>
+<li><a href="#7.3">7.3. Object Navigation</a></li>
+<li><a href="#7.4">7.4. Reviewing Text in the Current Object</a></li>
+<li><a href="#7.5">7.5. Navigating with the Mouse</a></li>
+</ul>
+<li><a href="#8">8. Virtual Buffers</a></li>
+<ul>
+<li><a href="#8.1">8.1. Single Letter Navigation</a></li>
+<li><a href="#8.2">8.2. Forms and Focus Mode</a></li>
+<li><a href="#8.3">8.3. The Elements list</a></li>
+<li><a href="#8.4">8.4. Embedded Objects</a></li>
+</ul>
+<li><a href="#9">9. Troubleshooting NVDA</a></li>
+</ul>
+<h2 id="1">1. Introduction</h2>
+<h3 id="1.1">1.1. General Features</h3>
+<p>
+Providing feedback by synthetic speech, Nonvisual Desktop Access allows blind and vision impaired people to access and interact with the Windows operating system and many third party applications.
+</p>
+<p>
+Major highlights include:
+</p>
+<ul>
+<li>Ability to run entirely from a USB stick or other portable media without the need for installation</li>
+<li>Easy to use talking installer </li>
+<li>Browsing the web with <a href="http://www.getfirefox.com/">Mozilla Firefox 3</a></li>
+<li>Working with email using <a href="http://www.mozillamessaging.com/en-US/thunderbird/early_releases/">Mozilla Thunderbird 3</a></li>
+<li>Support for Microsoft Internet Explorer</li>
+<li>Basic support for Microsoft Outlook Express / Windows Mail</li>
+<li>support for Microsoft Word and Excel</li>
+<li>Support for accessible Java applications</li>
+<li>Support for Adobe Reader</li>
+<li>Early support for IBM Lotus Symphony</li>
+<li>support for Windows Command Prompt and console applications</li>
+<li>Automatic announcement of text under the mouse and optional audible indication of the mouse position</li>
+<li>Support for many refreshable Braille displays</li>
+</ul>
+<h3 id="1.2">1.2. Internationalization</h3>
+<p>
+It is important that people anywhere in the world, no matter what language they speak, get equal access to technology. NVDA currently has been translated into over 20 languages besides the English language including: Arabic, Brazilian Portuguese, Croatian, Czech, Finnish, French, Galician, German, Hungarian, Italian, Japanese, Portuguese, Russian, Slovak, Spanish, Thai, Traditional Chinese, Ukrainian, Afrikaans, Polish and Vietnamese.
+</p>
+<h3 id="1.3">1.3. Speech Synthesizer Support</h3>
+<p>
+Apart from providing its messages and interface in several languages, NVDA can also enable the user to read content in any language, as long as they have a speech synthesizer that can speak that particular language.
+</p>
+<p>
+NVDA is bundled with <a href="http://espeak.sourceforge.net/">eSpeak</a>, a free, open-source, multi-lingual speech synthesizer. Additionally, NVDA can use both SAPI4 and SAPI5 speech engines to provide speech output, as well as the Audiologic and NewFon speech synthesizers.
+</p>
+<h3 id="1.4">1.4. Braille support</h3>
+<p>
+For users that own a refreshable braille display, NVDA can output its information in braille. NVDA supports Freedom Scientific Pacmate and Focus displays, Handy Tech displays, ALVA BC640/680 displays, plus many others supported by the BRLTTY package if it is available.
+</p>
+<p>
+NVDA supports many braille codes covering a large set of languages. In many cases grade 1 and 2 versions of the codes are available. For English readers both U.S. English braille and Unified English braille (UEB) codes are included.
+</p>
+<h3 id="1.5">1.5. Licence and Copyright</h3>
+<p>
+NVDA is copyright 2006-2009 NVDA contributors.
+</p>
+<p>
+NVDA is covered by the GNU General Public License (Version 2). You are free to share or change this software in any way you like as long as you distribute the licence along with the software, and make all source code available to anyone who wants it. This applies to both original and modified copies of the software, plus any software that uses code taken from this software. For further details, you can <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">view the full licence.</a>
+</p>
+<h2 id="2">2. System Requirements</h2>
+<ul>
+<li>Operating Systems: all 32-bit and 64-bit versions of Windows XP, Windows Vista and Windows 7 (including Server operating Systems), may partially work on Windows 2000.</li>
+<li>Memory: 256 mb or more of RAM</li>
+<li>Processor speed: 1.0 ghz or above</li>
+<li>About 50 MB of storage space.</li>
+</ul>
+<h2 id="3">3. Getting NVDA</h2>
+<p>
+If you have not yet got a copy of NVDA, you can download it <a href="http://www.nvda-project.org/">here</a>.
+</p>
+<p>
+Go to the download section and you will find a link to download the latest version of NVDA.
+</p>
+<p>
+There are currently two ways NVDA is packaged. One is an Installer which will talk you through installing NVDA so that you can then run it at any time from the Start Menu. The other is a self-extracting archive file that contains a fully portable version of NVDA, which you can run from anywhere, including a USB thumb drive or CD.
+</p>
+<h2 id="4">4. Installing NVDA</h2>
+<h3 id="4.1">4.1. The NVDA Installer</h3>
+<p>
+If you already have the NVDA installer, simply press enter or double click on the file and the installer will start.
+</p>
+<p>
+As the installer loads, you will hear the NVDA installation music. Once loaded, a temporary copy of NVDA will allow you to follow the prompts of the installer and install NVDA. Note that if you were running another copy of NVDA at the time you started the installer, a message will appear telling you that your previous copy of NVDA will be closed. When you press enter on this message, the installer will close your previous copy and start its own one. This is necessary so that the installer can properly update any changed files. At this point, if you have another copy of NVDA already installed, the NVDA installer will uninstall it for you, and then it will commence to install NVDA.
+</p>
+<p>
+Once you have successfully completed the installation, the installer will alert you that the install of NVDA has finished. If reinstalling NVDA, It may ask you to reboot the system at this point. It is very important that you reboot the system as failing to do so will have undesirable consequences. If it did not ask you to reboot, pressing Finnish will close the installer and start the newly installed version of NVDA.
+</p>
+<h3 id="4.2">4.2. NVDA portable</h3>
+<p>
+If you have the portable version of NVDA, then all you have to do is to press enter or double click on the file, and follow the prompts. It will ask you where on your system you wish to place the files.
+</p>
+<h2 id="5">5. Getting started with NVDA</h2>
+<h3 id="5.1">5.1. Launching NVDA</h3>
+<p>
+If you have installed NVDA with the installer, then starting NVDA is as simple as either pressing control+alt+n, or choosing NVDA from the NVDA menu under Programs on the Start Menu. Additionally you can type NVDA into the Run dialog and press Enter.
+</p>
+<p>
+To start the portable version, go to the directory you unpacked NVDA to, and press enter or double click on nvda.exe.
+</p>
+<p>
+As NVDA starts, you will first hear an ascending set of tones (telling you that NVDA is loading). Depending on how fast your computer is, or if you are running NVDA off a USB key or other slower medium, it may take a little while to start. If it is taking an extra long time, NVDA should say &quot;Loading subsystems. Please wait...&quot;
+</p>
+<p>
+If you don't hear any of this, or you hear the Windows error sound, or a descending set of tones, then this means that NVDA has an error, and you will need to possibly report a bug to the developers. Please check out the NVDA website for how to do this.
+</p>
+<p>
+When NVDA starts for the first time, you will be greeted by a dialog box which provides you with some basic information about the NVDA modifier key and the NVDA menu. (Please see further sections about these topics). The dialog box also contains two checkboxes. The first lets you control if NVDA should use the capslock as an NVDA modifier key, and the second lets you control if this Welcome dialog should appear each time NVDA starts.
+</p>
+<h3 id="5.2">5.2. About NVDA keyboard commands</h3>
+<p>
+Most NVDA-specific keyboard commands usually consist of pressing the NVDA modifier key, in conjunction with one or more other keys. An exception to this are the text review commands which just use the numpad keys by themselves.
+</p>
+<p>
+By default both numpad insert and extended insert can be used as the NVDA modifier key. However, you can also configure NVDA so that the capslock key also becomes an NVDA modifier key. When configured this way, pressing or holding down capslock acts as an NVDA modifier key, but pressing it twice in quick succession causes it to act as the normal capslock key.
+</p>
+<p>
+Many key commands are mentioned through out the rest of this user guide, but an easy way to explore all the different key commands is to turn on keyboard help.
+</p>
+<p>
+To turn on keyboard help, press NVDA+1. To turn it off again, press NVDA+1 again. While in keyboard help, pressing any key will announce what it does (if in deed it does do something). The keys will not actually perform their function while in keyboard help mode, so you can press what ever keys you like.
+</p>
+<h2 id="6">6. The NVDA menu</h2>
+<p>
+The NVDA menu allows you to control NVDA's settings, access help, save/revert your configuration, Modify speech dictionaries, read the log file, and exit NVDA.
+</p>
+<h3 id="6.1">6.1. Accessing the NVDA menu</h3>
+<p>
+To get to the NVDA menu from anywhere in Windows while NVDA is running, press NVDA+n. You can also get to the NVDA menu via the windows system tray. Either right-click on the nvda icon located in the system tray, or access the system tray by pressing the windows logo key+B, DownArrow to the NVDA icon and press the applications key located next to the right control key on most keyboards. When the menu comes up, You can use the arrow keys to navigate the menu, and the enter key to activate an item. The Preferences menu allows you to configure NVDA how you like, the tools menu contains useful tools such as the NVDA log viewer and the NVDA Python console for developers, the help menu allows you to access the user guide, a quick key reference, and much more. The NVDA menu also contains items that allow you to save or revert your current configuration. There is also an option that allows you to exit NVDA, although this can be accomplished more efficiently by pressing NVDA+Q.
+</p>
+<p>
+The options under the preferences menu can also be accessed via keyboard shortcut commands, as well as the NVDA Python Console, save and revert configuration options discussed in this section. For more information about this, please visit the quick reference guide for a list of shortcut commands. 
+</p>
+<h3 id="6.2">6.2. Configuring NVDA</h3>
+<h4 id="6.2.1">6.2.1 Preferences</h4>
+<h5 id="6.2.1.1">6.2.1.1. General Settings</h5>
+<p>
+The General settings dialog box is found in the Preferences menu. It is also accessed by pressing NVDA+Control+G. To save the options after modifying settings, press the OK button. To cancel, press the cancel button or the escape key. It contains the following options:
+</p>
+<h6>Language</h6>
+<p>
+A combo box which allows you to select the language that NVDA's user interface and messages should be shown in. There are many languages, however the default option is &quot;User Default, Windows&quot;. This option tells NVDA to use the language that Windows is currently set to. Please note that NVDA must be restarted when changing the language. NVDA will ask you if you wish to restart if you do change the selection. Press OK, and NVDA will restart.
+</p>
+<h6>Save Configuration on Exit</h6>
+<p>
+This option is a checkbox that, when checked, tells NVDA to automatically save the current configuration when you exit NVDA.
+</p>
+<h6>Warn before exiting NVDA</h6>
+<p>
+This option is a checkbox that allows you to choose whether or not a dialog appears when you exit NVDA that asks whether or not you would like to exit. When checked, a dialog will appear when you attempt to exit NVDA asking whether or not you want to exit.
+</p>
+<h6>Logging level</h6>
+<p>
+This is a combo box that permits you to choose how much NVDA wil log as it's running. Generally users should not need to touch this as not too much is logged. However if you are wanting to provide information in a bug report, then it may be a useful option.
+</p>
+<h6>Automatically start nvda after I log on to windows</h6>
+<p>
+If this option is enabled, NVDA will start automatically as soon as you log on to Windows.
+</p>
+<h6>Use nvda on the windows log on screen (requires administrative privileges)</h6>
+<p>
+If you log on to Windows by providing a user name and password, then enabling this option will make NVDA start automatically at the logon screen when Windows starts.
+</p>
+<h5 id="6.2.1.2">6.2.1.2. Synthesizer Selection</h5>
+<p>
+The Synthesizer dialog, which is found under &quot;Synthesizer...&quot; in the Preferences menu or by pressing NVDA+Control+S, allows you to select which Synthesizer NVDA should use to speak with.
+</p>
+<p>
+The dialog contains a simple combo box, which lists all the available synthesizers. Choose the synthesizer you want using the arrow keys, and then press ok. If there is an error loading the synthesizer, a message box will alert you, and NVDA will keep the old synthesizer loaded.
+</p>
+<p>
+The current list of synthesizers NVDA supports is: eSpeak, SAPI4, SAPI5, Audiologic, Display, and Silence.
+</p>
+<p>
+The eSpeak synthesizer is built directly in to NVDA, and does not depend on any other special drivers or SAPI runtime to be installed. NVDA starts using eSpeak by default. This synthesizer should work on any system that NVDA works on, so it will definitely work when running NVDA off a USB thumb drive or CD, on anyone else's system.
+</p>
+<p>
+The Sapi4 option allows you to use the Sapi synthesizer. Voices that are included under Ssapi4 include eloquence voices, as well as other Ssapi4 voices that you may have installed on your system.
+</p>
+<p>
+The Sapi5 synthesizer allows you to use the microsoft voices that are iincluded on your machine. In XP, the default Ssapi5 voice is Microsoft Sam. In Vista, the default voice is Microsoft Anna. Depending on what voices you have installed, others may show up under Ssapi5.
+</p>
+<p>
+The Display synthesizer is useful for sighted developers who wish to read what NVDA is speaking, as they test NVDA with their applications.
+</p>
+<p>
+The Silence synthesizer driver is not that useful, unless you want to not have any speech at all while running NVDA.
+</p>
+<p>
+Please note that no matter how many different SAPI4 or SAPI5 voices (or engines) you have installed on your system, only the actual SAPI4 and SAPI5 synthesizers will show up in the Synthesizers dialog. To actually select one of the engines (voices), select either SAPI4 or SAPI5, and then in the Voice settings dialog, you can choose the voice you want.
+</p>
+<h5 id="6.2.1.3">6.2.1.3. Voice Settings</h5>
+<p>
+The Voice Settings dialog, found in the Preferences menu or accessed by pressing NVDA+Control+V, contains options that let you change the sound of the speech. You can also configure many of the options from anywhere by pressing NVDA+Control along with one of the arrow keys. The left and right arrow keys move through the various settings, the up and down arrows increase or decrease that setting respectively.
+</p>
+<p>
+The Voice Settings dialog box contains the following options:
+</p>
+<h6>Voice</h6>
+<p>
+The first option that you land on in this dialog is a combo box listing all the voices of the current synthesizer that you have installed. You can use the arrow keys to listen to all the various choices. Left and Up arrow take you up in the list, while right and down arrow moves you down in the list.
+</p>
+<h6>Variant</h6>
+<p>
+If you are using the Espeak synthesizer that is packaged with NVDA, this is a combo box that lets you select the Variant the synthesizer should speak with. ESpeak's Variants are rather like voices, as they provide slightly different attributes to the eSpeak voice. Some variants will sound like a male, some like a female, and some even like a frog.
+</p>
+<h6>Rate</h6>
+<p>
+This option allows you to change the rate of your voice. This is a slider that goes from 0 to 100, (0 being the slowest, 100 being the fastest).
+</p>
+<h6>Pitch</h6>
+<p>
+This option allows you to change the pitch of the current voice. It is a slider which goes from 0 to 100, (0 being the lowest pitch and 100 being the highest).
+</p>
+<h6>Volume</h6>
+<p>
+This option is a slider which goes from 0 to 100, (0 being the lowest volume and 100 being the highest).
+</p>
+<h6>Inflection</h6>
+<p>
+This option is a slider that lets you choose how much inflection (rise and fall in pitch) the synthesizer should use to speak with. (The only synthesizer that provides this option at the present time is eSpeak).
+</p>
+<h6>Speak All Punctuation</h6>
+<p>
+This setting is a checkbox, that when checked, tells NVDA to speak all punctuation symbols as words (very useful for proof reading). When unchecked, NVDA leaves the punctuation unchanged, so the synthesizer will still read sentences with the right inflection, however the symbols won't be spoken aloud.
+</p>
+<h6>Raise pitch for capitals</h6>
+<p>
+This setting, if checked, will raise the pitch for capitals.
+</p>
+<h6>Say &quot;CAP&quot; before capitals</h6>
+<p>
+This setting is a checkbox, that when checked, tells NVDA to say the word &quot;cap;&quot; before any capital letter, when arrowing over it or speaking it when its being typed. Usually, NVDA raises the pitch slightly for any capital letter, but some synthesizers may not support this well, so perhaps this option may be of use.
+</p>
+<h6>Beep for capitals</h6>
+<p>
+If this checkbox is checked, NVDA will make a small beep each time it encounters a capitalized character by itself. Like the 'say cap for capitals' checkbox, this is useful for Synthesizers that can't change their pitch for capital letters.
+</p>
+<h5 id="6.2.1.4">6.2.1.4. Braille Settings</h5>
+<p>
+The braille settings dialog box can be invoked by going to the preferences menu and then to the braille settings option.
+</p>
+<h6>Braille Display</h6>
+<p>
+The first option you will come upon in the braille settings dialog is a combo box that says &quot;braille display&quot;. You will be presented with three options. Move between these options with the arrow keys.
+</p>
+<p>
+No braille means that you are not using braille.
+</p>
+<p>
+Freedom Scientific is for Freedom Scientific Focus/Pacmate displays. Note that this option only appears if you have the braille driver from Freedom Scientific installed, see <a href="http://www.freedomscientific.com/PACMATE-HQ/FS_Braille_Display_Driver.asp">Official Freedom Scientific braille drivers page</a> for more info on how to obtain and install the drivers.
+</p>
+<p>
+Handy Tech is for the Handy Tech displays. Note that this option will only exist if you have installed the <a href="ftp://ftp.handytech.de/public/Software/BrailleDriver/bsd1111a.exe">Handy Tech Universal Driver</a>
+</p>
+<p>
+BRLTTY allows you to use a wide list of braille displays. Please install the <a href="http://brl.thefreecat.org/brltty/">BRLTTY Windows installer</a> in order to get support for these displays.
+</p>
+<h6>Translation Table</h6>
+<p>
+The next option you will come to in this dialog is the braille table combo box. In this combo box, you will find braille tables for different languages. You can move from braille table to braille table in the list by using the arrow keys.
+</p>
+<h6>Expand to computer braille for the word at the cursor</h6>
+<p>
+This option allows the word that is under the cursor to be displayed in non-contracted computer braille.
+</p>
+<h6>Cursor Blink Rate</h6>
+<p>
+This option is a numerical field that allows you to change the blink rate of the cursor in milliseconds.
+</p>
+<h6>Message Timeout (sec)</h6>
+<p>
+This option is a numerical field that controls how long system messages are displayed on the braille display.
+</p>
+<h6>Miscellaneous</h6>
+<p>
+When pressing NVDA+Control+T, you can control what is being displayed on the braille display. The two options are focus and review. Focus displays what is being accessed via the arrow keys, the tab key, in short, focus navigation. Review allows you to review what is on the screen, I.E object navigation. You can cycle between these options by pressing control+NVDA+T.
+</p>
+<h5 id="6.2.1.5">6.2.1.5. Keyboard settings</h5>
+<p>
+This dialog box is found in the Preferences menu, under &quot;Keyboard settings...&quot;. Alternatively, it can be accessed by pressing NVDA+Control+K. It contains the following options:
+</p>
+<h6>Keyboard layout</h6>
+<p>
+This combo box lets you choose what type of keyboard layout NVDA should use. Currently the two that come with NVDA are Desktop and Laptop.
+</p>
+<h6>Use capslock as an NVDA modifier key</h6>
+<p>
+If this checkbox is checked, capslock can be used as an NVDA modifier key.
+</p>
+<h6>Use extended insert as an NVDA modifier key</h6>
+<p>
+If this checkbox is checked, the extended insert key (usually found above the arrow keys, near home and end) can be used as an NVDA modifier key.
+</p>
+<h6>Use numpad insert as an NVDA modifier key</h6>
+<p>
+If this checkbox is checked, the insert key on the number pad can be used as an NVDA modifier key.
+</p>
+<h6>Speak Typed Characters</h6>
+<p>
+A checkbox that when checked means that NVDA will announce all characters you type on the keyboard. You can also configure this option from anywhere by pressing NVDA+2.
+</p>
+<h6>Speak Typed Words</h6>
+<p>
+A checkbox that when checked means that NVDA will announce all words you type on the keyboard. You can also configure this option from anywhere by pressing NVDA+3.
+</p>
+<h6>Speak Command Keys</h6>
+<p>
+A checkbox that when checked means that NVDA will announce all non-character keys you type on the keyboard. This includes key combinations such as control plus another letter. You can also configure this option from anywhere by pressing NVDA+4.
+</p>
+<h5 id="6.2.1.6">6.2.1.6. Mouse Settings</h5>
+<p>
+The Mouse Settings dialog is found in the Preferences Menu, under &quot;Mouse settings...&quot;. Alternatively, it can be accessed by pressing NVDA+Control+M. It contains the following options:
+</p>
+<h6>Report Mouse Shape Changes</h6>
+<p>
+A checkbox, that when checked means that NVDA will announce the shape of the mouse pointer each time it changes. The mouse pointer in Windows changes shape to convey certain information such as when something is editable, or when something is loading etc.
+</p>
+<h6>Report text Under Mouse</h6>
+<p>
+A checkbox that when checked means that NVDA will announce the text currently under the mouse pointer, as you move it around the screen. This allows you to find things on the screen, by physically moving the mouse, rather than trying to find them through object navigation.
+</p>
+<h6>Text unit resolution</h6>
+<p>
+If NVDA is set to announce the text under the mouse as you move it, this option allows you to choose exactly how much text will be spoken. The options are character, word, line and paragraph.
+</p>
+<h6>Report role when mouse enters object</h6>
+<p>
+If this checkbox is checked, NVDA will announce the role (type) of object as the mouse moves in side it.
+</p>
+<h6>Play audio coordinates when mouse moves</h6>
+<p>
+Checking this checkbox makes NVDA play beeps as the mouse moves, so that the user can work out where the mouse is in regards to the dimentions of the screen.
+</p>
+<h6>Brightness controls audio coordinates volume</h6>
+<p>
+If the 'play audio coordinates when mouse moves' checkbox is checked, then checking this checkbox means that the volume of the audio coordinates beeps is controled by how bright the screen is under the mouse. This may cause some performence issues on Windows Vista, so it is unchecked by default.
+</p>
+<h5 id="6.2.1.7">6.2.1.7. Object Presentation Settings</h5>
+<p>
+Found in the Preferences menu under &quot;Object Presentation...&quot; or by pressing NVDA+Control+O. This dialog box contains the following options:
+</p>
+<h6>Report Tool Tips</h6>
+<p>
+A checkbox that when checked tells NVDA to announce tool tips as they appear. Many Windows and controls show a small message (or tool tip) when you move the mouse pointer over them, or sometimes when you move the focus to them.
+</p>
+<h6>Report Help Balloons</h6>
+<p>
+This checkbox when checked tells NVDA to announce help balloons as they appear. Help Balloons are like tool tips, but are usually larger in size, and are associated with system events such as a network cable being unplugged, or perhaps to alert you about Windows security issues.
+</p>
+<h6>Report Object Shortcut Keys</h6>
+<p>
+When this checkbox is checked, NVDA will include the shortcut key that is associated with a certain object or control when it is announced. For example the File menu on a menu bar may have a shortcut key of alt+f.
+</p>
+<h6>Report object position information</h6>
+<p>
+This option lets you choose whether you wish to have an object's position (e.g. 1 of 4) reported when moving to the object with the focus or object navigation.
+</p>
+<h6>Report Object descriptions</h6>
+<p>
+Uncheck this checkbox if you feel you don't need to hear the description announced along with objects.
+</p>
+<h6>Progress bar output</h6>
+<p>
+A progress bar is a control which looks a bit like a ruler. As a task is slowly being completed, more of the bar gets highlighted. It also shows a percentage value, to numerically tell you how far along it is. Progress bars are shown for things like loading a web page, checking your email, or processing a sound file etc.
+</p>
+<p>
+This option presents you with a combo box which controls how nvda reports progress bar updates to you. It has the following options:
+</p>
+<ul>
+<li>Off: Progress bars will not be reported as they change.</li>
+<li>Speak: This option tells nvda to speak the progress bar in percentages. Each time the progress bar changes, nvda will speak the new value.</li>
+<li>Beep: This tells nvda to beep each time the progress bar changes. The higher the beep, the closer the progress bar is to completion.</li>
+<li>Beep and speak: This option tells nvda to both beep and speak when a progress bar updates.</li>
+</ul>
+<h6>Report background progress bars</h6>
+<p>
+This is an option that, when checked, tells nvda to keep reporting a progress bar, even if it is not physically in the foreground. If you minimize or switch away from a window that contains a progress bar, nvda will keep track of it, allowing you to do other things while nvda tracks the progress bar.
+</p>
+<h5 id="6.2.1.8">6.2.1.8. Virtual Buffer Settings</h5>
+<p>
+The Virtual Buffer settings dialog can be found in the Preferences menu, under &quot;Virtual Buffers...&quot;. Alternatively, it can be accessed by pressing NVDA+Control+B.
+</p>
+<p>
+The dialog contains the following options:
+</p>
+<h6>Maximum Number of Characters on One Line</h6>
+<p>
+This field sets the maximum length of a line of a virtual buffer (in characters).
+</p>
+<h6>Maximum Lines Per Page</h6>
+<p>
+Although virtual buffers don't really have pages, this field sets the amount of lines you will move by when pressing page up or page down while in a virtual buffer.
+</p>
+<h6>Use screen layout</h6>
+<p>
+This option allows you to specify whether content in the virtual Buffer should place content such as links and other fields on their own line, or if it should keep them in the flow of text as it is visually shown. If the option is enabled then things will stay as they are visually shown, but if it is disabled then fields will be placed on their own line.
+</p>
+<h6>Report layout tables</h6>
+<p>
+When disabled this option makes NVDA only report tables that contain tabular data (where it makes sense to know that this is a table). But if enabled, NVDA will also report tables used purely for visual presentation.
+</p>
+<h6>Configuring announcement of fields such as links and headings</h6>
+<p>
+Previous versions of NVDA allowed you to use the Virtual Buffer settings dialog to configure whether NVDA should announce the type of field that you entered while reading through web content. Examples of field types are links, headings, tables, and lists. To configure these, please find new options in the <a href="#6.2.1.9">Document Formatting Settings dialog</a>. These options now not only affect virtual Buffers, but any documents that may cause these types of fields to be announced.
+</p>
+<h6>Automatic focus mode for focus changes</h6>
+<p>
+This option allows focus mode to be invoked if focus changes. For example, when on a web page, if you press tab and you land on a form, if this option is checked, focus mode will automatically be invoked.
+</p>
+<h6>Automatic focus mode for carret movement</h6>
+<p>
+This option, when checked, allows NVDA to enter and leave focus mode when using arrow keys. For example, if arrowing down a webpage and you land on an edit box, NVDA will automatically bring you into focus mode. If you arrow out of the edit box, NVDA will put you back in browse mode.
+</p>
+<h6>Audio indication of Focus and Browse modes</h6>
+<p>
+If this option is enabled, NVDA will play special sounds when it switches between browse mode and focus mode in a virtual Buffer, rather than speaking the change.
+</p>
+<h5 id="6.2.1.9">6.2.1.9. Document Formatting Settings</h5>
+<p>
+This dialog box is found in the Preferences menu, under &quot;Document Formatting...&quot;. Alternatively, this dialog box can be invoked by pressing NVDA+Control+D. All the checkboxes in this dialog are for configuring what type of formatting you wish to hear automatically as you move the cursor around microsoft word or wordpad documents. For example, if you check the report font name checkbox, each time you arrow onto text with a different font, the name of the font will be announced.
+</p>
+<p>
+You can configure announcement of font name, font size, font attributes, style, text alignment, text style, tables, page numbers, line numbers, spelling errors, links, headings, lists and blockquotes.
+</p>
+<h5 id="6.2.1.10">6.2.1.10. Speech dictionaries</h5>
+<p>
+The speech dictionaries menu (found in the Preferences menu) contains dialogs that allow you to manage the way NVDA pronounces particular words or phrases. There are currently three different types of speech dictionaries. They are:
+</p>
+<ul>
+<li>Default: rules in this dictionary affect all speech in NVDA.</li>
+<li>Voice: rules in this dictionary affect speech for the synthesizer voice currently being used.</li>
+<li>Temporary: rules in this dictionary affect all speech in NVDA, but only for the current session. These rules are temporary and will be lost if NVDA is restarted.</li>
+</ul>
+<p>
+All dictionary dialogs contain a list of rules which will be used for processing the speech. The dialog also contains Add, Edit and remove buttons.
+</p>
+<p>
+To add a new rule to the dictionary, press the Add button, and fill in the fields in the dialog box that appears and then press Ok. You will then see your new rule in the list of rules. However to make sure your rule is actually saved, make sure to press Ok to exit the dictionary dialog all together once you have finished adding/editing rules.
+</p>
+<p>
+The rules for NVDA's speech dictionaries allow you to change one string of characters in to another.  A simple example would be that you want to have NVDA say the word frog each time it is supposed to say the word bird. In the Add rule dialog, the easiest way to do this is to type the word bird in the Pattern field, and the word frog in the Replacement field. You may also want to type a description of the rule in the Comment field (something like: changes bird to frog).
+</p>
+<p>
+NVDA's speech dictionaries however are much more powerful than simple word replacement. The Add rule dialog also contains a checkbox to say whether or not you want the rule to be case sensitive (meaning that NVDA should care whether the characters are uppercase or lowercase. NVDA ignores case by default). Another chekbox allows you to state whether your pattern is a &quot;Regular expression&quot;. A regular expression is a pattern containing special symbols that allow you to match on more than one character at a time, or match on just numbers, or just letters, as a few examples. Regular expressions are not covered in this user guide, but there are many tutorials on the web which can provide you with more information.
+</p>
+<h4 id="6.2.2.">6.2.2. Saving and Reloading the configuration</h4>
+<p>
+NVDA stores its settings in a file called nvda.ini in its directory. You will probably never have to touch this file, but for advanced users, this file does allow you to change some extra settings which don't yet have dialog boxes to do so.
+</p>
+<p>
+NVDA does not automatically save your settings, so if you exit NVDA, and then restart it, the settings will go back to the original values. Note, however, that this default option can be changed under the general options in the preferences menu. To save the settings, you can either choose the Save configuration item in the NVDA menu, or press NVDA+Control+c from anywhere.
+</p>
+<p>
+If NVDA is on a read-only file system, such as a CD, it will not be able to save your settings, and it will tell you so.
+</p>
+<p>
+If you ever make a mistake with your settings and need to revert back to the saved settings, you can either choose the &quot;revert to saved configuration&quot; item in the NVDA menu, or you can press NVDA+Control+r from anywhere. 
+</p>
+<h2 id="7">7. Navigating with NVDA</h2>
+<h3 id="7.1">7.1. Navigating with the Focus</h3>
+<p>
+The Most common way of navigating around Windows with NVDA, is to just move around with normal keyboard commands, such as tab and shift tab to move forward and back between controls, pressing alt to get to the menu bar and then using the arrows to navigate menus, using alt+tab to move between running applications. As you do this, NVDA will announce what has focus.
+</p>
+<p>
+When NVDA announces an object (e.g. when it receives focus), it will usually say the object's name, type, state, value, description, keyboard shortcut, and positional information. This is quite similar to other screen readers; however the types of objects may be a little different.
+</p>
+<p>
+There are some key commands that are useful when moving with focus:
+</p>
+<ul>
+<li>NVDA+tab - reports the current focus</li>
+<li>NVDA+b - reads the entire foreground window (useful for reading a dialog box)</li>
+<li>NVDA+t - Announces the title of the current foreground window</li>
+</ul>
+<h3 id="7.2">7.2. Navigating with the System Caret</h3>
+<p>
+When the focus is on an object that has an edit cursor (system caret), you can arrow around and edit like you normally would. NVDA will announce as you move by character, word, line, and will also announce selecting and unselecting text.
+</p>
+<p>
+When you move with the system caret, the position of the review cursor will also be updated to match the system caret.
+</p>
+<p>
+You can also read the entire text (say all) with NVDA+down Arrow. Note though that this is different to numpad Plus which only moves the review cursor, this moves the system caret as it goes.
+</p>
+<h3 id="7.3">7.3. Object Navigation</h3>
+<p>
+If you wish to navigate around the current application or the Operating System a bit, but with out moving the focus, you can use NVDA's object navigation. This allows you to move from object to object in a tree like structure.
+</p>
+<p>
+The tree structure of objects starts at the desktop window, the root of the tree. The first branches of the tree are the currently running applications, and of course these applications have their own branches (objects), representing various parts of the application.
+</p>
+<p>
+The tree structure can get quite large, but it does allow you to navigate in a logical order, so that you can quickly find the information you need.
+</p>
+<p>
+This structure has nothing to do with how the objects are laid out on the screen, but how they are related logically. This may take a little bit of time to get used to, but once you grasp this, you should be able to move around quite easily.
+</p>
+<p>
+NVDA currently can not navigate the objects in a screen-based layout due to not having a video intercept driver or display hooks. NVDA chooses not to interact with the screen, more so because over all it should allow a much clearer, and more logical perception of an application and the operating system, rather than trying to picture a flat screen layout.
+</p>
+<p>
+Not all applications have a perfect tree structure, but this is up to the developer of that particular application. Most seem to be ok; certainly most Dialog boxes and highly structured applications seem to have gotten it right.
+</p>
+<p>
+To navigate by object, use the following keys:
+</p>
+<ul>
+<li>NVDA+numpad5: Speak current object</li>
+<li>NVDA+numpad8: Move to parent object (moving towards the root of the tree)</li>
+<li>NVDA+numpad4: Move to previous object (the object directly before this one on the same level)</li>
+<li>NVDA+numpad6: Move to Next object (the object directly after this one on the same level)</li>
+<li>NVDA+numpad2: Move to first child object (The first branch coming out of this one)</li>
+<li>NVDA+shift+numpad4: Move to previous object in flow (crosses parent child object boundaries automatically until it can go previous)</li>
+<li>NVDA+shift+numpad6: Move to next object in flow (crosses parent child object boundaries automatically until it can go next)</li>
+<li>NVDA+numpadMinus: Move to focus</li>
+<li>NVDA+numpadEnter: Activate current object (e.g. press enter / click / double click)</li>
+<li>NVDA+numpadDivide: Move the mouse to the current object</li>
+<li>NVDA+numpadMultiply: Move to the mouse</li>
+<li>NVDA+numpadDelete: announce current object's dimentions in regards to the screen</li>
+<li>NVDA+numpadPlus: say all objects - starts reading from the current object, traveling next in flow</li>
+</ul>
+<p>
+note: numpad keys require numlock key to be turned off to work properly
+</p>
+<p>
+When you move with the focus, the current navigator object changes along with it. However, if you wish to lock the object navigation to one specific object, so it doesn't change with the focus, you can turn off focus Moves Navigator Object with NVDA+7.
+</p>
+<h3 id="7.4">7.4. Reviewing the Text in the Current Object</h3>
+<p>
+NVDA allows you to read the contents of the current navigator object, by character, word or line. This is mostly useful in Dos console windows, and other places where there is a limited or non-existant system caret.
+</p>
+<ul>
+<li>Shift+numpad7: Top line</li>
+<li>numpad7: Previous line</li>
+<li>numpad8: Current line</li>
+<li>numpad9: Next line</li>
+<li>shift+numpad9: Bottom line</li>
+<li>numpad4: Previous word</li>
+<li>numpad5: Current word</li>
+<li>numpad6: Next word</li>
+<li>shift+numpad1: Start of line</li>
+<li>numpad1: Previous character</li>
+<li>numpad2: Current character</li>
+<li>numpad3: Next character</li>
+<li>shift+numpad3: End of line</li>
+<li>numpad Plus: Say all text</li>
+</ul>
+<p>
+note: numpad keys require numlock key to be turned off to work properly
+</p>
+<p>
+When an object contains an edit cursor (system caret), and it moves, the review cursor is also updated to that position. If you want the review cursor to stay where it is, and not move with the caret, you can turn off caret Moves Review Cursor by pressing NVDA+6.
+</p>
+<p>
+It is possible to copy parts of the text you are reviewing. For example, you may wish to copy an internet address someone has sent you in a text chat program. To copy text, Start by moving the review cursor to the first character of the text you wish to copy, and press NVDA+f9. Then move to the end of the text, and press NVDA+f10. The text will now be copied to the clipboard so that you can paste it somewhere else. Note that if the program you are using already allows you to move through the text using the system caret, and copy using the normal control+c command, then you will always get better results using this.
+</p>
+<h3 id="7.5">7.5. Navigating with the Mouse</h3>
+<p>
+When you move the Mouse, NVDA by default reports the text that is directly under the mouse pointer, as it moves over it. Where supported, NVDA will read a paragraph's worth of text, though some controls may only read by line.
+</p>
+<p>
+NVDA can also be configured to also announce the type of control or object the mouse is currently over as it moves (e.g. list, button etc), which may be useful for totally blind users as sometimes the text isn't enough.
+</p>
+<p>
+NVDA provides a way for users to understand where the mouse is in regards to the dimentions of the screen, by playing the current mouse coordinates as audio beeps. The higher the mouse is on the screen, the higher the pitch of the beeps. The more left or right the mouse is on the screen, the more left or right the sound will seem to come from (assuming the user has stereo speakers).
+</p>
+<p>
+These extra mouse features are not turned on by default in NVDA, but if you wish to take advantage of them, you can configure them from the Mouse settings dialog, found in the Preferences menu on the NVDA menu.
+</p>
+<h2 id="8">8. Virtual Buffers</h2>
+<p>
+Complex read-only documents, such as web pages, are represented in NVDA with in a Virtual Buffer.
+</p>
+<p>
+A virtual buffer is a flat representation of content such as a web page, that can be moved around in with the arrow keys. Information such as whether text is a link, heading etc is announced along with the text as you move.
+</p>
+<p>
+While in a virtual buffer, there are two modes of interaction. Browse mode is where you can move around all the text using a virtual cursor. Focus mode is where you can directly interact with the control (edit field, combo box, radio buttons) using what ever keys you would normally use. When in Browse mode, NVDA will automatically switch to focus mode if you tab to or click on a particular control that requires it. Note that pressing enter or space on controls that require it will also switch to focus mode. You can also manually change to focus mode with NVDA+space. If NVDA automatically changed to focus mode because of a tab, click or enter/space key press, it will change back to browse mode once you tab or click on to something that doesn't require it, or if you press escape. However, if you changed to focus mode with NVDA+space, it will stay in focus mode until you manually go back to browse mode. At any time when you are in focus mode, you can manually switch back to browse mode by pressing escape, or NVDA+space. The virtual buffer settings dialog in the preferences menu in the NVDA menu allows you to disable automatic switching of browse mode and focus mode.
+</p>
+<p>
+Currently NVDA uses Virtual Buffers for reading documents in Mozilla Firefox, Microsoft Internet Explorer, and Adobe Reader.
+</p>
+<h3 id="8.1">8.1. Single Letter Navigation</h3>
+<p>
+While in browse mode, For quicker navigation NVDA also provides single character keys to jump to certain fields in a virtual buffer.
+</p>
+<p>
+By themselves they jump to the next field, with the shift key they jump to the previous field.
+</p>
+<p>
+Available keys:
+</p>
+<ul>
+<li>h: heading</li>
+<li>l: list</li>
+<li>i: list item</li>
+<li>t: table</li>
+<li>k: link</li>
+<li>n: nonLinked text</li>
+<li>f: form field</li>
+<li>u: unvisited link</li>
+<li>v: visited link</li>
+<li>e: edit field</li>
+<li>b: button</li>
+<li>x: checkbox</li>
+<li>c: combo box</li>
+<li>r: radio button</li>
+<li>q: block quote</li>
+<li>s: separator</li>
+<li>m: frame</li>
+<li>g: graphic</li>
+<li>d: ARIA landmark</li>
+<li>o: embedded object</li>
+<li>1 to 6: headings 1 to 6 respectively</li>
+</ul>
+<h3 id="8.2">8.2. Forms and Focus Mode</h3>
+<p>
+Sometimes you may wish to interact with form fields with out the virtual buffer keys getting in the way. Focus mode is created for this purpose, and can be toggled on and off with NVDA+space.
+</p>
+<h3 id="8.3">8.3. The Elements List</h3>
+<p>
+The elements list (available by pressing NVDA+f7 while in a virtual buffer) provides access to a list of either links, headings or ARIA landmarks on the page. Radio buttons allow you to switch between these three types of information. An edit field is also provided in the dialog which allows you to filter the list to help you search for a particular item on the page. Once you have chosen an item, you can use the provided buttons in the dialog to move to, or activate, that item.
+</p>
+<h3 id="8.4">8.4. Embedded Objects</h3>
+<p>
+Pages can include rich content using technologies such as Adobe Flash and Sun Java. Where these are encountered in a virtual buffer, NVDA will announce &quot;embedded object&quot;. You can press enter on these objects to interact with them. If it is accessible, you can then tab around it and interact with it like any other application. To return to the page, press NVDA+space.
+</p>
+<h2 id="9">9. Troubleshooting NVDA</h2>
+<p>
+As NVDA is constantly being updated, there is no guarantee that all commands provided here in this user guide will still apply. If you have any problems with any of the commands presented in this user guide, please visit: <a href="http://www.nvda-project.org/">http://www.nvda-project.org/</a> for more assistance.
+</p>
+
+</body>
+</html>

=== added file 'user_docs/en/user guide.txt'
--- user_docs/en/user guide.txt	1970-01-01 00:00:00 +0000
+++ user_docs/en/user guide.txt	2010-01-04 11:28:39 +0000
@@ -0,0 +1,984 @@
+%%title: NVDA 2009.1 User Guide
+%%lang:en
+
+
+=NVDA 2009.1 User Guide=
+
+
+Last updated September 13, 2009
+
+==Table of Contents==
+
+* [[#1 | 1. Introduction]]
+** [[#1.1 | 1.1. General features]]
+** [[#1.2 | 1.2. Internationalization]]
+** [[#1.3 | 1.3. Speech synthesizer support]]
+** [[#1.4 | 1.4. Braille support]]
+** [[#1.5 | 1.5. License and copyright]]
+* [[#2 | 2. System Requirements]]
+* [[#3 | 3. Getting NVDA]]
+* [[#4 | 4. Installing NVDA]]
+** [[#4.1 | 4.1. The NVDA Installer]]
+** [[#4.2 | 4.2. NVDA Portable]]
+* [[#5 | 5. Getting started with NVDA]]
+** [[#5.1 | 5.1. Launching NVDA]]
+** [[#5.2 | 5.2. About NVDA keyboard commands]]
+* [[#6 | 6. The NVDA menu]]
+** [[#6.1 | 6.1. Accessing the NVDA menu]]
+** [[#6.2 | 6.2. Configuring NVDA]]
+*** [[#6.2.1 | 6.2.1 The Preferences Menu]]
+**** [[#6.2.1.1 | 6.2.1.1. General Settings]]
+**** [[#6.2.1.2 | 6.2.1.2. Synthesizer Selection]]
+**** [[#6.2.1.3 | 6.2.1.3. Voice Settings]]
+**** [[#6.2.1.4 | 6.2.1.4. Braille Settings]]
+**** [[#6.2.1.5 | 6.2.1.5. Keyboard Settings]]
+**** [[#6.2.1.6 | 6.2.1.6. Mouse Settings]]
+**** [[#6.2.1.7 | 6.2.1.7. Object Presentation Settings]]
+**** [[#6.2.1.8 | 6.2.1.8. Virtual Buffer Settings]]
+**** [[#6.2.1.9 | 6.2.1.9. Document Formatting Settings]]
+**** [[#6.2.1.10 | 6.2.1.10. Speech dictionaries]]
+*** [[#6.2.2 | 6.2.2: Saving and Reverting Configuration]]
+* [[#7 | 7. Navigating with NVDA]]
+** [[#7.1 | 7.1. Navigating by Focus]]
+** [[#7.2 | 7.2. Navigating with the System Caret]]
+** [[#7.3 | 7.3. Object Navigation]]
+** [[#7.4 | 7.4. Reviewing Text in the Current Object]]
+** [[#7.5 | 7.5. Navigating with the Mouse]]
+* [[#8 | 8. Virtual Buffers]]
+** [[#8.1 | 8.1. Single Letter Navigation]]
+** [[#8.2 | 8.2. Forms and Focus Mode]]
+** [[#8.3 | 8.3. The Elements list]]
+** [[#8.4 | 8.4. Embedded Objects]]
+* [[#9 | 9. Troubleshooting NVDA]]
+
+==%id:1 1. Introduction==
+
+
+===%id:1.1 1.1. General Features===
+
+
+
+Providing feedback by synthetic speech, Nonvisual Desktop Access allows blind and vision impaired people to access and interact with the Windows operating system and many third party applications.
+
+
+
+Major highlights include:
+
+* Ability to run entirely from a USB stick or other portable media without the need for installation
+* Easy to use talking installer 
+* Browsing the web with [[http://www.getfirefox.com/ | Mozilla Firefox 3]]
+* Working with email using [[http://www.mozillamessaging.com/en-US/thunderbird/early_releases/ | Mozilla Thunderbird 3]]
+* Support for Microsoft Internet Explorer
+* Basic support for Microsoft Outlook Express / Windows Mail
+* support for Microsoft Word and Excel
+* Support for accessible Java applications
+* Support for Adobe Reader
+* Early support for IBM Lotus Symphony
+* support for Windows Command Prompt and console applications
+* Automatic announcement of text under the mouse and optional audible indication of the mouse position
+* Support for many refreshable Braille displays
+
+===%id:1.2 1.2. Internationalization===
+
+
+
+It is important that people anywhere in the world, no matter what language they speak, get equal access to technology. NVDA currently has been translated into over 20 languages besides the English language including: Arabic, Brazilian Portuguese, Croatian, Czech, Finnish, French, Galician, German, Hungarian, Italian, Japanese, Portuguese, Russian, Slovak, Spanish, Thai, Traditional Chinese, Ukrainian, Afrikaans, Polish and Vietnamese.
+
+===%id:1.3 1.3. Speech Synthesizer Support===
+
+
+
+Apart from providing its messages and interface in several languages, NVDA can also enable the user to read content in any language, as long as they have a speech synthesizer that can speak that particular language.
+
+
+
+NVDA is bundled with [[http://espeak.sourceforge.net/ | eSpeak]], a free, open-source, multi-lingual speech synthesizer. Additionally, NVDA can use both SAPI4 and SAPI5 speech engines to provide speech output, as well as the Audiologic and NewFon speech synthesizers.
+
+
+===%id:1.4 1.4. Braille support===
+
+
+
+For users that own a refreshable braille display, NVDA can output its information in braille. NVDA supports Freedom Scientific Pacmate and Focus displays, Handy Tech displays, ALVA BC640/680 displays, plus many others supported by the BRLTTY package if it is available.
+
+
+
+NVDA supports many braille codes covering a large set of languages. In many cases grade 1 and 2 versions of the codes are available. For English readers both U.S. English braille and Unified English braille (UEB) codes are included.
+
+
+===%id:1.5 1.5. Licence and Copyright===
+
+
+
+NVDA is copyright 2006-2009 NVDA contributors.
+
+
+
+NVDA is covered by the GNU General Public License (Version 2). You are free to share or change this software in any way you like as long as you distribute the licence along with the software, and make all source code available to anyone who wants it. This applies to both original and modified copies of the software, plus any software that uses code taken from this software.
+For further details, you can [[http://www.gnu.org/licenses/old-licenses/gpl-2.0.html | view the full licence.]]
+
+==%id:2 2. System Requirements==
+
+* Operating Systems: all 32-bit and 64-bit versions of Windows XP, Windows Vista and Windows 7 (including Server operating Systems), may partially work on Windows 2000.
+* Memory: 256 mb or more of RAM
+* Processor speed: 1.0 ghz or above
+* About 50 MB of storage space.
+
+==%id:3 3. Getting NVDA==
+
+
+
+If you have not yet got a copy of NVDA, you can download it [[http://www.nvda-project.org/ | here]].
+
+
+
+Go to the download section and you will find a link to download the latest version of NVDA.
+
+
+
+There are currently two ways NVDA is packaged. One is an Installer which will talk you through installing NVDA so that you can then run it at any time from the Start Menu. The other is a self-extracting archive file that contains a fully portable version of NVDA, which you can run from anywhere, including a USB thumb drive or CD.
+
+
+==%id:4 4. Installing NVDA==
+
+
+===%id:4.1 4.1. The NVDA Installer===
+
+
+
+If you already have the NVDA installer, simply press enter or double click on the file and the installer will start.
+
+
+
+As the installer loads, you will hear the NVDA installation music. Once loaded, a temporary copy of NVDA will allow you to follow the prompts of the installer and install NVDA. Note that if you were running another copy of NVDA at the time you started the installer, a message will appear telling you that your previous copy of NVDA will be closed. When you press enter on this message, the installer will close your previous copy and start its own one. This is necessary so that the installer can properly update any changed files. At this point, if you have another copy of NVDA already installed, the NVDA installer will uninstall it for you, and then it will commence to install NVDA.
+
+
+
+Once you have successfully completed the installation, the installer will alert you that the install of NVDA has finished. If reinstalling NVDA, It may ask you to reboot the system at this point. It is very important that you reboot the system as failing to do so will have undesirable consequences. If it did not ask you to reboot, pressing Finnish will close the installer and start the newly installed version of NVDA.
+
+
+===%id:4.2 4.2. NVDA portable===
+
+
+
+If you have the portable version of NVDA, then all you have to do is to press enter or double click on the file, and follow the prompts. It will ask you where on your system you wish to place the files.
+
+
+==%id:5 5. Getting started with NVDA==
+
+
+===%id:5.1 5.1. Launching NVDA===
+
+
+
+If you have installed NVDA with the installer, then starting NVDA is as simple as either pressing control+alt+n, or choosing NVDA from the NVDA menu under Programs on the Start Menu. Additionally you can type NVDA into the Run dialog and press Enter.
+
+
+
+To start the portable version, go to the directory you unpacked NVDA to, and press enter or double click on nvda.exe.
+
+
+
+As NVDA starts, you will first hear an ascending set of tones (telling you that NVDA is loading). Depending on how fast your computer is, or if you are running NVDA off a USB key or other slower medium, it may take a little while to start. If it is taking an extra long time, NVDA should say "Loading subsystems. Please wait..."
+
+
+If you don't hear any of this, or you hear the Windows error sound, or a descending set of tones, then this means that NVDA has an error, and you will need to possibly report a bug to the developers. Please check out the NVDA website for how to do this.
+
+
+
+When NVDA starts for the first time, you will be greeted by a dialog box which provides you with some basic information about the NVDA modifier key and the NVDA menu. (Please see further sections about these topics). The dialog box also contains two checkboxes. The first lets you control if NVDA should use the capslock as an NVDA modifier key, and the second lets you control if this Welcome dialog should appear each time NVDA starts.
+
+
+===%id:5.2 5.2. About NVDA keyboard commands===
+
+
+
+Most NVDA-specific keyboard commands usually consist of pressing the NVDA modifier key, in conjunction with one or more other keys. An exception to this are the text review commands which just use the numpad keys by themselves.
+
+
+
+By default both numpad insert and extended insert can be used as the NVDA modifier key. However, you can also configure NVDA so that the capslock key also becomes an NVDA modifier key. When configured this way, pressing or holding down capslock acts as an NVDA modifier key, but pressing it twice in quick succession causes it to act as the normal capslock key.
+
+
+
+Many key commands are mentioned through out the rest of this user guide, but an easy way to explore all the different key commands is to turn on keyboard help.
+
+
+
+To turn on keyboard help, press NVDA+1. To turn it off again, press NVDA+1 again. While in keyboard help, pressing any key will announce what it does (if in deed it does do something). The keys will not actually perform their function while in keyboard help mode, so you can press what ever keys you like.
+
+
+==%id:6 6. The NVDA menu==
+
+
+
+The NVDA menu allows you to control NVDA's settings, access help, save/revert your configuration, Modify speech dictionaries, read the log file, and exit NVDA.
+
+
+===%id:6.1 6.1. Accessing the NVDA menu===
+
+
+
+To get to the NVDA menu from anywhere in Windows while NVDA is running, press NVDA+n. You can also get to the NVDA menu via the windows system tray. Either right-click on the nvda icon located in the system tray, or access the system tray by pressing the windows logo key+B, DownArrow to the NVDA icon and press the applications key located next to the right control key on most keyboards. When the menu comes up, You can use the arrow keys to navigate the menu, and the enter key to activate an item. The Preferences menu allows you to configure NVDA how you like, the tools menu contains useful tools such as the NVDA log viewer and the NVDA Python console for developers, the help menu allows you to access the user guide, a quick key reference, and much more. The NVDA menu also contains items that allow you to save or revert your current configuration. There is also an option that allows you to exit NVDA, although this can be accomplished more efficiently by pressing NVDA+Q.
+
+
+
+The options under the preferences menu can also be accessed via keyboard shortcut commands, as well as the NVDA Python Console, save and revert configuration options discussed in this section. For more information about this, please visit the quick reference guide for a list of shortcut commands. 
+
+
+===%id:6.2 6.2. Configuring NVDA===
+
+
+====%id:6.2.1 6.2.1 Preferences====
+
+
+=====%id:6.2.1.1 6.2.1.1. General Settings=====
+
+
+
+The General settings dialog box is found in the Preferences menu. It is also accessed by pressing NVDA+Control+G. To save the options after modifying settings, press the OK button. To cancel, press the cancel button or the escape key. It contains the following options:
+
+
+======Language======
+
+
+
+A combo box which allows you to select the language that NVDA's user interface and messages should be shown in. There are many languages, however the default option is "User Default, Windows". This option tells NVDA to use the language that Windows is currently set to.
+Please note that NVDA must be restarted when changing the language. NVDA will ask you if you wish to restart if you do change the selection. Press OK, and NVDA will restart.
+
+
+======Save Configuration on Exit======
+
+
+
+This option is a checkbox that, when checked, tells NVDA to automatically save the current configuration when you exit NVDA.
+
+
+======Warn before exiting NVDA======
+
+
+
+This option is a checkbox that allows you to choose whether or not a dialog appears when you exit NVDA that asks whether or not you would like to exit. When checked, a dialog will appear when you attempt to exit NVDA asking whether or not you want to exit.
+
+
+======Logging level======
+
+
+
+This is a combo box that permits you to choose how much NVDA wil log as it's running. Generally users should not need to touch this as not too much is logged. However if you are wanting to provide information in a bug report, then it may be a useful option.
+
+
+======Automatically start nvda after I log on to windows======
+
+
+
+If this option is enabled, NVDA will start automatically as soon as you log on to Windows.
+
+
+======Use nvda on the windows log on screen (requires administrative privileges)======
+
+
+
+If you log on to Windows by providing a user name and password, then enabling this option will make NVDA start automatically at the logon screen when Windows starts.
+
+
+=====%id:6.2.1.2 6.2.1.2. Synthesizer Selection=====
+
+
+
+The Synthesizer dialog, which is found under "Synthesizer..." in the Preferences menu or by pressing NVDA+Control+S, allows you to select which Synthesizer NVDA should use to speak with.
+
+
+
+The dialog contains a simple combo box, which lists all the available synthesizers. Choose the synthesizer you want using the arrow keys, and then press ok. If there is an error loading the synthesizer, a message box will alert you, and NVDA will keep the old synthesizer loaded.
+
+
+
+The current list of synthesizers NVDA supports is:
+eSpeak, SAPI4, SAPI5, Audiologic, Display, and Silence.
+
+
+
+The eSpeak synthesizer is built directly in to NVDA, and does not depend on any other special drivers or SAPI runtime to be installed. NVDA starts using eSpeak by default. This synthesizer should work on any system that NVDA works on, so it will definitely work when running NVDA off a USB thumb drive or CD, on anyone else's system.
+
+
+
+The Sapi4 option allows you to use the Sapi synthesizer. Voices that are included under Ssapi4 include eloquence voices, as well as other Ssapi4 voices that you may have installed on your system.
+
+
+
+The Sapi5 synthesizer allows you to use the microsoft voices that are iincluded on your machine. In XP, the default Ssapi5 voice is Microsoft Sam. In Vista, the default voice is Microsoft Anna. Depending on what voices you have installed, others may show up under Ssapi5.
+
+
+
+The Display synthesizer is useful for sighted developers who wish to read what NVDA is speaking, as they test NVDA with their applications.
+
+
+
+The Silence synthesizer driver is not that useful, unless you want to not have any speech at all while running NVDA.
+
+
+
+Please note that no matter how many different SAPI4 or SAPI5 voices (or engines) you have installed on your system, only the actual SAPI4 and SAPI5 synthesizers will show up in the Synthesizers dialog. To actually select one of the engines (voices), select either SAPI4 or SAPI5, and then in the Voice settings dialog, you can choose the voice you want.
+
+
+=====%id:6.2.1.3 6.2.1.3. Voice Settings=====
+
+
+
+The Voice Settings dialog, found in the Preferences menu or accessed by pressing NVDA+Control+V, contains options that let you change the sound of the speech. You can also configure many of the options from anywhere by pressing NVDA+Control along with one of the arrow keys. The left and right arrow keys move through the various settings, the up and down arrows increase or decrease that setting respectively.
+
+
+
+The Voice Settings dialog box contains the following options:
+
+
+======Voice======
+
+
+
+The first option that you land on in this dialog is a combo box listing all the voices of the current synthesizer that you have installed. You can use the arrow keys to listen to all the various choices. Left and Up arrow take you up in the list, while right and down arrow moves you down in the list.
+
+
+======Variant======
+
+
+
+If you are using the Espeak synthesizer that is packaged with NVDA, this is a combo box that lets you select the Variant the synthesizer should speak with. ESpeak's Variants are rather like voices, as they provide slightly different attributes to the eSpeak voice. Some variants will sound like a male, some like a female, and some even like a frog.
+
+
+======Rate======
+
+
+
+This option allows you to change the rate of your voice. This is a slider that goes from 0 to 100, (0 being the slowest, 100 being the fastest).
+
+
+======Pitch======
+
+
+
+This option allows you to change the pitch of the current voice. It is a slider which goes from 0 to 100, (0 being the lowest pitch and 100 being the highest).
+
+
+======Volume======
+
+
+
+This option is a slider which goes from 0 to 100, (0 being the lowest volume and 100 being the highest).
+
+
+======Inflection======
+
+
+
+This option is a slider that lets you choose how much inflection (rise and fall in pitch) the synthesizer should use to speak with. (The only synthesizer that provides this option at the present time is eSpeak).
+
+
+======Speak All Punctuation======
+
+
+
+This setting is a checkbox, that when checked, tells NVDA to speak all punctuation symbols as words (very useful for proof reading). When unchecked, NVDA leaves the punctuation unchanged, so the synthesizer will still read sentences with the right inflection, however the symbols won't be spoken aloud.
+
+
+======Raise pitch for capitals======
+
+
+
+This setting, if checked, will raise the pitch for capitals.
+
+
+======Say "CAP" before capitals======
+
+
+
+This setting is a checkbox, that when checked, tells NVDA to say the word "cap;" before any capital letter, when arrowing over it or speaking it when its being typed. Usually, NVDA raises the pitch slightly for any capital letter, but some synthesizers may not support this well, so perhaps this option may be of use.
+
+
+======Beep for capitals======
+
+
+
+If this checkbox is checked, NVDA will make a small beep each time it encounters a capitalized character by itself. Like the 'say cap for capitals' checkbox, this is useful for Synthesizers that can't change their pitch for capital letters.
+
+
+=====%id:6.2.1.4 6.2.1.4. Braille Settings=====
+
+
+
+The braille settings dialog box can be invoked by going to the preferences menu and then to the braille settings option.
+
+
+======Braille Display======
+
+
+
+The first option you will come upon in the braille settings dialog is a combo box that says "braille display". You will be presented with three options. Move between these options with the arrow keys.
+
+
+
+No braille means that you are not using braille.
+
+
+
+Freedom Scientific is for Freedom Scientific Focus/Pacmate displays. Note that this option only appears if you have the braille driver from Freedom Scientific installed, see [[http://www.freedomscientific.com/PACMATE-HQ/FS_Braille_Display_Driver.asp | Official Freedom Scientific braille drivers page]] for more info on how to obtain and install the drivers.
+
+
+
+Handy Tech is for the Handy Tech displays. Note that this option will only exist if you have installed the [[ftp://ftp.handytech.de/public/Software/BrailleDriver/bsd1111a.exe | Handy Tech Universal Driver]]
+
+
+BRLTTY allows you to use a wide list of braille displays. Please install the [[http://brl.thefreecat.org/brltty/ | BRLTTY Windows installer]] in order to get support for these displays.
+
+
+======Translation Table======
+
+
+
+The next option you will come to in this dialog is the braille table combo box. In this combo box, you will find braille tables for different languages. You can move from braille table to braille table in the list by using the arrow keys.
+
+
+======Expand to computer braille for the word at the cursor======
+
+
+
+This option allows the word that is under the cursor to be displayed in non-contracted computer braille.
+
+
+======Cursor Blink Rate======
+
+
+
+This option is a numerical field that allows you to change the blink rate of the cursor in milliseconds.
+
+
+======Message Timeout (sec)======
+
+
+
+This option is a numerical field that controls how long system messages are displayed on the braille display.
+
+
+======Miscellaneous======
+
+
+
+When pressing NVDA+Control+T, you can control what is being displayed on the braille display. The two options are focus and review. Focus displays what is being accessed via the arrow keys, the tab key, in short, focus navigation. Review allows you to review what is on the screen, I.E object navigation. You can cycle between these options by pressing control+NVDA+T.
+
+
+=====%id:6.2.1.5 6.2.1.5. Keyboard settings=====
+
+
+
+This dialog box is found in the Preferences menu, under "Keyboard settings...". Alternatively, it can be accessed by pressing NVDA+Control+K. It contains the following options:
+
+
+======Keyboard layout======
+
+
+
+This combo box lets you choose what type of keyboard layout NVDA should use. Currently the two that come with NVDA are Desktop and Laptop.
+
+
+======Use capslock as an NVDA modifier key======
+
+
+
+If this checkbox is checked, capslock can be used as an NVDA modifier key.
+
+
+======Use extended insert as an NVDA modifier key======
+
+
+
+If this checkbox is checked, the extended insert key (usually found above the arrow keys, near home and end) can be used as an NVDA modifier key.
+
+
+======Use numpad insert as an NVDA modifier key======
+
+
+
+If this checkbox is checked, the insert key on the number pad can be used as an NVDA modifier key.
+
+
+======Speak Typed Characters======
+
+
+
+A checkbox that when checked means that NVDA will announce all characters you type on the keyboard. You can also configure this option from anywhere by pressing NVDA+2.
+
+
+======Speak Typed Words======
+
+
+
+A checkbox that when checked means that NVDA will announce all words you type on the keyboard. You can also configure this option from anywhere by pressing NVDA+3.
+
+
+======Speak Command Keys======
+
+
+
+A checkbox that when checked means that NVDA will announce all non-character keys you type on the keyboard. This includes key combinations such as control plus another letter. You can also configure this option from anywhere by pressing NVDA+4.
+
+
+=====%id:6.2.1.6 6.2.1.6. Mouse Settings=====
+
+
+
+The Mouse Settings dialog is found in the Preferences Menu, under "Mouse settings...". Alternatively, it can be accessed by pressing NVDA+Control+M. It contains the following options:
+
+
+======Report Mouse Shape Changes======
+
+
+
+A checkbox, that when checked means that NVDA will announce the shape of the mouse pointer each time it changes. The mouse pointer in Windows changes shape to convey certain information such as when something is editable, or when something is loading etc.
+
+
+======Report text Under Mouse======
+
+
+
+A checkbox that when checked means that NVDA will announce the text currently under the mouse pointer, as you move it around the screen. This allows you to find things on the screen, by physically moving the mouse, rather than trying to find them through object navigation.
+
+
+======Text unit resolution======
+
+
+
+If NVDA is set to announce the text under the mouse as you move it, this option allows you to choose exactly how much text will be spoken. The options are character, word, line and paragraph.
+
+
+======Report role when mouse enters object======
+
+
+
+If this checkbox is checked, NVDA will announce the role (type) of object as the mouse moves in side it.
+
+
+======Play audio coordinates when mouse moves======
+
+
+
+Checking this checkbox makes NVDA play beeps as the mouse moves, so that the user can work out where the mouse is in regards to the dimentions of the screen.
+
+
+======Brightness controls audio coordinates volume======
+
+
+
+If the 'play audio coordinates when mouse moves' checkbox is checked, then checking this checkbox means that the volume of the audio coordinates beeps is controled by how bright the screen is under the mouse. This may cause some performence issues on Windows Vista, so it is unchecked by default.
+
+
+=====%id:6.2.1.7 6.2.1.7. Object Presentation Settings=====
+
+
+
+Found in the Preferences menu under "Object Presentation..." or by pressing NVDA+Control+O. This dialog box contains the following options:
+
+
+======Report Tool Tips======
+
+
+
+A checkbox that when checked tells NVDA to announce tool tips as they appear. Many Windows and controls show a small message (or tool tip) when you move the mouse pointer over them, or sometimes when you move the focus to them.
+
+
+======Report Help Balloons======
+
+
+
+This checkbox when checked tells NVDA to announce help balloons as they appear. Help Balloons are like tool tips, but are usually larger in size, and are associated with system events such as a network cable being unplugged, or perhaps to alert you about Windows security issues.
+
+
+======Report Object Shortcut Keys======
+
+
+
+When this checkbox is checked, NVDA will include the shortcut key that is associated with a certain object or control when it is announced. For example the File menu on a menu bar may have a shortcut key of alt+f.
+
+
+======Report object position information======
+
+
+
+This option lets you choose whether you wish to have an object's position (e.g. 1 of 4) reported when moving to the object with the focus or object navigation.
+
+
+======Report Object descriptions======
+
+
+
+Uncheck this checkbox if you feel you don't need to hear the description announced along with objects.
+
+
+======Progress bar output======
+
+
+
+A progress bar is a control which looks a bit like a ruler. As a task is slowly being completed, more of the bar gets highlighted. It also shows a percentage value, to numerically tell you how far along it is. Progress bars are shown for things like loading a web page, checking your email, or processing a sound file etc.
+
+
+
+This option presents you with a combo box which controls how nvda reports progress bar updates to you. It has the following options:
+
+* Off: Progress bars will not be reported as they change.
+* Speak: This option tells nvda to speak the progress bar in percentages. Each time the progress bar changes, nvda will speak the new value.
+* Beep: This tells nvda to beep each time the progress bar changes. The higher the beep, the closer the progress bar is to completion.
+* Beep and speak: This option tells nvda to both beep and speak when a progress bar updates.
+
+======Report background progress bars======
+
+
+
+This is an option that, when checked, tells nvda to keep reporting a progress bar, even if it is not physically in the foreground. If you minimize or switch away from a window that contains a progress bar, nvda will keep track of it, allowing you to do other things while nvda tracks the progress bar.
+
+
+=====%id:6.2.1.8 6.2.1.8. Virtual Buffer Settings=====
+
+
+
+The Virtual Buffer settings dialog can be found in the Preferences menu, under "Virtual Buffers...". Alternatively, it can be accessed by pressing NVDA+Control+B.
+
+
+
+The dialog contains the following options:
+
+
+======Maximum Number of Characters on One Line======
+
+
+
+This field sets the maximum length of a line of a virtual buffer (in characters).
+
+
+======Maximum Lines Per Page======
+
+
+
+Although virtual buffers don't really have pages, this field sets the amount of lines you will move by when pressing page up or page down while in a virtual buffer.
+
+
+======Use screen layout======
+
+
+
+This option allows you to specify whether content in the virtual Buffer should place content such as links and other fields on their own line, or if it should keep them in the flow of text as it is visually shown. If the option is enabled then things will stay as they are visually shown, but if it is disabled then fields will be placed on their own line.
+
+
+======Report layout tables======
+
+
+
+When disabled this option makes NVDA only report tables that contain tabular data (where it makes sense to know that this is a table). But if enabled, NVDA will also report tables used purely for visual presentation.
+
+
+======Configuring announcement of fields such as links and headings======
+
+
+
+Previous versions of NVDA allowed you to use the Virtual Buffer settings dialog to configure whether NVDA should announce the type of field that you entered while reading through web content. Examples of field types are links, headings, tables, and lists. To configure these, please find new options in the [[#6.2.1.9 | Document Formatting Settings dialog]]. These options now not only affect virtual Buffers, but any documents that may cause these types of fields to be announced.
+
+
+======Automatic focus mode for focus changes======
+
+
+
+This option allows focus mode to be invoked if focus changes. For example, when on a web page, if you press tab and you land on a form, if this option is checked, focus mode will automatically be invoked.
+
+
+======Automatic focus mode for carret movement======
+
+
+
+This option, when checked, allows NVDA to enter and leave focus mode when using arrow keys. For example, if arrowing down a webpage and you land on an edit box, NVDA will automatically bring you into focus mode. If you arrow out of the edit box, NVDA will put you back in browse mode.
+
+
+======Audio indication of Focus and Browse modes======
+
+
+
+If this option is enabled, NVDA will play special sounds when it switches between browse mode and focus mode in a virtual Buffer, rather than speaking the change.
+
+
+=====%id:6.2.1.9 6.2.1.9. Document Formatting Settings=====
+
+
+
+This dialog box is found in the Preferences menu, under "Document Formatting...". Alternatively, this dialog box can be invoked by pressing NVDA+Control+D. All the checkboxes in this dialog are for configuring what type of formatting you wish to hear automatically as you move the cursor around microsoft word or wordpad documents. For example, if you check the report font name checkbox, each time you arrow onto text with a different font, the name of the font will be announced.
+
+
+
+You can configure announcement of font name, font size, font attributes, style, text alignment, text style, tables, page numbers, line numbers, spelling errors, links, headings, lists and blockquotes.
+
+
+=====%id:6.2.1.10 6.2.1.10. Speech dictionaries=====
+
+
+
+The speech dictionaries menu (found in the Preferences menu) contains dialogs that allow you to manage the way NVDA pronounces particular words or phrases. There are currently three different types of speech dictionaries. They are:
+ * Default: rules in this dictionary affect all speech in NVDA.
+* Voice: rules in this dictionary affect speech for the synthesizer voice currently being used.
+* Temporary: rules in this dictionary affect all speech in NVDA, but only for the current session. These rules are temporary and will be lost if NVDA is restarted.
+
+
+All dictionary dialogs contain a list of rules which will be used for processing the speech. The dialog also contains Add, Edit and remove buttons.
+
+
+
+To add a new rule to the dictionary, press the Add button, and fill in the fields in the dialog box that appears and then press Ok. You will then see your new rule in the list of rules. However to make sure your rule is actually saved, make sure to press Ok to exit the dictionary dialog all together once you have finished adding/editing rules.
+
+
+
+The rules for NVDA's speech dictionaries allow you to change one string of characters in to another.  A simple example would be that you want to have NVDA say the word frog each time it is supposed to say the word bird. In the Add rule dialog, the easiest way to do this is to type the word bird in the Pattern field, and the word frog in the Replacement field. You may also want to type a description of the rule in the Comment field (something like: changes bird to frog).
+
+
+
+NVDA's speech dictionaries however are much more powerful than simple word replacement. The Add rule dialog also contains a checkbox to say whether or not you want the rule to be case sensitive (meaning that NVDA should care whether the characters are uppercase or lowercase. NVDA ignores case by default). Another chekbox allows you to state whether your pattern is a "Regular expression". A regular expression is a pattern containing special symbols that allow you to match on more than one character at a time, or match on just numbers, or just letters, as a few examples. Regular expressions are not covered in this user guide, but there are many tutorials on the web which can provide you with more information.
+
+
+====%id:6.2.2. 6.2.2. Saving and Reloading the configuration===
+
+
+
+NVDA stores its settings in a file called nvda.ini in its directory. You will probably never have to touch this file, but for advanced users, this file does allow you to change some extra settings which don't yet have dialog boxes to do so.
+
+
+
+NVDA does not automatically save your settings, so if you exit NVDA, and then restart it, the settings will go back to the original values. Note, however, that this default option can be changed under the general options in the preferences menu. To save the settings, you can either choose the Save configuration item in the NVDA menu, or press NVDA+Control+c from anywhere.
+
+
+
+If NVDA is on a read-only file system, such as a CD, it will not be able to save your settings, and it will tell you so.
+
+
+
+If you ever make a mistake with your settings and need to revert back to the saved settings, you can either choose the "revert to saved configuration" item in the NVDA menu, or you can press NVDA+Control+r from anywhere. 
+
+
+==%id:7 7. Navigating with NVDA==
+
+
+===%id:7.1 7.1. Navigating with the Focus===
+
+
+
+The Most common way of navigating around Windows with NVDA, is to just move around with normal keyboard commands, such as tab and shift tab to move forward and back between controls, pressing alt to get to the menu bar and then using the arrows to navigate menus, using alt+tab to move between running applications. As you do this, NVDA will announce what has focus.
+
+
+
+When NVDA announces an object (e.g. when it receives focus), it will usually say the object's name, type, state, value, description, keyboard shortcut, and positional information. This is quite similar to other screen readers; however the types of objects may be a little different.
+
+
+
+There are some key commands that are useful when moving with focus:
+
+* NVDA+tab - reports the current focus
+* NVDA+b - reads the entire foreground window (useful for reading a dialog box)
+* NVDA+t - Announces the title of the current foreground window
+
+===%id:7.2 7.2. Navigating with the System Caret===
+
+
+
+When the focus is on an object that has an edit cursor (system caret), you can arrow around and edit like you normally would. NVDA will announce as you move by character, word, line, and will also announce selecting and unselecting text.
+
+
+
+When you move with the system caret, the position of the review cursor will also be updated to match the system caret.
+
+
+
+You can also read the entire text (say all) with NVDA+down Arrow. Note though that this is different to numpad Plus which only moves the review cursor, this moves the system caret as it goes.
+
+
+===%id:7.3 7.3. Object Navigation===
+
+
+
+If you wish to navigate around the current application or the Operating System a bit, but with out moving the focus, you can use NVDA's object navigation. This allows you to move from object to object in a tree like structure.
+
+
+
+The tree structure of objects starts at the desktop window, the root of the tree. The first branches of the tree are the currently running applications, and of course these applications have their own branches (objects), representing various parts of the application.
+
+
+
+The tree structure can get quite large, but it does allow you to navigate in a logical order, so that you can quickly find the information you need.
+
+
+
+This structure has nothing to do with how the objects are laid out on the screen, but how they are related logically. This may take a little bit of time to get used to, but once you grasp this, you should be able to move around quite easily.
+
+
+
+NVDA currently can not navigate the objects in a screen-based layout due to not having a video intercept driver or display hooks. NVDA chooses not to interact with the screen, more so because over all it should allow a much clearer, and more logical perception of an application and the operating system, rather than trying to picture a flat screen layout.
+
+
+
+Not all applications have a perfect tree structure, but this is up to the developer of that particular application. Most seem to be ok; certainly most Dialog boxes and highly structured applications seem to have gotten it right.
+
+
+
+To navigate by object, use the following keys:
+
+* NVDA+numpad5: Speak current object
+* NVDA+numpad8: Move to parent object (moving towards the root of the tree)
+* NVDA+numpad4: Move to previous object (the object directly before this one on the same level)
+* NVDA+numpad6: Move to Next object (the object directly after this one on the same level)
+* NVDA+numpad2: Move to first child object (The first branch coming out of this one)
+* NVDA+shift+numpad4: Move to previous object in flow (crosses parent child object boundaries automatically until it can go previous)
+* NVDA+shift+numpad6: Move to next object in flow (crosses parent child object boundaries automatically until it can go next)
+* NVDA+numpadMinus: Move to focus
+* NVDA+numpadEnter: Activate current object (e.g. press enter / click / double click)
+* NVDA+numpadDivide: Move the mouse to the current object
+* NVDA+numpadMultiply: Move to the mouse
+* NVDA+numpadDelete: announce current object's dimentions in regards to the screen
+* NVDA+numpadPlus: say all objects - starts reading from the current object, traveling next in flow
+
+
+note: numpad keys require numlock key to be turned off to work properly
+
+
+
+When you move with the focus, the current navigator object changes along with it. However, if you wish to lock the object navigation to one specific object, so it doesn't change with the focus, you can turn off focus Moves Navigator Object with NVDA+7.
+
+
+===%id:7.4 7.4. Reviewing the Text in the Current Object===
+
+
+
+NVDA allows you to read the contents of the current navigator object, by character, word or line. This is mostly useful in Dos console windows, and other places where there is a limited or non-existant system caret.
+
+* Shift+numpad7: Top line
+* numpad7: Previous line
+* numpad8: Current line
+* numpad9: Next line
+* shift+numpad9: Bottom line
+* numpad4: Previous word
+* numpad5: Current word
+* numpad6: Next word
+* shift+numpad1: Start of line
+* numpad1: Previous character
+* numpad2: Current character
+* numpad3: Next character
+* shift+numpad3: End of line
+* numpad Plus: Say all text
+
+
+note: numpad keys require numlock key to be turned off to work properly
+
+
+
+When an object contains an edit cursor (system caret), and it moves, the review cursor is also updated to that position. If you want the review cursor to stay where it is, and not move with the caret, you can turn off caret Moves Review Cursor by pressing NVDA+6.
+
+
+
+It is possible to copy parts of the text you are reviewing. For example, you may wish to copy an internet address someone has sent you in a text chat program. To copy text, Start by moving the review cursor to the first character of the text you wish to copy, and press NVDA+f9. Then move to the end of the text, and press NVDA+f10. The text will now be copied to the clipboard so that you can paste it somewhere else. Note that if the program you are using already allows you to move through the text using the system caret, and copy using the normal control+c command, then you will always get better results using this.
+
+
+===%id:7.5 7.5. Navigating with the Mouse===
+
+
+
+When you move the Mouse, NVDA by default reports the text that is directly under the mouse pointer, as it moves over it. Where supported, NVDA will read a paragraph's worth of text, though some controls may only read by line.
+
+
+
+NVDA can also be configured to also announce the type of control or object the mouse is currently over as it moves (e.g. list, button etc), which may be useful for totally blind users as sometimes the text isn't enough.
+
+
+
+NVDA provides a way for users to understand where the mouse is in regards to the dimentions of the screen, by playing the current mouse coordinates as audio beeps. The higher the mouse is on the screen, the higher the pitch of the beeps. The more left or right the mouse is on the screen, the more left or right the sound will seem to come from (assuming the user has stereo speakers).
+
+
+
+These extra mouse features are not turned on by default in NVDA, but if you wish to take advantage of them, you can configure them from the Mouse settings dialog, found in the Preferences menu on the NVDA menu.
+
+
+==%id:8 8. Virtual Buffers==
+
+
+
+Complex read-only documents, such as web pages, are represented in NVDA with in a Virtual Buffer.
+
+
+
+A virtual buffer is a flat representation of content such as a web page, that can be moved around in with the arrow keys. Information such as whether text is a link, heading etc is announced along with the text as you move.
+
+
+
+While in a virtual buffer, there are two modes of interaction. Browse mode is where you can move around all the text using a virtual cursor. Focus mode is where you can directly interact with the control (edit field, combo box, radio buttons) using what ever keys you would normally use. When in Browse mode, NVDA will automatically switch to focus mode if you tab to or click on a particular control that requires it. Note that pressing enter or space on controls that require it will also switch to focus mode. You can also manually change to focus mode with NVDA+space. If NVDA automatically changed to focus mode because of a tab, click or enter/space key press, it will change back to browse mode once you tab or click on to something that doesn't require it, or if you press escape. However, if you changed to focus mode with NVDA+space, it will stay in focus mode until you manually go back to browse mode. At any time when you are in focus mode, you can manually switch back to browse mode by pressing escape, or NVDA+space. The virtual buffer settings dialog in the preferences menu in the NVDA menu allows you to disable automatic switching of browse mode and focus mode.
+
+
+
+Currently NVDA uses Virtual Buffers for reading documents in Mozilla Firefox, Microsoft Internet Explorer, and Adobe Reader.
+
+
+===%id:8.1 8.1. Single Letter Navigation===
+
+
+
+While in browse mode, For quicker navigation NVDA also provides single character keys to jump to certain fields in a virtual buffer.
+
+
+
+By themselves they jump to the next field, with the shift key they jump to the previous field.
+
+
+
+Available keys:
+
+* h: heading
+* l: list
+* i: list item
+* t: table
+* k: link
+* n: nonLinked text
+* f: form field
+* u: unvisited link
+* v: visited link
+* e: edit field
+* b: button
+* x: checkbox
+* c: combo box
+* r: radio button
+* q: block quote
+* s: separator
+* m: frame
+* g: graphic
+* d: ARIA landmark
+* o: embedded object
+* 1 to 6: headings 1 to 6 respectively
+
+===%id:8.2 8.2. Forms and Focus Mode===
+
+
+
+Sometimes you may wish to interact with form fields with out the virtual buffer keys getting in the way. Focus mode is created for this purpose, and can be toggled on and off with NVDA+space.
+
+
+===%id:8.3 8.3. The Elements List===
+
+
+
+The elements list (available by pressing NVDA+f7 while in a virtual buffer) provides access to a list of either links, headings or ARIA landmarks on the page. Radio buttons allow you to switch between these three types of information. An edit field is also provided in the dialog which allows you to filter the list to help you search for a particular item on the page. Once you have chosen an item, you can use the provided buttons in the dialog to move to, or activate, that item.
+
+
+===%id:8.4 8.4. Embedded Objects===
+
+
+
+Pages can include rich content using technologies such as Adobe Flash and Sun Java. Where these are encountered in a virtual buffer, NVDA will announce "embedded object". You can press enter on these objects to interact with them. If it is accessible, you can then tab around it and interact with it like any other application. To return to the page, press NVDA+space.
+
+
+==%id:9 9. Troubleshooting NVDA===
+
+
+
+As NVDA is constantly being updated, there is no guarantee that all commands provided here in this user guide will still apply. If you have any problems with any of the commands presented in this user guide, please visit:
+[[http://www.nvda-project.org/ | http://www.nvda-project.org/]]
+for more assistance.
+

=== added file 'user_docs/sconstruct'
--- user_docs/sconstruct	1970-01-01 00:00:00 +0000
+++ user_docs/sconstruct	2010-01-04 11:10:23 +0000
@@ -0,0 +1,16 @@
+#import os
+#import os.path
+
+
+env = Environment()
+
+## wiki2html Builder:
+wiki2htmlBuilder = Builder(action='python wikiTools/creole2html.py < $SOURCE > $TARGET',
+                     src_suffix='.txt' ,suffix='.html' )
+env.Append(BUILDERS={'Wiki2html': wiki2htmlBuilder})
+
+for i in Glob('*/user guide.txt'):
+    env.Wiki2html(i)
+
+#for i in Glob('*/whats new.txt'):
+#    env.Wiki2html(i)

=== added directory 'user_docs/wikiTools'
=== added file 'user_docs/wikiTools/COPYING'
--- user_docs/wikiTools/COPYING	1970-01-01 00:00:00 +0000
+++ user_docs/wikiTools/COPYING	2010-01-04 11:10:23 +0000
@@ -0,0 +1,374 @@
+This software is doubly-licensed. You can use it under the terms and
+conditions of any of the two licenses provided here.
+
+
+                           BSD LICENSE
+
+Copyright (c) 2007, Radomir Dopieralski, Thomas Waldmann.
+All rights reserved. 
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.

=== added file 'user_docs/wikiTools/creole.py'
--- user_docs/wikiTools/creole.py	1970-01-01 00:00:00 +0000
+++ user_docs/wikiTools/creole.py	2010-01-04 11:10:23 +0000
@@ -0,0 +1,441 @@
+# -*- coding: iso-8859-1 -*-
+"""
+    Creole wiki markup parser
+
+    See http://wikicreole.org/ for latest specs.
+
+    Notes:
+    * No markup allowed in table headings.
+      Creole 1.0 does not require us to support this.
+    * No (non-bracketed) generic url recognition: this is "mission impossible"
+      except if you want to risk lots of false positives. Only known protocols
+      are recognized.
+    * We do not allow ":" before "//" italic markup to avoid urls with
+      unrecognized schemes (like wtf://server/path) triggering italic rendering
+      for the rest of the paragraph.
+
+    @copyright: 2007 MoinMoin:RadomirDopieralski (creole 0.5 implementation),
+                2007 MoinMoin:ThomasWaldmann (updates)
+                2009 Mesar Hameed <mhameed at src dot gnome dot org> (modified to suit NVDA)
+                
+    @license: GNU GPL, see COPYING for details.
+    @license: BSD, see COPYING for details.
+"""
+
+import re
+
+__version__ = '1.0'
+
+
+# Whether the parser should convert \n into <br>.
+bloglike_lines = False
+
+class Rules:
+    """Hold all the rules for generating regular expressions."""
+
+    # For the inline elements:
+    proto = r'http|https|ftp|nntp|news|mailto|telnet|file|irc'
+    url =  r'''(?P<url>
+            (^ | (?<=\s | [.,:;!?()/=]))
+            (?P<escaped_url>~)?
+            (?P<url_target> (?P<url_proto> %s ):\S+? )
+            ($ | (?=\s | [,.:;!?()] (\s | $)))
+        )''' % proto
+    link = r'''(?P<link>
+            \[\[
+            (?P<link_target>.+?) \s*
+            ([|] \s* (?P<link_text>.+?) \s*)?
+            ]]
+        )'''
+    image = r'''(?P<image>
+            {{
+            (?P<image_target>.+?) \s*
+            ([|] \s* (?P<image_text>.+?) \s*)?
+            }}
+        )'''
+    macro = r'''(?P<macro>
+            <<
+            (?P<macro_name> \w+)
+            (\( (?P<macro_args> .*?) \))? \s*
+            ([|] \s* (?P<macro_text> .+?) \s* )?
+            >>
+        )'''
+    code = r'(?P<code> {{{ (?P<code_text>.*?) }}} )'
+    emph = r'(?P<emph> (?<!:)// )' # there must be no : in front of the //
+                                   # avoids italic rendering in urls with
+                                   # unknown protocols
+    strong = r'(?P<strong> \*\* )'
+    prop = r'''(?P<prop> %(?P<prop_key>[a-zA-Z]+):(?P<prop_val>[a-zA-Z0-9_\.]+) \s+ )'''
+    title = r'''(?P<title> ^ %%title: \s+ (?P<title_text> .*?) \s* $ )'''
+    gprop = r'''(?P<gprop> %%(?P<gprop_key>[a-zA-Z]+):(?P<gprop_val>[a-zA-Z0-9_\.]+) \s+ )'''
+    linebreak = r'(?P<break> \\\\ )'
+    escape = r'(?P<escape> ~ (?P<escaped_char>\S) )'
+    char =  r'(?P<char> . )'
+    quot = r'''(?P<quot> " )'''
+
+    # For the block elements:
+    separator = r'(?P<separator> ^ \s* ---- \s* $ )' # horizontal line
+    line = r'(?P<line> ^ \s* $ )' # empty line that separates paragraphs
+    head = r'''(?P<head>
+            ^ \s*
+            (?P<head_head>=+) \s*
+            (?P<head_text> .*? ) \s*
+            (?P<head_tail>=*) \s*
+            $
+        )'''
+    if bloglike_lines:
+        text = r'(?P<text> .+ ) (?P<break> (?<!\\)$\n(?!\s*$) )?'
+    else:
+        text = r'(?P<text> .+ )'
+    list = r'''(?P<list>
+            ^ [ \t]* ([*][^*\#]|[\#][^\#*]).* $
+            ( \n[ \t]* [*\#]+.* $ )*
+        )''' # Matches the whole list, separate items are parsed later. The
+             # list *must* start with a single bullet.
+    item = r'''(?P<item>
+            ^ \s*
+            (?P<item_head> [\#*]+) \s*
+            (?P<item_text> .*?)
+            $
+        )''' # Matches single list items
+    pre = r'''(?P<pre>
+            ^{{{ \s* $
+            (\n)?
+            (?P<pre_text>
+                ([\#]!(?P<pre_kind>\w*?)(\s+.*)?$)?
+                (.|\n)+?
+            )
+            (\n)?
+            ^}}} \s*$
+        )'''
+    pre_escape = r' ^(?P<indent>\s*) ~ (?P<rest> \}\}\} \s*) $'
+    table = r'''(?P<table>
+            ^ \s*
+            [|].*? \s*
+            [|]? \s*
+            $
+        )'''
+
+    # For splitting table cells:
+    cell = r'''
+            \| \s*
+            (
+                (?P<head> [=][^|]+ ) |
+                (?P<cell> (  %s | [^|])+ )
+            ) \s*
+        ''' % '|'.join([link, macro, image, code])
+
+class Parser:
+    """
+    Parse the raw text and create a document object
+    that can be converted into output using Emitter.
+    """
+
+    # For pre escaping, in creole 1.0 done with ~:
+    pre_escape_re = re.compile(Rules.pre_escape, re.M | re.X)
+    link_re = re.compile('|'.join([Rules.image, Rules.linebreak, Rules.char]), re.X | re.U) # for link descriptions
+    item_re = re.compile(Rules.item, re.X | re.U | re.M) # for list items
+    cell_re = re.compile(Rules.cell, re.X | re.U) # for table cells
+    # For block elements:
+    block_re = re.compile('|'.join([Rules.line, Rules.head, Rules.separator,
+        Rules.pre, Rules.list, Rules.title, Rules.gprop, Rules.table, Rules.text]), re.X | re.U | re.M)
+    # For inline elements:
+    inline_re = re.compile('|'.join([Rules.link, Rules.url, Rules.macro,
+        Rules.code, Rules.prop, Rules.quot, Rules.image, Rules.strong, Rules.emph, Rules.linebreak,
+        Rules.escape, Rules.char]), re.X | re.U)
+
+    def __init__(self, raw):
+        self.raw = raw
+        self.root = DocNode('document', None)
+        self.cur = self.root        # The most recent document node
+        self.text = None            # The node to add inline characters to
+
+    def _upto(self, node, kinds):
+        """
+        Look up the tree to the first occurence
+        of one of the listed kinds of nodes or root.
+        Start at the node node.
+        """
+        while node.parent is not None and not node.kind in kinds:
+            node = node.parent
+        return node
+
+    # The _*_repl methods called for matches in regexps. Sometimes the
+    # same method needs several names, because of group names in regexps.
+
+    def _url_repl(self, groups):
+        """Handle raw urls in text."""
+
+        if not groups.get('escaped_url'):
+            # this url is NOT escaped
+            target = groups.get('url_target', '')
+            node = DocNode('link', self.cur)
+            node.content = target
+            DocNode('text', node, node.content)
+            self.text = None
+        else:
+            # this url is escaped, we render it as text
+            if self.text is None:
+                self.text = DocNode('text', self.cur, u'')
+            self.text.content += groups.get('url_target')
+    _url_target_repl = _url_repl
+    _url_proto_repl = _url_repl
+    _escaped_url = _url_repl
+
+    def _link_repl(self, groups):
+        """Handle all kinds of links."""
+
+        target = groups.get('link_target', '')
+        text = (groups.get('link_text', '') or '').strip()
+        parent = self.cur
+        self.cur = DocNode('link', self.cur)
+        self.cur.content = target
+        self.text = None
+        re.sub(self.link_re, self._replace, text)
+        self.cur = parent
+        self.text = None
+    _link_target_repl = _link_repl
+    _link_text_repl = _link_repl
+
+    def _macro_repl(self, groups):
+        """Handles macros using the placeholder syntax."""
+
+        name = groups.get('macro_name', '')
+        text = (groups.get('macro_text', '') or '').strip()
+        node = DocNode('macro', self.cur, name)
+        node.args = groups.get('macro_args', '') or ''
+        DocNode('text', node, text or name)
+        self.text = None
+    _macro_name_repl = _macro_repl
+    _macro_args_repl = _macro_repl
+    _macro_text_repl = _macro_repl
+
+    def _image_repl(self, groups):
+        """Handles images and attachemnts included in the page."""
+
+        target = groups.get('image_target', '').strip()
+        text = (groups.get('image_text', '') or '').strip()
+        node = DocNode("image", self.cur, target)
+        DocNode('text', node, text or node.content)
+        self.text = None
+    _image_target_repl = _image_repl
+    _image_text_repl = _image_repl
+
+    def _separator_repl(self, groups):
+        self.cur = self._upto(self.cur, ('document', 'section', 'blockquote'))
+        DocNode('separator', self.cur)
+
+    def _item_repl(self, groups):
+        bullet = groups.get('item_head', u'')
+        text = groups.get('item_text', u'')
+        if bullet[-1] == '#':
+            kind = 'number_list'
+        else:
+            kind = 'bullet_list'
+        level = len(bullet)
+        lst = self.cur
+        # Find a list of the same kind and level up the tree
+        while (lst and
+                   not (lst.kind in ('number_list', 'bullet_list') and
+                        lst.level == level) and
+                    not lst.kind in ('document', 'section', 'blockquote')):
+            lst = lst.parent
+        if lst and lst.kind == kind:
+            self.cur = lst
+        else:
+            # Create a new level of list
+            self.cur = self._upto(self.cur,
+                (kind, 'document', 'section', 'blockquote'))
+            self.cur = DocNode(kind, self.cur)
+            self.cur.level = level
+        self.cur = DocNode('list_item', self.cur)
+        self.parse_inline(text)
+        self.text = None
+    _item_text_repl = _item_repl
+    _item_head_repl = _item_repl
+
+    def _list_repl(self, groups):
+        text = groups.get('list', u'')
+        self.item_re.sub(self._replace, text)
+
+    def _head_repl(self, groups):
+        self.cur = self._upto(self.cur, ('document', 'section', 'blockquote'))
+        text = groups.get('head_text', '').strip()
+        self.cur = DocNode('header', self.cur)
+        self.cur.level = len(groups.get('head_head', ' '))
+        self.parse_inline(text)
+        self.text = None
+    _head_head_repl = _head_repl
+    _head_text_repl = _head_repl
+
+    def _text_repl(self, groups):
+        text = groups.get('text', '')
+        if self.cur.kind in ('table', 'table_row', 'bullet_list',
+            'number_list', 'header'):
+            self.cur = self._upto(self.cur,
+                ('document', 'section', 'blockquote'))
+        if self.cur.kind in ('document', 'section', 'blockquote'):
+            self.cur = DocNode('paragraph', self.cur)
+        else:
+            text = u' ' + text
+        self.parse_inline(text)
+        if groups.get('break') and self.cur.kind in ('paragraph',
+            'emphasis', 'strong', 'code'):
+            DocNode('break', self.cur, '')
+        self.text = None
+    _break_repl = _text_repl
+
+    def _table_repl(self, groups):
+        row = groups.get('table', '|').strip()
+        self.cur = self._upto(self.cur, (
+            'table', 'document', 'section', 'blockquote'))
+        if self.cur.kind != 'table':
+            self.cur = DocNode('table', self.cur)
+        tb = self.cur
+        tr = DocNode('table_row', tb)
+
+        text = ''
+        for m in self.cell_re.finditer(row):
+            cell = m.group('cell')
+            if cell:
+                self.cur = DocNode('table_cell', tr)
+                self.text = None
+                self.parse_inline(cell)
+            else:
+                cell = m.group('head')
+                self.cur = DocNode('table_head', tr)
+                self.text = DocNode('text', self.cur, u'')
+                self.text.content = cell.strip('=')
+        self.cur = tb
+        self.text = None
+
+    def _pre_repl(self, groups):
+        self.cur = self._upto(self.cur, ('document', 'section', 'blockquote'))
+        kind = groups.get('pre_kind', None)
+        text = groups.get('pre_text', u'')
+        def remove_tilde(m):
+            return m.group('indent') + m.group('rest')
+        text = self.pre_escape_re.sub(remove_tilde, text)
+        node = DocNode('preformatted', self.cur, text)
+        node.sect = kind or ''
+        self.text = None
+    _pre_text_repl = _pre_repl
+    _pre_head_repl = _pre_repl
+    _pre_kind_repl = _pre_repl
+
+    def _line_repl(self, groups):
+        self.cur = self._upto(self.cur, ('document', 'section', 'blockquote'))
+
+    def _code_repl(self, groups):
+        DocNode('code', self.cur, groups.get('code_text', u'').strip())
+        self.text = None
+    _code_text_repl = _code_repl
+    _code_head_repl = _code_repl
+
+    def _emph_repl(self, groups):
+        if self.cur.kind != 'emphasis':
+            self.cur = DocNode('emphasis', self.cur)
+        else:
+            self.cur = self._upto(self.cur, ('emphasis', )).parent
+        self.text = None
+
+    def _strong_repl(self, groups):
+        if self.cur.kind != 'strong':
+            self.cur = DocNode('strong', self.cur)
+        else:
+            self.cur = self._upto(self.cur, ('strong', )).parent
+        self.text = None
+
+    def _prop_repl(self, groups):
+        key = groups.get('prop_key', '')
+        value = groups.get('prop_val', '')
+        self.cur.properties.append( NodeProperty(key, value) )
+    _prop_key_repl = _prop_repl
+    _prop_val_repl = _prop_repl
+
+    def _title_repl(self, groups):
+        text = groups.get('title_text', '')
+        self.root.headProperties.append( NodeProperty('title', text) )
+    _title_text_repl = _title_repl
+
+    def _gprop_repl(self, groups):
+        key = groups.get('gprop_key', '')
+        value = groups.get('gprop_val', '')
+        self.root.properties.append( NodeProperty(key, value) )
+    _gprop_key_repl = _gprop_repl
+    _gprop_val_repl = _gprop_repl
+
+    def _break_repl(self, groups):
+        DocNode('break', self.cur, None)
+        self.text = None
+
+    def _quot_repl(self, groups):
+        DocNode('quot', self.cur, None)
+        self.text = None
+
+    def _escape_repl(self, groups):
+        if self.text is None:
+            self.text = DocNode('text', self.cur, u'')
+        self.text.content += groups.get('escaped_char', u'')
+
+    def _char_repl(self, groups):
+        if self.text is None:
+            self.text = DocNode('text', self.cur, u'')
+        self.text.content += groups.get('char', u'')
+
+    def _replace(self, match):
+        """Invoke appropriate _*_repl method. Called for every matched group."""
+
+        groups = match.groupdict()
+        for name, text in groups.iteritems():
+            if text is not None:
+                replace = getattr(self, '_%s_repl' % name)
+                replace(groups)
+                return
+
+    def parse_inline(self, raw):
+        """Recognize inline elements inside blocks."""
+
+        re.sub(self.inline_re, self._replace, raw)
+
+    def parse_block(self, raw):
+        """Recognize block elements."""
+
+        re.sub(self.block_re, self._replace, raw)
+
+    def parse(self):
+        """Parse the text given as self.raw and return DOM tree."""
+
+        self.parse_block(self.raw)
+        return self.root
+
+#################### Helper classes
+
+### The document model and emitter follow
+
+class DocNode:
+    """
+    A node in the document.
+    """
+
+    def __init__(self, kind='', parent=None, content=None):
+        self.children = []
+        self.parent = parent
+        self.kind = kind
+        self.content = content
+        self.properties = []
+        self.headProperties = []
+        if self.parent is not None:
+            self.parent.children.append(self)
+
+
+class NodeProperty:
+    """"A particular property for a node."""
+  
+    def __init__(self, key,value):
+        self.key =  key
+        self.value = value
+
+    def __str__(self):
+        return self.key + '="' + self.value +'"'
+        

=== added file 'user_docs/wikiTools/creole2html.py'
--- user_docs/wikiTools/creole2html.py	1970-01-01 00:00:00 +0000
+++ user_docs/wikiTools/creole2html.py	2010-01-04 11:10:23 +0000
@@ -0,0 +1,197 @@
+# -*- coding: utf-8 -*-
+
+ur"""
+WikiCreole to HTML converter
+This program is an example of how the creole.py WikiCreole parser
+can be used.
+
+@copyright: 2007 MoinMoin:RadomirDopieralski
+@license: GNU GPL, see COPYING for details.
+@license: BSD, see COPYING for details.
+
+Test cases contributed by Jan Klopper (janklopper@underdark.nl),
+modified by Radomir Dopieralski (MoinMoin:RadomirDopieralski).
+Modified for NVDA by Mesar Hameed <mhameed at src dot gnome dot org>
+"""
+
+import re
+from creole import Parser
+
+class Rules:
+    # For the link targets:
+    proto = r'http|https|ftp|nntp|news|mailto|telnet|file|irc'
+    extern = r'(?P<extern_addr>(?P<extern_proto>%s):.*)' % proto
+    interwiki = r'''
+            (?P<inter_wiki> [A-Z][a-zA-Z]+ ) :
+            (?P<inter_page> .* )
+        '''
+
+class HtmlEmitter:
+    """
+    Generate HTML output for the document
+    tree consisting of DocNodes.
+    """
+
+    addr_re = re.compile('|'.join([
+            Rules.extern,
+            Rules.interwiki,
+        ]), re.X | re.U) # for addresses
+
+    def __init__(self, root):
+        self.root = root
+
+    def get_text(self, node):
+        """Try to emit whatever text is in the node."""
+
+        try:
+            return node.children[0].content or ''
+        except:
+            return node.content or ''
+
+    def html_escape(self, text):
+        return text.replace('&', '&amp;').replace('<', '&lt;').replace('>', '&gt;')
+
+    def attr_escape(self, text):
+        return self.html_escape(text).replace('"', '&quot')
+
+    # *_emit methods for emitting nodes of the document:
+
+    def document_emit(self, node):
+        string = '<html>\n<head>\n<META http-equiv=Content-Type content="text/html; charset=utf-8">\n' + \
+            self.listHeadProperties(node) + \
+            '</head>\n<body' + \
+            self.listProperties(node) + \
+            '>\n' + \
+            self.emit_children(node)  + \
+            "\n</body>\n</html>\n"
+        return string
+
+    def text_emit(self, node):
+        return self.html_escape(node.content)
+
+    def separator_emit(self, node):
+        return u'<hr>';
+
+    def listHeadProperties(self, node):
+        string = u""
+        for a in node.headProperties:
+            string += "<" + a.key + ">" + a.value +"</" + a.key + ">\n"
+        return string
+
+
+    def listProperties(self, node):
+        string = u""
+        for a in node.properties:
+            string += " " + a.__str__()
+        return string
+
+    def paragraph_emit(self, node):
+        string = U"<p" + self.listProperties(node)
+        string += u'>\n%s\n</p>\n' % self.emit_children(node)
+        return string
+
+    def bullet_list_emit(self, node):
+        return u'<ul>\n%s</ul>\n' % self.emit_children(node)
+
+    def number_list_emit(self, node):
+        return u'<ol>\n%s</ol>\n' % self.emit_children(node)
+
+    def list_item_emit(self, node):
+        return u'<li>%s</li>\n' % self.emit_children(node)
+
+    def table_emit(self, node):
+        return u'<table>\n%s</table>\n' % self.emit_children(node)
+
+    def table_row_emit(self, node):
+        return u'<tr>%s</tr>\n' % self.emit_children(node)
+
+    def table_cell_emit(self, node):
+        return u'<td>%s</td>' % self.emit_children(node)
+
+    def table_head_emit(self, node):
+        return u'<th>%s</th>' % self.emit_children(node)
+
+    def emphasis_emit(self, node):
+        return u'<i>%s</i>' % self.emit_children(node)
+
+    def strong_emit(self, node):
+        return u'<b>%s</b>' % self.emit_children(node)
+
+    def header_emit(self, node):
+        string = u'<h%d%s' % (node.level, self.listProperties(node))
+        string += u'>%s</h%d>\n' % (self.emit_children(node), node.level)
+        #print "i am a heading, i have %d properties and %d children" % (len(node.properties), len(node.children))
+        return string
+
+    def code_emit(self, node):
+        return u'<tt>%s</tt>' % self.html_escape(node.content)
+
+    def link_emit(self, node):
+        target = node.content
+        if node.children:
+            inside = self.emit_children(node)
+        else:
+            inside = self.html_escape(target)
+        m = self.addr_re.match(target)
+        if m:
+            if m.group('extern_addr'):
+                return u'<a href="%s">%s</a>' % (
+                    self.attr_escape(target), inside)
+            elif m.group('inter_wiki'):
+                raise NotImplementedError
+        return u'<a href="%s">%s</a>' % (
+            self.attr_escape(target), inside)
+
+    def image_emit(self, node):
+        target = node.content
+        text = self.get_text(node)
+        m = self.addr_re.match(target)
+        if m:
+            if m.group('extern_addr'):
+                return u'<img src="%s" alt="%s">' % (
+                    self.attr_escape(target), self.attr_escape(text))
+            elif m.group('inter_wiki'):
+                raise NotImplementedError
+        return u'<img src="%s" alt="%s">' % (
+            self.attr_escape(target), self.attr_escape(text))
+
+    def macro_emit(self, node):
+        raise NotImplementedError
+
+    def break_emit(self, node):
+        return u"<br>"
+
+    def quot_emit(self, node):
+        return u"&quot;"
+
+    def preformatted_emit(self, node):
+        return u"<pre>%s</pre>" % self.html_escape(node.content)
+
+    def default_emit(self, node):
+        """Fallback function for emitting unknown nodes."""
+
+        raise TypeError
+
+    def emit_children(self, node):
+        """Emit all the children of a node."""
+
+        return u''.join([self.emit_node(child) for child in node.children])
+
+    def emit_node(self, node):
+        """Emit a single node."""
+
+        #print "emiting node of type " + node.kind
+        emit = getattr(self, '%s_emit' % node.kind, self.default_emit)
+        return emit(node)
+
+    def emit(self):
+        """Emit the document represented by self.root DOM tree."""
+
+        return self.emit_node(self.root)
+
+if __name__=="__main__":
+    import sys
+    document = Parser(unicode(sys.stdin.read(), 'utf-8', 'ignore')).parse()
+    sys.stdout.write(HtmlEmitter(document).emit().encode('utf-8', 'ignore'))
+
+

=== added file 'user_docs/wikiTools/html2wiki.py'
--- user_docs/wikiTools/html2wiki.py	1970-01-01 00:00:00 +0000
+++ user_docs/wikiTools/html2wiki.py	2010-01-04 11:10:23 +0000
@@ -0,0 +1,93 @@
+#html2wiki.py
+#included in NVDA to make the transition from existing html documentation 
+# to wiki markupped files.
+#Copyright (C) 2010 NVDA Contributors <http://www.nvda-project.org/>
+#This file is covered by the GNU General Public License.
+#See the file COPYING for more details.
+
+import sys
+from HTMLParser import HTMLParser
+
+class MyHTMLParser(HTMLParser):
+
+    def __init__(self):
+        HTMLParser.__init__(self)
+        self.listDepth = []
+       
+        self.etags = { 
+        'h1':'=\n\n', 'h2':'==\n\n', 'h3':'===\n\n', 
+        'h4':'====\n\n', 'h5':'=====\n\n', 'h6':'======\n\n', 
+        'p':'\n', 'b':'**', 'strong':'**', 
+        'em':'//', 'a':']]', 'li': '\n', 'title': '\n',
+        }        
+
+        self.stags = { \
+        'h1':'\n=', 'h2':'\n==', 'h3':'\n===', \
+        'h4':'\n====', 'h5':'\n=====', 'h6':'\n======', \
+        'p':'\n', 'b':'**', 'strong':'**', \
+        'em':'//',
+        }
+
+    def handle_entityref(self, name):
+        #print("i got %s" %name)
+        if name == 'quot':
+            sys.stdout.write('"')
+
+
+    def handle_data(self, data):
+        if data.strip():
+            sys.stdout.write("%s" %data)
+        
+    def unwanted(self, tag):
+        if tag in ['html','meta','head', 'body']:
+            return True
+        return False
+
+    def handle_starttag(self, tag, attrs):
+
+        if self.unwanted(tag):
+            return
+        if tag in self.stags:
+            sys.stdout.write("%s" % self.stags[tag] + self.getAttrib(attrs, 'id'))
+        elif tag == 'title':
+            sys.stdout.write("%%title:")
+        elif tag == 'a':
+            sys.stdout.write("[[" + self.getAttrib(attrs, 'href') +" | ")
+        elif tag == 'ul':
+            self.listDepth.append("*")
+        elif tag == 'ol':
+            self.listDepth.append("#")
+        elif tag == 'li':
+            sys.stdout.write("".join(self.listDepth) + " ")
+        else:
+            #print "Encountered the beginning of a %s tag" % tag
+            sys.stdout.write("\n")
+
+    def getAttrib(self, attrs, tag):
+        string = u""
+        for i in attrs:
+            if i[0] == 'href' and tag == 'href':
+                string += i[1].rstrip('\n')
+            if tag == 'id' and i[0] == tag:
+                string += r'''%''' + "id:%s " % i[1] 
+        return string
+
+    def handle_endtag(self, tag):
+        if self.unwanted(tag):
+            return
+        if tag in self.etags:
+            sys.stdout.write("%s" % self.etags[tag])
+        elif tag in ['ol', 'ul']:
+            self.listDepth.pop()
+            #sys.stdout.write("\n")
+        else:
+            #print "Encountered the end of a %s tag" % tag
+            sys.stdout.write("\n")
+
+
+
+
+parser = MyHTMLParser()
+parser.feed(sys.stdin.read())
+parser.close()         
+

=== added file 'user_docs/wikiTools/readme.txt'
--- user_docs/wikiTools/readme.txt	1970-01-01 00:00:00 +0000
+++ user_docs/wikiTools/readme.txt	2010-01-04 11:10:23 +0000
@@ -0,0 +1,88 @@
+creole2html.py
+
+This file describes the additional 'features' that were added to the standard creole wiki markup to html parser, to better suit NVDA documentation needs.
+
+We also show how a standard document should look like.
+
+Additions to the creole 1.0 standard (www.wikicreole.org/):
+the parser: http://wiki.sheep.art.pl/Wiki%20Creole%20Parser%20in%20Python
+
+formatting within headings is interpreted.
+== this is **some bold** text within a heading ==
+the 1.0 standard leaves the text alone, but markup within headings is proposed for version 2. So the modified parser for NVDA wiki documents already implements this.
+
+
+Local element properties: %tagname:value, where 
+tagname has to match [a-zA-Z]+ and 
+value has to match [0-9a-zA-Z_\.]+
+Example add an id property to current element:
+%id:Introduction
+
+The local properties will be printed as arguments of the enclosing tag.
+<p id='Introduction'> ... </p>
+
+
+global properties: %%tagname:value, where 
+tagname has to match [a-zA-Z]+ and 
+value has to match [0-9a-zA-Z_\.]+
+example define the language to English:
+%%lang:en
+
+the global properties will be printed as arguments of the body tag.
+<body lang='en'> ... </body>
+
+Special case:
+%%title:Free text to the end of the line.
+When we come across the %%title: command, the rest of the line is taken to be the title text, to be printed as part of the head of the html page.
+<head>
+    ...
+    <title>Free text to the end of the line.</title>
+</head>
+
+
+
+
+
+example wiki document:
+
+---start cut---
+%%title:NVDA 2009.1 User Guide
+%%lan:en
+
+=NVDA 2009.1 User Guide=
+
+==Table of Contents==
+
+* [[#1 | 1. Introduction]]
+** [[#1.1 | 1.1. General features]]
+** [[#1.2 | 1.2. Internationalization]]
+
+==%id:1 1. Introduction==
+===%id:1.1 1.1. General Features===
+
+
+Providing feedback by synthetic speech, Nonvisual Desktop Access allows blind and vision impaired people to access and interact with the Windows operating system and many third party applications.
+
+...
+
+
+===%id:1.2 1.2. Internationalization===
+
+
+It is important that people anywhere in the world, no matter what language they speak, get equal access to technology. NVDA currently has been translated into over 20 languages.
+ 
+
+---end cut---
+
+
+
+html2wiki.py
+
+Incomplete parser, but automates most of the conversion from html to wiki markup.
+
+Care is to be taken for element properties/attributes, because they are not converted back into wiki format unless it is an "id" attribute.
+The %%lang:<language code> is also not output, so we have to edit the output document to include this.
+
+The html2wiki.py should probably be removed once all languages has migrated to wiki markup.
+
+both creole2html.py and html2wiki.py read from standard in, and write to standard out.

# Begin bundle
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

