HaTeMiLe (HTML Accessible) is a library that can convert a HTML code in a HTML code more accessible.
- Associate HTML elements;
- Provide a polyfill to CSS Speech and CSS Aural properties;
- Display inacessible informations of page;
- Enable all functionality of page available from a keyboard;
- Improve the acessibility of forms;
- Provide accessibility resources to navigate.
To generate the full API documentation of HaTeMiLe of Java:
- Install Maven;
- Execute the command
mvn site
in HaTeMiLe of Java directory.
Step 1. Add the JitPack repository to your build file
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Step 2. Add the dependency
<dependency>
<groupId>com.github.hatemile</groupId>
<artifactId>hatemile-for-java</artifactId>
<version>2.2.0</version>
</dependency>
Step 1. Add it in your root build.gradle at the end of repositories
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.hatemile:hatemile-for-java:2.2.0'
}
Step 1. Add it in your build.sbt at the end of resolvers
resolvers += "jitpack" at "https://jitpack.io"
Step 2. Add the dependency
libraryDependencies += "com.github.hatemile" % "hatemile-for-java" % "2.2.0"
Step 1. Add it in your project.clj at the end of repositories
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
:dependencies [[com.github.hatemile/hatemile-for-java "2.2.0"]]
Import all needed classes:
import org.hatemile.AccessibleAssociation;
import org.hatemile.AccessibleCSS;
import org.hatemile.AccessibleDisplay;
import org.hatemile.AccessibleEvent;
import org.hatemile.AccessibleForm;
import org.hatemile.AccessibleNavigation;
import org.hatemile.implementation.AccessibleAssociationImplementation;
import org.hatemile.implementation.AccessibleCSSImplementation;
import org.hatemile.implementation.AccessibleDisplayScreenReaderImplementation;
import org.hatemile.implementation.AccessibleEventImplementation;
import org.hatemile.implementation.AccessibleFormImplementation;
import org.hatemile.implementation.AccessibleNavigationImplementation;
import org.hatemile.util.Configure;
import org.hatemile.util.css.StyleSheetParser;
import org.hatemile.util.css.phcss.PHCSSParser;
import org.hatemile.util.html.HTMLDOMParser;
import org.hatemile.util.html.jsoup.JsoupHTMLDOMParser;
Instanciate the configuration, the parsers and solution classes and execute them:
//Configure
Configure configure = new Configure();
//Parsers
HTMLDOMParser htmlParser = new JsoupHTMLDOMParser(htmlCode);
StyleSheetParser cssParser = new PHCSSParser(htmlParser, currentURL);
//Execute
AccessibleAssociation accessibleAssociation =
new AccessibleAssociationImplementation(htmlParser, configure);
accessibleAssociation.associateAllDataCellsWithHeaderCells();
accessibleAssociation.associateAllLabelsWithFields();
AccessibleCSS accessibleCSS =
new AccessibleCSSImplementation(htmlParser, cssParser, configure);
accessibleCSS.provideAllSpeakProperties();
AccessibleDisplay accessibleDisplay =
new AccessibleDisplayScreenReaderImplementation(htmlParser, configure);
accessibleDisplay.displayAllAlternativeTextImages();
accessibleDisplay.displayAllCellHeaders();
accessibleDisplay.displayAllDragsAndDrops();
accessibleDisplay.displayAllLanguages();
accessibleDisplay.displayAllLinksAttributes();
accessibleDisplay.displayAllRoles();
accessibleDisplay.displayAllShortcuts();
accessibleDisplay.displayAllTitles();
accessibleDisplay.displayAllWAIARIAStates();
AccessibleEvent accessibleEvent =
new AccessibleEventImplementation(htmlParser, configure);
accessibleEvent.makeAccessibleAllClickEvents();
accessibleEvent.makeAccessibleAllDragandDropEvents();
accessibleEvent.makeAccessibleAllHoverEvents();
AccessibleForm accessibleForm =
new AccessibleFormImplementation(htmlParser, configure);
accessibleForm.markAllAutoCompleteFields();
accessibleForm.markAllInvalidFields();
accessibleForm.markAllRangeFields();
accessibleForm.markAllRequiredFields();
AccessibleNavigation accessibleNavigation =
new AccessibleNavigationImplementation(htmlParser, configure);
accessibleNavigation.provideNavigationByAllHeadings();
accessibleNavigation.provideNavigationByAllSkippers();
accessibleNavigation.provideNavigationToAllLongDescriptions();
accessibleDisplay.displayAllShortcuts();
PrintWriter printWriter = new PrintWriter("example.html");
printWriter.println(htmlParser.getHTML());
printWriter.close();
If you want contribute with HaTeMiLe for Java, read contributing guidelines.