<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML lang="en">
<HEAD>
<META http-equiv="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META http-equiv="Content-Style-Type" content="text/css">
<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>Blind Usability Visualization preference page</TITLE>
<LINK href="base.css" rel="stylesheet" type="text/css" class="head">
</HEAD>
<BODY>
<H1>Blind Usability Visualization preference page</H1>
<P>
The Blind Usability Visualization preference page is used to set the Visualization mode and language that ACTF Blind Visualization uses. 
</P>
<P>
<B>Visualization mode</B>: Select either Voice browser output mode or Layout mode.
</P>
<UL>
<LI><P><B>Voice browser output mode</B>:
Selecting this option causes the output text from a voice browser to
be displayed in the Visualization View (rather than being read aloud).
In the current version of ACTF, only Home Page Reader can be used as the voice browser.</P>
<LI><P><B>Layout mode</B>:
Specifies the colors and times used to show reaching times, tag colors, and table structure colors in the Visualization View.</P>
  <UL class="nobullet">
  <LI><P>Select <B>Visualize reaching time</B> to display the reaching
  time from the top of the page to each element in the Visualization
  View. By default, black indicates that it takes more than 90 seconds
  to get to that region. The reaching time and display color are
  controlled here.</P>
  <LI><P>Selecting <B>Colorize accessible tags</B> causes table
  headers, heading tags, form elements, and label tags to be colored
  in the Visualization View. The colors can be set by clicking the buttons that follow the tag names.</P>
  <LI><P>Selecting <B>Visualize table structure</B> causes the borders
  of table cells to be drawn with black lines. The colors of the lines
  can be set by clicking the adjacent button.</P>
  <LI><P><B>Set default colors</B>: Clicking this button cancels the current color settings and resets the default colors for these options.</P>
  </UL>
</UL>

<P>
<B>Inappropriate Alt</B>: Clicking <B>Edit Inappropriate Alt List</B>
button allows editing the list of inappropriate ALT-attributes.
When an ALT-attribute of an element in the target page is contained in this list, the ALT-attribute will be detected as a problem.
</P>

<P>
<B>Help</B>: Click this button to open this page.<BR>
<B>Apply</B>: Click this button to save the current settings.<BR>
<B>OK</B>: Click this button to save the current settings and to close the dialog box.<BR>
<B>Cancel</B>: Click this button to close the dialog box without changing the settings.
</P>

<H1 class="related">Related topics</H1>
<UL class="related">
<LI><A href="workspace.html">Exploring the HTML Accessibility perspective</A>
<LI><A href="checkBlind.html">Checking the accessibility and usability
of a document in the Blind Usability View</A>
<LI><A href="menusIcons.html">User interface menus and icons</A>
</UL>

<P>
<A href="index.html">Go to Index</A>
<hr>
<DIV class="logo"><IMG src="images/logo.jpg" alt=""></DIV>
</P>

</BODY>
</HTML>
