<!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>Line View pane (low vision)</TITLE>
<LINK href="base.css" rel="stylesheet" type="text/css" class="head">
</HEAD>
<BODY>
<H1>Line View pane (low vision)</H1>


<P>
The Line View pane is a table that presents the problems for the selected categories line by line.</p> 
<H2>Provided information</H2>
<p>For each problem, the following information is given:
</P>
<UL>
<LI>Type (Icon): a visual indicator for the problem.
The icons used in the Line View pane in the low vision mode are as follows:
  <UL class="icons">
  <LI><IMG src="images/I_Star.gif" alt="Star.">: This icon appears with some other icon. The corresponding element can be highlighted in the Simulation View by selecting this line.
  <LI><IMG src="images/I_Color.gif" alt="Rectangles.">: This problem is related to the colors of the corresponding element.
  <LI><IMG src="images/I_Blur.gif" alt="Circle.">: This problem is related to the font size of the corresponding element.
  </UL>
<LI>Accessibility guidelines: The five accessibility guidelines and standards that are available for use appear to the right of the icon column. In the <A href="parametersLv.html">Checker Options dialog box</A> 
(Opened by clicking <B>Tool</B> &gt; <B>Checker Options</B>), the guidelines can be selected for the tool to use when it checks the accessibility and usability of webpages.
  <UL>
  <LI>WCAG: The number of the <A href="http://www.w3.org/TR/WCAG10/">corresponding checkpoint</A> defined in the Web Content Accessibility Guidelines, which are issued by the World Wide Web Consortium.
  <LI>[Section] 508: The <A href="http://www.section508.gov/index.cfm?FuseAction=Content&ID=12#Web">corresponding rule</A> in Section 508 of the Rehabilitation Act &sect;1194.22.
  <LI>JIS: The corresponding checkpoint of the Japanese Industrial Standard (JIS) X8341-3.
  <LI>IBM Web Accessibility Checklist: The number of the <A href="http://www-306.ibm.com/able/guidelines/web/accessweb.html">corresponding checkpoint</A> of the IBM Web Accessibility Checklist.
  </UL>
<LI>Problem Description: A description of the accessibility or usability problem that will prevent users with low vision from accessing the page.
<LI>Severity: The seriousness of the problem, rated on a scale that ranges from 0 to 100.
<LI>Foreground: The foreground color of the element. This information is used only for text color problems.
<LI>Background: The background color of the element. This information is used only for text color problems.
<LI>X: The x-coordinate of the upper left corner of the element.
<LI>Y: The y-coordinate of the upper left corner of the element.
<LI>Area: The area of a box surrounding the element. The surrounding box will appear when the problem is selected.
</UL>

<H2>Interaction</H2>
<P>
Left-click a line to highlight the element that corresponds to the problem in the Visualization View pane.
Right-click a line or press Shift+F10 to open a context menu.
<UL>
<LI><B>Clear Selection</B>: Selecting this item clears (unselects) the currently selected problem (or problems) in the Line view.
This is used to stop highlighting problems in the Simulation/Visualization view.
<LI><B>View Guideline</B>: Selecting this item refers to the
corresponding help pages of the guideline items, which appear in a separate browser window. If there are no relevant checkpoints in any guideline, this item is not available. 
<LI><B>View Problem Description</B>: Selecting this item creates a pop-up dialog that shows the problem description for the selected problem.
This is useful when the problem description is too long to read in the Line View.
</UL>
</P>

<H1 class="related">Related topics</H1>
<UL class="related">
<LI><A href="workspace.html">Exploring the HTML Accessibility mode</A>
<LI><A href="checkLv.html">Checking the accessibility and usability of a document in the low vision tab</A>
<LI><A href="problemsLv.html">Accessibility and usability problems for users with low vision</A>
<LI><A href="compliance.html">Compliance and accessibility guidelines for Web content</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>
