<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="StyleSheet" href="style.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="copyright" content="Copyright (c) IBM Corporation and others 2007. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >
<title>Key Reference : Accessibility Internet Browser for Multimedia Help</title>
</head>

<body>
<p class="navigation">
<a href="index.html">Back to Index</a>
</p>
<h1>Key Reference</h1>
<p class="h1">
All functions assigned to shortcut keys can be executed from menus. 
</p>
<div class="h1">
<ul>
 <li><a href="#file">Browser Control 1 (File Menu)</a></li>
 <li><a href="#navigate">Navigate functions (Navigate Menu)</a></li>
 <li><a href="#jump">Jumping functions (Jump Menu)</a></li>
 <li><a href="#multimedia">Multimedia Control (Multimedia Menu)</a></li>
 <li><a href="#annotation">User Annotation (Annotation Menu)</a></li>
 <li><a href="#browser">Browser Control 2 (Window Menu)</a></li>
</ul>
</div>

<a name="file"/>
<h2>Browser Control 1 (File Menu)</h2>
<dl class="h2">
  <dt>Control + O</dt><dd>Open new page. A dialog will be shown to input the URL for the new page.</dd>
  <dt>Control + Alt + I</dt><dd>Open the current page in the system default browser.</dd>
  
  <dt>Control + W</dt><dd>Close current tab.</dd>
  
  <dt>Control + I</dt><dd>Import new Fennec metadata file. 
  aiBrowser copies the Fennec file file into aiBrowser's working directory
  and rebuild the metadata index to enable the new Fennec file.</dd>
    
  <dt>Control + E</dt><dd>Export annotations of current page.
  If there is no annotation, export will be cancelled.
  
  <dt>Control + Alt + E</dt><dd>Export all your annotations.
 aiBrowser creates a compressed file including all your annotations.
  <dt>
</dl>

<a name="navigate"/>
<h2>Navigate functions (Navigate Menu)</h2>
<dl class="h2">
  <dt>Down Arrow</dt><dd>Select next item and read it.</dd>
  <dt>Up Arrow</dt><dd>Select previout item and read it.</dd>
  <dt>Alt + Down Arrow</dt><dd>Read all items from current selected item to last item.</dd>
  
  <dt>Return key or Space key</dt><dd>Click on the selected item, select a checkbox or radio button 
  , open a dialog to edit text input, or select a combobox.
  </dd>
  <dt>Ctrl</dt><dd>Stop speech.</dd>
  
  <dt>Control + F</dt><dd>Open a search dialog box. The enter key will search forward for the target string.</dd>
  <dt>Control + R</dt><dd>Open a search dialog box. The enter key will search backwards for the target string.</dd>
  
  <dt>Control + Alt + K</dt><dd>Open an accesskey list dialog box. Pressing the Enter key in the dialog box will   jump to the appropriate position. 
  Or Alt + Shift + access key will directly jump to the position.</dd>
  
  <dt>F4</dt><dd>Apply the Fennec and user annotation manually if they were not applied automatically. </dd>
  <dt>Control + Alt + N</dt><dd>Fennec metadata on/off.</dd>
  <dt>Control + Alt + A</dt><dd>Toggle the audio description function on or off.</dd>
</dl>

