<!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>Checking the accessibility and usability of a document in the Blind Usability View</TITLE>
<LINK href="base.css" rel="stylesheet" type="text/css" class="head">
</HEAD>
<BODY>
<H1>Checking the accessibility and usability of a document in the Blind Usability View</H1>
<P>
An HTML document is opened to determine how accessible and usable the page is to readers who rely on voice browsers to read webpages.
</P>
<P>
To check the accessibility and usability of a document for people who are blind:
</P>
<OL>
<LI>Open the document in one of the following ways:
  <UL>
  <LI>Click <B>File</B> &gt; <B>Open</B>, and then navigate to URL or the local file to be checked.
  <LI>Type the URL in the address line, and then click <B>GO</B>.<br> The document opens in the ACTF Browser Editor. 
  </UL>
<LI>Click <B>Blind</B> above the top right pane to select the blind view.
<LI>Open the <A href="parametersBlind.html">Blind Usability Visualization preference page</A> in one of the following ways:
  <UL>
  <LI>Click <B>Settings</B>.
  <LI>Click <B>Window</B> &gt; <B>Preferences</B> &gt; <b>ACTF</b> &gt; <b>Blind Usability Visualization</b>.
Set the visualization mode and click either <B>Apply</B> or <B>OK</B>.
  </UL>
<LI>Visualize the blind usability and detect the accessibility and usability problems in one of the following ways:
  <UL>
  <LI>Click the <B>Visualize</B> button.
  <LI>Click the <B>Visualization</B> menu &gt; <B>Visualize (blind)</B> or use the shortcut key (Ctrl+Shift+B).
  </UL>
<LI>Click <A href="elementCss.html"><B>ID/CSS</B></A> to see the relevant information in the tabs.
<LI>(Optional) Click <B>Save</B> to save the report file as an HTML document.<BR>
Note: The report file is an HTML document consisting of three
parts: a diagram showing the overall rating, a usability visualization
view, and a problem list. When you click a line in the problem list,
its corresponding element in the visualization view is highlighted,
and the page automatically scrolls if necessary to show the element.
<LI>Address each entry in the problem list. See <A href="lineViewBlind.html">Line View pane (blind usability)</A> for details. As each problem is successfully resolved, the rating in the Overall Rating pane improves.
</OL>

<H1 class="related">Related topics</H1>
<UL class="related">
<LI><A href="workspace.html">Exploring the HTML Accessibility perspective</A>
<LI><A href="problemsBlind.html">Accessibility and usability problems for blind users</A>
<LI><A href="checkLv.html">Checking the accessibility and usability of a document in the low vision view</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>
