<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
	<TITLE>OpenOffice Accessibility</TITLE>
</head>
<body LANG="en-US" DIR="LTR">
  <h1>OpenOffice Accessibility Project</h1>
  <h3>Project Goal</h3>
  <P>Making OpenOffice accessible means to make it usable by people
regardless of their disabilities. 
</P>
  <P>There are various Accessibility aspects: Keyboard navigation,
scheming, AT support and much more. 
</P>
  <P>Details can be found here:
<A HREF="https://ui.openoffice.org/accessibility/whitepaper.html">https://ui.openoffice.org/accessibility/whitepaper.html</A>.
</P>
  <h3>Making OpenOffice accessible</h3>
  <P>There are three strategies to make OpenOffice accessible: 
</P>
  <UL>
   <LI><B>Keyboard navigation</B>
   <P>Allow the user to control OpenOffice completely with the
	keyboard so that the use of a mouse is not necessary.</P>
   <P>OpenOffice is already controllable in large parts via the
	keyboard. As open task remain for instance switching into and
	between dialogs and activating and deactivating OLE objects.</P>
   <LI><B>Visual and keyboard enhancements</B>
   <P>Keyboard enhancements comprise the support of keyboard like input
	devices that differ from standard keyboards. This support is covered
	by the operating systems that OpenOffice runs on.</P>
   <P>Visual enhancements like enlarged and clearer fonts are already
	possible with the existing OpenOffice.</P>
   <LI><B>Assistive technology</B>
   <P>Assistive technology comprise such different devices like screen
	readers and braille terminals. There are several APIs that serve as
	common abstraction of the various AT input and output devices. We
	are aiming at the Java Accessibility API as the only truly operating
	system independent member of that group while at the same time
	keeping an eye on the Gnome Accessibility API. Both are very similar
	in the way they represent an application and the kind of information
	they provide for the individual parts of the (G)UI.</P>
   <P>Our approach of supporting AT with the UNO Accessibility API is
	documented <A HREF="at-support.html">here</A> in detail.</P>
	<P>A list of AT known to work with OpenOffice is maintained on
	<A HREF="https://wiki.openoffice.org/wiki/Accessibility">https://wiki.openoffice.org/wiki/Accessibility</A>.</P>
</UL>
  <h3><a name="participation"></a>Participation</h3>
  <P>To participate in the work of making OpenOffice accessible,
ask questions, or make comments you can use the
<B>dev@openoffice.apache.org</B> mailing list.</P>
  <h3>Links</h3>
  <UL>
   <LI>Local links: 
   <UL>
    <LI><A HREF="whitepaper.html">Accessibility
		White Paper</A>
    <LI><A HREF="disabilities.html">List
		of Disabilities and Assistive Technology</A>
    <LI><A HREF="unoapi.html">The UNO
		Accessibility API (UAA)</A>
    <LI><A HREF="at-support.html">How
		OpenOffice supports Assistive Technology through the UAA</A>
    <LI><A HREF="AWB.html">Test tool: the
		Accessibility Work Bench</A>
   </UL>
   <LI>APIs: 
   <UL>
    <LI>UNO Accessibility API:
<A HREF="https://ui.openoffice.org/accessibility/unoapi.html">https://ui.openoffice.org/accessibility/unoapi.html</A>
   </UL>
   <LI>Java Accessibility:
<A HREF="https://docs.oracle.com/javase/8/docs/technotes/guides/access/">https://docs.oracle.com/javase/8/docs/technotes/guides/access/</A>
   <LI>GNOME Accessibility Developers Guide:
<A HREF="https://developer.gnome.org/accessibility-devel-guide/stable/index.html.en">https://developer.gnome.org/accessibility-devel-guide/stable/index.html.en</A>
   <LI>Laws regarding accessibility: 
   <UL>
    <LI>List of laws and policies in different countries:
<A HREF="https://www.w3.org/WAI/Policy/">https://www.w3.org/WAI/Policy/</A>
   </UL>
   <LI>Home page of section 508:
<A HREF="https://www.justice.gov/crt/section-508-home-page-1">https://www.justice.gov/crt/section-508-home-page-1</A>
   <LI>Section 508 software analysis:
<A HREF="https://www.justice.gov/crt/httpgcsedgovconinfoclibrarysoftwarehtm">https://www.justice.gov/crt/httpgcsedgovconinfoclibrarysoftwarehtm</A>
   <LI>Guidelines for writing accessible
	documents: 
   <UL>
    <LI>Guidelines from the W3 Consortium:
<A HREF="https://www.w3.org/TR/WCAG20/">https://www.w3.org/TR/WCAG20/</A>
   </UL>
   <LI>Accessibility related pages from IBM:
<A HREF="https://www-03.ibm.com/able/">https://www-03.ibm.com/able/</A>
   <LI>Tips for creating an accessible website:
<A HREF="https://www.whoishostingthis.com/resources/website-accessibility/">https://www.whoishostingthis.com/resources/website-accessibility/</A>
   <LI>A service for HTML page authors that can check existing pages:
<A rel="nofollow" HREF="http://wave.webaim.org/">http://wave.webaim.org/</A>
   </UL>
  <P><BR>
  </P>
  <h4>Related Project</h4>
  <ul>
   <li><a href="https://ux.openoffice.org/">OpenOffice User Experience Project</a>
  </ul>
 </body>
</HTML>