<a name="jump"/>
<h2>Jumping functions (Jump Menu)</h2>
<dl class="h2">
  <dt>Home or Control + Home</dt><dd>Jump to the top of a page.</dd>
  <dt>End or Control + End</dt><dd>Jump to the bottom of a page.</dd>
  <br/>
  <dt>H or Right Arrow</dt><dd>Go to the next heading.</dd>
  <dt>Tab</dt><dd>Go to the next link.</dd>
  <dt>O</dt><dd>Go to the next object (Flash, Windows Media Player, etc.)</dd>
  <dt>F</dt><dd>Go to the next form item (input).</dd>
  <dt>I</dt><dd>Go to the next list item.</dd>
  <dt>M</dt><dd>Go to the next object item including multimedia.</dd>
  <dt>N</dt><dd>Go to the next non-link text item.</dd>
  <dt>A</dt><dd>Go to the next item for describing alternative text with a user annotation.</dd>

  <dt>Shift + H or Left Arrow</dt><dd>Go to the previous heading.</dd>
  <dt>Shift + Tab</dt><dd>Go to the previous link.</dd>
  <dt>Shift + O</dt><dd>Go to the previous object.</dd>
  <dt>Shift + F</dt><dd>Go to the previous form item.</dd>
  <dt>Shift + I</dt><dd>Go to the previous list item.</dd>
  <dt>Shift + M</dt><dd>Go to the previous object item including multimedia.</dd>
  <dt>Shift + N</dt><dd>Go to the previous non-link text item.</dd>
  <dt>Shift + A</dt><dd>Go to the previous item for describing alternative text with a user annotation.</dd>

  <dt>1, 2, 3, 4, 5, 6</dt><dd>Go to the next heading at level (1, 2, 3, 4, 5, 6.)</dd>
  <dt>Shift + 1, 2, 3, 4, 5, 6</dt><dd>Go to the previous heading at level (1, 2, 3, 4, 5, 6.)</dd>
  <br/>
</dl>

<a name="multimedia"/>
<h2>Multimedia Control (Multimedia Menu)</h2>
<dl class="h2">
  <dt>Control + P</dt><dd>Play video and audio.</dd>
  <dt>Control + S</dt><dd>Stop video and audio.</dd>
  <dt>Pause</dt><dd>Pause video and audio.</dd>
  
  <dt>Control + M</dt><dd>Mute volume.</dd>
  <dt>Control + J</dt><dd>Decrease volume.</dd>
  <dt>Control + K</dt><dd>Increase volume.</dd>
  
  <dt>Control + Shift + J</dt><dd>Decrease volume in small step.</dd>
  <dt>Control + Shift + K</dt><dd>Increase volume in small step.</dd>
  
  <dt>Control + Alt + PgUp</dt><dd>Increase speaking speed of speech engine.</dd>
  <dt>Control + Alt + PgDn</dt><dd>Decrease speaking speed of speech engine.</dd>
  
  <dt>Ctrl + R</dt><dd>Try to repair Flash automatically. 
  This function makes a Flash content more accessible automatically
  by analyzing the Flash content.
  If the Flash content is not accessible then please try this function.</dd>
  <br/>
</dl>


<a name="annotation"/>
<h2>User Annotation (Annotation Menu)</h2>
<dl class="h2">
  <dt>Control + A</dt>
  <dd>Open an input dialog box for alternative text as a user annotation. 
  This is only applicable at a location that can be reached with the "A" command. 
  To remove the added alternative text, press "Control + A" again and delete the text that has been entered.</dd>
  <dt>Control + H</dt>
  <dd>Set or Unset a landmark (level 1 heading) for the current item.</dd>
  
  <dt>Control + Alt + S</dt>
  <dd>Save the user annotations manually. 
  (When the autosave option is checked, user annotations are saved automatically.) </dd>
  <dt>Control + Alt + R</dt>
  <dd>Remove all user annotations in the current page. 
  (Warning: No undo for this function.) </dd>
</dl>

<a name="browser"/>
<h2>Browser Control 2 (Window Menu)</h2>
<dl class="h2">
  <dt>F5</dt><dd>Reload the page.</dd>
  <dt>Alt + Right Arrow</dt><dd>Move forward in the browser history.</dd>
  <dt>Alt + Left Arrow</dt><dd>Move backward in the browser history.</dd>
  <dt>Alt + D</dt><dd>Focus on the address input field.</dd>

  <dt>Ctrl + Tab</dt><dd>Change the focus to the next tab.</dd>
  <dt>Ctrl + Shift + Tab</dt><dd>Change the focus to the previous tab.</dd>

  <dt>S</dt><dd>Announce the current status.</dd>
  <dt>T</dt><dd>Announce the current media status.</dd>
  
  <dt>Control + Alt + T</dt><dd>Toggle the display of left views. </dd>
  <br/>
</dl>

<p class="navigation">
<a href="index.html">Back to Index</a>
</p>
</body>
</html>
