################################################################
# Information for extension point overview document
################################################################
# Overview document title
title = Accessibility Tools Framework (ACTF) Extension Points
header = ACTF Extension Points 
# Introduction paragraph
overview = The following extension points can be used to extend the capabilities of the ACTF infrastructure:

# A list of the extension points that should be included in the
# extension point documentation.
listed-ext-points=org.eclipse.actf.ai.voice.TTSEngine,\
org.eclipse.actf.model.dom.dombycom.elementFactory,\
org.eclipse.actf.model.ui.browserFavorites,\
org.eclipse.actf.model.ui.webBrowserEventListener,\
org.eclipse.actf.visualization.blind.blindVisualizer,\
org.eclipse.actf.visualization.engines.blind,\
org.eclipse.actf.visualization.eval.checkers,\
org.eclipse.actf.visualization.gui.targetWindowData

