Bug 489096 - HTML5 support 
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java
index 42c21f8..343702b 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/VisualizeEngine.java
@@ -187,6 +187,7 @@
 
 	private void cleanupPacketCollection(IPacketCollection pc) {
 		// remove text in noscript tag
+		// remove template (temp code (remove after IE supports template tag)
 		if (pc != null) {
 			int size = pc.size();
 			for (int i = size - 1; i >= 0; i--) {
@@ -194,7 +195,8 @@
 
 				Node tmpNode = p.getNode();
 				while (tmpNode != null) {
-					if (tmpNode.getNodeName().equals("noscript")) { //$NON-NLS-1$
+					String name = tmpNode.getNodeName();
+					if ("noscript".equals(name)||"template".equals(name)) { //$NON-NLS-1$
 						pc.remove(i);
 						break;
 					}
@@ -205,7 +207,6 @@
 	}
 
 	private void replaceMathML_SVG_PacketCollection(IPacketCollection pc) {
-		// remove text in noscript tag
 		if (pc != null) {
 			int size = pc.size();
 			for (int i = size - 1; i >= 0; i--) {
@@ -417,28 +418,31 @@
 			div.setAttribute("comment", target.getAttribute("comment"));
 			div.setAttribute("id", target.getAttribute("id"));
 
-			StringBuffer tmpSB = new StringBuffer();
-			tmpSB.append("[" + message);
+			if (message != null) {
+				StringBuffer tmpSB = new StringBuffer();
+				tmpSB.append("[" + message);
 
-			for (int j = 0; j < childTags.length; j++) {
-				NodeList nl2 = target.getElementsByTagName(childTags[j]);
-				for (int k = 0; k < nl2.getLength(); k++) {
-					Node tmpN = nl2.item(0).getFirstChild();
-					String tmpS = "";
-					if (tmpN != null) {
-						tmpS = HtmlTagUtil.getTextDescendant(tmpN);
-					}
-					if (tmpS.length() > 0) {
-						tmpSB.append(" " + childTags[j] + ": \"" + tmpS+"\"");
-						break;
+				for (int j = 0; j < childTags.length; j++) {
+					NodeList nl2 = target.getElementsByTagName(childTags[j]);
+					for (int k = 0; k < nl2.getLength(); k++) {
+						Node tmpN = nl2.item(0).getFirstChild();
+						String tmpS = "";
+						if (tmpN != null) {
+							tmpS = HtmlTagUtil.getTextDescendant(tmpN);
+						}
+						if (tmpS.length() > 0) {
+							tmpSB.append(" " + childTags[j] + ": \"" + tmpS + "\"");
+							break;
+						}
 					}
 				}
+				tmpSB.append("]");
+
+				// remove other tags and attributes
+
+				div.appendChild(doc.createTextNode(tmpSB.toString()));
 			}
-			tmpSB.append("]");
 
-			// remove other tags and attributes
-
-			div.appendChild(doc.createTextNode(tmpSB.toString()));
 			Node parent = target.getParentNode();
 			parent.insertBefore(div, target);
 			mapData.addReplacedNodeMapping(target, div);
@@ -534,6 +538,9 @@
 		replaceElement(doc, "math", new String[0], "MathML");
 		replaceElement(doc, "svg", new String[] { "title", "desc" }, "SVG");
 
+		// template (temp code (remove after IE supports template tag)
+		replaceElement(doc, "template", new String[0], null);
+
 		// image button
 		nl = doc.getElementsByTagName("input");
 		size = nl.getLength();
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java
index 7abe3b0..87a166a 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/NodeInfoCreator.java
@@ -227,6 +227,9 @@
 					} else if (nodeName.equals("label")) {
 						info.setLabel(true);
 						info.appendComment("Label for '" + ((Element) curNode).getAttribute("for") + "'. ");
+					} else if (nodeName.contains("caption")){
+						info.setCaption(true);
+						info.appendComment(curNode.getNodeName());
 					}
 
 					if (nodeName.equals("body")) {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizationNodeInfo.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizationNodeInfo.java
index 0d2debc..95c4b35 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizationNodeInfo.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizationNodeInfo.java
@@ -49,6 +49,8 @@
     private boolean isHeading = false;
     
     private boolean isLandmark = false; //for html5
+    
+    private boolean isCaption = false; //caption/figcaption
 
 	private boolean tableHeader = false;
 
@@ -333,12 +335,21 @@
     }
 
     /**
-     * @return
+     * Returns true if the node is landmark
+     * @return boolean
      */
     public boolean isLandmark() {
 		return isLandmark;
 	}
 
+	public boolean isCaption() {
+		return isCaption;
+	}
+
+	public void setCaption(boolean isCaption) {
+		this.isCaption = isCaption;
+	}
+
 	/**
 	 * @param isLandmark
 	 */
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java
index dfa5d30..13b8d3e 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeColorUtil.java
@@ -136,20 +136,28 @@
 				continue;
 			}
 
+			String headingRGB = getRGBString(param.headingTagsColor, "#33CCFF");
+			String thRGB = getRGBString(param.tableHeaderColor, "#99FF00");
+			String labelRGB = getRGBString(param.labelTagsColor, "#FFFF00");
+			String inputRGB = getRGBString(param.inputTagsColor, "#FF9900");
+			String captionRGB = getRGBString(param.captionColor, "#FFFF80");
+
 			if (param.bColorizeTags
-					&& (info.isHeading() | info.isTableHeader() | info.isLabel() | info.isIdRequiredInput())) {
+					&& (info.isHeading() | info.isTableHeader() | info.isLabel() | info.isIdRequiredInput() | info.isCaption())) {
 				if (info.isHeading()) {
-					strRGB = getRGBString(param.headingTagsColor, "#33CCFF");
+					strRGB = headingRGB;
+				} else if (info.isTableHeader()) {
+					strRGB = thRGB;
+				} else if (info.isLabel()) {
+					strRGB = labelRGB;
+				} else if (info.isIdRequiredInput()) {
+					strRGB = inputRGB;
+				} else if (info.isCaption()){
+					strRGB = captionRGB;
 				}
-				if (info.isTableHeader()) {
-					strRGB = getRGBString(param.tableHeaderColor, "#99FF00");
-				}
-				if (info.isLabel()) {
-					strRGB = getRGBString(param.labelTagsColor, "#FFFF00");
-				}
-				if (info.isIdRequiredInput()) {
-					strRGB = getRGBString(param.inputTagsColor, "#FF9900");
-				}
+				
+				//TBD caption
+				
 				el.setAttribute("style", "color: black; background-image: none; background-color:" + strRGB);// +
 				// "}");
 				// } else if (info.getWords() > 0) {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/config/altText.properties b/plugins/org.eclipse.actf.visualization.engines.blind/config/altText.properties
index 5e63505..eb16f78 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/config/altText.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/config/altText.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2007, 2008 IBM Corporation and others.
+# Copyright (c) 2007, 2016 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -36,6 +36,7 @@
 blindViz.inappropriateAlt_21 = icon
 blindViz.inappropriateAlt_22 = button
 blindViz.inappropriateAlt_23 = \u30dc\u30bf\u30f3
+blindViz.inappropriateAlt_24 = alt
 # END NON-TRANSLATABLE
 
 #
@@ -67,4 +68,5 @@
 blindViz.possible_inappAlt_21 =\u5199\u771f
 blindViz.possible_inappAlt_22 =\u30d0\u30ca\u30fc
 blindViz.possible_inappAlt_23 =\u30a2\u30a4\u30b3\u30f3
+blindViz.possible_inappAlt_24 =\u80cc\u666f
 # END NON-TRANSLATABLE
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties
index c5cafdc..679c38e 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2006, 2010 IBM Corporation and others.
+# Copyright (c) 2006, 2016 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -67,6 +67,7 @@
 DialogSettingBlind_Input_tags_22 = Input tags:
 DialogSettingBlind_Label_tags_23 = Label tags:
 DialogSettingBlind_Tabel_border_24 = Tabel border:
+DialogSettingBlind_Caption_tags_25 = Caption tags:
 #
 #
 #
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties
index 444da44..eed31e1 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/messages_ja.properties
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2006, 2008 IBM Corporation and others.
+# Copyright (c) 2006, 2016 IBM Corporation and others.
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Eclipse Public License v1.0
 # which accompanies this distribution, and is available at
@@ -62,11 +62,12 @@
 DialogSettingBlind_Layout_mode_9 = \u30ec\u30a4\u30a2\u30a6\u30c8\u4fdd\u5b58\u30e2\u30fc\u30c9
 DialogSettingBlind_Maximum_time_17 = \u8a31\u5bb9\u6700\u5927\u5230\u9054\u6642\u9593:
 DialogSettingBlind_Color_for_maximum_time_19 = \u8a31\u5bb9\u6700\u5927\u5230\u9054\u6642\u9593\u306e\u8272:
-DialogSettingBlind_Table_headers_20 = \u30c6\u30fc\u30d6\u30eb\u30d8\u30c3\u30c0\u30bf\u30b0 (TH):
-DialogSettingBlind_Heading_tags_21 = \u898b\u51fa\u3057\u30bf\u30b0 (H1,H2...):
-DialogSettingBlind_Input_tags_22 = \u5165\u529b\u30bf\u30b0 (Input):
-DialogSettingBlind_Label_tags_23 = \u30e9\u30d9\u30eb\u30bf\u30b0 (Label):
+DialogSettingBlind_Table_headers_20 = \u30c6\u30fc\u30d6\u30eb\u30d8\u30c3\u30c0\u30bf\u30b0 (th):
+DialogSettingBlind_Heading_tags_21 = \u898b\u51fa\u3057\u30bf\u30b0 (h1,h2...):
+DialogSettingBlind_Input_tags_22 = \u5165\u529b\u30bf\u30b0 (input):
+DialogSettingBlind_Label_tags_23 = \u30e9\u30d9\u30eb\u30bf\u30b0 (label):
 DialogSettingBlind_Tabel_border_24 = \u30c6\u30fc\u30d6\u30eb\u306e\u5883\u754c:
+DialogSettingBlind_Caption_tags_25 = \u30ad\u30e3\u30d7\u30b7\u30e7\u30f3(caption, figcaption):
 #
 #
 #
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ParamBlind.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ParamBlind.java
index 342ad3d..97082c9 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ParamBlind.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ParamBlind.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and Others
+ * Copyright (c) 2004, 2016 IBM Corporation and Others
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -59,6 +59,8 @@
 
 	public RGB tableBorderColor;
 
+	public RGB captionColor;
+
 	/**
 	 * Get instance of {@link ParamBlind}
 	 * 
@@ -80,33 +82,24 @@
 	}
 
 	private static void setValues(ParamBlind pb) {
-		IPreferenceStore store = BlindVizEnginePlugin.getDefault()
-				.getPreferenceStore();
+		IPreferenceStore store = BlindVizEnginePlugin.getDefault().getPreferenceStore();
 
-		if (store.getDefaultString(IBlindPreferenceConstants.BLIND_LANG)
-				.equals(IBlindPreferenceConstants.LANG_JA)) {
+		if (store.getDefaultString(IBlindPreferenceConstants.BLIND_LANG).equals(IBlindPreferenceConstants.LANG_JA)) {
 			pb.iLanguage = JP;
 		} else {
 			pb.iLanguage = EN;
 		}
 
-		pb.visualizeMode = store
-				.getString(IBlindPreferenceConstants.BLIND_MODE);
+		pb.visualizeMode = store.getString(IBlindPreferenceConstants.BLIND_MODE);
 
-		pb.iMaxTime = store
-				.getInt(IBlindPreferenceConstants.BLIND_MAX_TIME_SECOND);
-		pb.maxTimeColor = PreferenceConverter.getColor(store,
-				IBlindPreferenceConstants.BLIND_MAX_TIME_COLOR);
-		pb.tableHeaderColor = PreferenceConverter.getColor(store,
-				IBlindPreferenceConstants.BLIND_TABLE_HEADER_COLOR);
-		pb.headingTagsColor = PreferenceConverter.getColor(store,
-				IBlindPreferenceConstants.BLIND_HEADING_TAGS_COLOR);
-		pb.inputTagsColor = PreferenceConverter.getColor(store,
-				IBlindPreferenceConstants.BLIND_INPUT_TAGS_COLOR);
-		pb.labelTagsColor = PreferenceConverter.getColor(store,
-				IBlindPreferenceConstants.BLIND_LABEL_TAGS_COLOR);
-		pb.tableBorderColor = PreferenceConverter.getColor(store,
-				IBlindPreferenceConstants.BLIND_TABLE_BORDER_COLOR);
+		pb.iMaxTime = store.getInt(IBlindPreferenceConstants.BLIND_MAX_TIME_SECOND);
+		pb.maxTimeColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_MAX_TIME_COLOR);
+		pb.tableHeaderColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_TABLE_HEADER_COLOR);
+		pb.headingTagsColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_HEADING_TAGS_COLOR);
+		pb.inputTagsColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_INPUT_TAGS_COLOR);
+		pb.labelTagsColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_LABEL_TAGS_COLOR);
+		pb.tableBorderColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_TABLE_BORDER_COLOR);
+		pb.captionColor = PreferenceConverter.getColor(store, IBlindPreferenceConstants.BLIND_CAPTION_COLOR);
 
 	}
 
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java
index ce6790d..5b8c936 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/BlindPreferencePage.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2006, 2008 IBM Corporation and Others
+ * Copyright (c) 2006, 2016 IBM Corporation and Others
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -29,13 +29,11 @@
 import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPreferencePage;
 
-
-public class BlindPreferencePage extends GroupFieldEditorPreferencePage
-		implements IWorkbenchPreferencePage {
+public class BlindPreferencePage extends GroupFieldEditorPreferencePage implements IWorkbenchPreferencePage {
 
 	public static final String ID = BlindPreferencePage.class.getName();
 
-//	private RadioGroupFieldEditor modeRadio;
+	// private RadioGroupFieldEditor modeRadio;
 
 	private Group visualizationSetting;
 
@@ -61,18 +59,14 @@
 
 	private void createLanguagePart(Composite parent) {
 
-		addField(new RadioGroupFieldEditor(
-				IBlindPreferenceConstants.BLIND_LANG, Messages.DialogSettingBlind_Language_4, 1,
-				new String[][] {
-						{ Messages.DialogSettingBlind_English_15,
-								IBlindPreferenceConstants.LANG_EN },
-						{ Messages.DialogSettingBlind_Japanese_16,
-								IBlindPreferenceConstants.LANG_JA }
-								//TODO
+		addField(new RadioGroupFieldEditor(IBlindPreferenceConstants.BLIND_LANG, Messages.DialogSettingBlind_Language_4,
+				1, new String[][] { { Messages.DialogSettingBlind_English_15, IBlindPreferenceConstants.LANG_EN },
+						{ Messages.DialogSettingBlind_Japanese_16, IBlindPreferenceConstants.LANG_JA }
+				// TODO
 				// ,
 				// { Messages.DialogSettingBlind_SimpliedChinese_17,
 				// IBlindPreferenceConstants.LANG_ZH }
-								}, parent));
+		}, parent));
 	}
 
 	private void editNgwordWrongtxt() {
@@ -84,54 +78,43 @@
 
 		Composite parent = getFieldEditorParent();
 
-//		modeRadio = new RadioGroupFieldEditor(
-//				IBlindPreferenceConstants.BLIND_MODE,
-//				Messages.DialogSettingBlind_Visualization_mode_3,
-//				1,
-//				new String[][] {
-//						{
-//								Messages.DialogSettingBlind_Layout_mode_9,
-//								IBlindPreferenceConstants.BLIND_LAYOUT_MODE },
-//						{
-//								Messages.DialogSettingBlind_Voice_browser_output_mode_8,
-//								IBlindPreferenceConstants.BLIND_BROWSER_MODE } },
-//				parent);
-//
-//		addField(modeRadio);
+		// modeRadio = new RadioGroupFieldEditor(
+		// IBlindPreferenceConstants.BLIND_MODE,
+		// Messages.DialogSettingBlind_Visualization_mode_3,
+		// 1,
+		// new String[][] {
+		// {
+		// Messages.DialogSettingBlind_Layout_mode_9,
+		// IBlindPreferenceConstants.BLIND_LAYOUT_MODE },
+		// {
+		// Messages.DialogSettingBlind_Voice_browser_output_mode_8,
+		// IBlindPreferenceConstants.BLIND_BROWSER_MODE } },
+		// parent);
+		//
+		// addField(modeRadio);
 
 		visualizationSetting = createFieldGroup(Messages.DialogSettingBlind_LayoutModeSetting);
 
-		addField(new ColorFieldEditor(
-				IBlindPreferenceConstants.BLIND_MAX_TIME_COLOR,
-				Messages.DialogSettingBlind_Color_for_maximum_time_19,
-				visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_MAX_TIME_COLOR,
+				Messages.DialogSettingBlind_Color_for_maximum_time_19, visualizationSetting));
 		ScaleFieldEditorWithValue maxTime = new ScaleFieldEditorWithValue(
-				IBlindPreferenceConstants.BLIND_MAX_TIME_SECOND,
-				Messages.DialogSettingBlind_Maximum_time_17,
+				IBlindPreferenceConstants.BLIND_MAX_TIME_SECOND, Messages.DialogSettingBlind_Maximum_time_17,
 				visualizationSetting, 30, 180, 5, 30);
 		addField(maxTime);
 
-		addField(new ColorFieldEditor(
-				IBlindPreferenceConstants.BLIND_TABLE_BORDER_COLOR,
-				Messages.DialogSettingBlind_Tabel_border_24,
-				visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_TABLE_BORDER_COLOR,
+				Messages.DialogSettingBlind_Tabel_border_24, visualizationSetting));
 
-		addField(new ColorFieldEditor(
-				IBlindPreferenceConstants.BLIND_HEADING_TAGS_COLOR,
-				Messages.DialogSettingBlind_Heading_tags_21,
-				visualizationSetting));
-		addField(new ColorFieldEditor(
-				IBlindPreferenceConstants.BLIND_TABLE_HEADER_COLOR,
-				Messages.DialogSettingBlind_Table_headers_20,
-				visualizationSetting));
-		addField(new ColorFieldEditor(
-				IBlindPreferenceConstants.BLIND_INPUT_TAGS_COLOR,
-				Messages.DialogSettingBlind_Input_tags_22,
-				visualizationSetting));
-		addField(new ColorFieldEditor(
-				IBlindPreferenceConstants.BLIND_LABEL_TAGS_COLOR,
-				Messages.DialogSettingBlind_Label_tags_23,
-				visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_HEADING_TAGS_COLOR,
+				Messages.DialogSettingBlind_Heading_tags_21, visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_TABLE_HEADER_COLOR,
+				Messages.DialogSettingBlind_Table_headers_20, visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_INPUT_TAGS_COLOR,
+				Messages.DialogSettingBlind_Input_tags_22, visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_LABEL_TAGS_COLOR,
+				Messages.DialogSettingBlind_Label_tags_23, visualizationSetting));
+		addField(new ColorFieldEditor(IBlindPreferenceConstants.BLIND_CAPTION_COLOR,
+				Messages.DialogSettingBlind_Caption_tags_25, visualizationSetting));
 
 		createInappropriateAltPart(parent);
 
@@ -141,8 +124,7 @@
 		}
 
 		boolean isLayoutMode = IBlindPreferenceConstants.BLIND_LAYOUT_MODE
-				.equals(getPreferenceStore().getString(
-						IBlindPreferenceConstants.BLIND_MODE));
+				.equals(getPreferenceStore().getString(IBlindPreferenceConstants.BLIND_MODE));
 		visualizationSetting.setEnabled(isLayoutMode);
 		visualizationSetting.setVisible(isLayoutMode);
 
@@ -153,25 +135,24 @@
 		super.performDefaults();
 
 		boolean isLayoutMode = IBlindPreferenceConstants.BLIND_LAYOUT_MODE
-				.equals(getPreferenceStore().getString(
-						IBlindPreferenceConstants.BLIND_MODE));
+				.equals(getPreferenceStore().getString(IBlindPreferenceConstants.BLIND_MODE));
 		visualizationSetting.setEnabled(isLayoutMode);
 		visualizationSetting.setVisible(isLayoutMode);
 	}
 
-//	@Override
-//	public void propertyChange(PropertyChangeEvent event) {
-//		super.propertyChange(event);
-//
-//		if (event.getSource() == modeRadio) {
-//			if (!event.getOldValue().equals(event.getNewValue())) {
-//				boolean isLayoutMode = IBlindPreferenceConstants.BLIND_LAYOUT_MODE
-//						.equals(event.getNewValue());
-//				visualizationSetting.setEnabled(isLayoutMode);
-//				visualizationSetting.setVisible(isLayoutMode);
-//			}
-//		}
-//	}
+	// @Override
+	// public void propertyChange(PropertyChangeEvent event) {
+	// super.propertyChange(event);
+	//
+	// if (event.getSource() == modeRadio) {
+	// if (!event.getOldValue().equals(event.getNewValue())) {
+	// boolean isLayoutMode = IBlindPreferenceConstants.BLIND_LAYOUT_MODE
+	// .equals(event.getNewValue());
+	// visualizationSetting.setEnabled(isLayoutMode);
+	// visualizationSetting.setVisible(isLayoutMode);
+	// }
+	// }
+	// }
 
 	@Override
 	public boolean performOk() {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/IBlindPreferenceConstants.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/IBlindPreferenceConstants.java
index aad989b..7f0a869 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/IBlindPreferenceConstants.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/IBlindPreferenceConstants.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2007, 2008 IBM Corporation and Others
+ * Copyright (c) 2007, 2016 IBM Corporation and Others
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -45,5 +45,7 @@
     String BLIND_LABEL_TAGS_COLOR = "ADesigner.blind.labelTagsColor";
 
     String BLIND_TABLE_BORDER_COLOR = "ADesigner.blind.tableBorderColor";
-    
+
+    String BLIND_CAPTION_COLOR = "ADesigner.blind.captionColor";
+
 }
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/PreferenceInitializer.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/PreferenceInitializer.java
index dd086a6..cde00cc 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/PreferenceInitializer.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/ui/preferences/PreferenceInitializer.java
@@ -46,6 +46,7 @@
         store.setDefault(IBlindPreferenceConstants.BLIND_INPUT_TAGS_COLOR, "255,153,0");
         store.setDefault(IBlindPreferenceConstants.BLIND_LABEL_TAGS_COLOR, "255,128,255");
         store.setDefault(IBlindPreferenceConstants.BLIND_TABLE_BORDER_COLOR, "0,0,0");
+        store.setDefault(IBlindPreferenceConstants.BLIND_CAPTION_COLOR, "255,255,128");
                      
     }
 
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java
index a9e2b5c..e123d4d 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/Messages.java
@@ -69,6 +69,7 @@
 	public static String DialogSettingBlind_Input_tags_22;
 	public static String DialogSettingBlind_Label_tags_23;
 	public static String DialogSettingBlind_Tabel_border_24;
+	public static String DialogSettingBlind_Caption_tags_25;
 	
 	public static String VisualizeBrowserMode;
 	public static String VisualizeBrowserModeTooltip;