@c $Id$
@node Using Online Help
@chapter Using Online Help With Emacspeak.
@cindex Online Help

Emacs provides an extensive online help system for helping you learn
about various aspects of using Emacs.  Emacspeak provides online help
for its various extensions using this same help system.  This chapter
explains how to use the online help facilities in order to empower you
in discovering powerful and versatile working techniques that will
make you more and more productive in your day to day computing.

The online help options are accessed via the @kbd{C-h} prefix key,
which must be followed by an additional letter or control character to
designate the kind of help desired.  For example, @kbd{C-h t}
@code{help-with-tutorial} visits the Emacs tutorial in a new buffer;
@kbd{C-h i} @code{info} enters the Info documentation system, from
which you can read Texinfo manuals that have been installed on your
system, including the Emacs and Emacspeak documentation; and @kbd{C-h
k} @code{describe-key} provides a description of the Emacs function
which is bound to the next key that you type.  For learning about the
various options that are available via the @kbd{C-h} mechanism
described above, view the online help for command @code{help-for-help}
bound to @kbd{C-h C-h} @MDash{} using what has been described so far,
you would achieve this by pressing @kbd{C-h k} followed by @kbd{C-h
C-h}.

Emacspeak users should note that online help is typically displayed in
a separate Emacs window.  Where it makes sense to do so, Emacspeak
will automatically speak the displayed help.  Once you've asked for
help, you can hear the displayed documentation as many times as you
wish using Emacspeak command @code{emacspeak-speak-help} bound to
@kbd{C-e h}.  If you want to move through the displayed help a line at
a time, switch to the buffer where the help is displayed @MDash{} the
buffer is called @code{*Help*}.

Often, in adding an auditory interface to an Emacs extension, such as
a web browser or mail reader, Emacspeak defines additional commands
and key bindings which enhance the functionality of the spoken
feedback provided by the application.  This manual does not purport to
document all such commands.  It is important, therefore, when learning
to use the various Emacs extensions which comprise the `audio desktop'
(@pxref{Audio Desktop}) that you take advantage of online help to
obtain details of any context-specific features provided by Emacspeak.
The following two commands are of particular importance in this
regard:

@itemize  @bullet
@item
@kbd{C-h m} @code{describe-mode} explains which major and minor modes
are currently in effect, and lists the commands and key bindings
associated with them.

@item
@kbd{C-h b} @code{describe-bindings} lists all of the key bindings
which are currently defined.
@end itemize

The importance of these help functions can be illustrated by the
Emacs/W3 web browser.  When point is positioned inside a table,
certain key bindings are established with which you can access
Emacspeak commands that make it possible to read the rows and columns
of the table and explore its structure efficiently.  To get a
description of these key bindings, you can use W3 to visit the sample
@acronym{HTML} file supplied as part of the Emacspeak distribution,
and, after having moved point onto the first row of the table, issue
the command @kbd{C-h m} @code{describe-mode} to create a help buffer
containing an explanation of the features offered by W3 mode.

Emacspeak supplements the online help facilities available within
Emacs by defining several commands of its own, as follows:

@itemize @bullet
@item
@kbd{C-h c-e} @code{describe-emacspeak} presents a list of standard
Emacspeak commands.

@item
@kbd{C-e F} @code{emacspeak-view-emacspeak-faq} opens a new buffer
containing the Emacspeak @acronym{FAQ}, a list of frequently asked questions
about Emacspeak together with their answers.

@item
@kbd{C-e <F1>} @code{emacspeak-learn-mode} enters a mode in which the
function of every key that you type is spoken; this mode can be
terminated with the @kbd{C-g} @code{keyboard-quit} command.

@end itemize
