Bug 489096 - HTML5 support
diff --git a/plugins/org.eclipse.actf.visualization.blind.html/src/org/eclipse/actf/visualization/blind/html/BlindVisualizerHtml.java b/plugins/org.eclipse.actf.visualization.blind.html/src/org/eclipse/actf/visualization/blind/html/BlindVisualizerHtml.java
index 0736565..1377c02 100644
--- a/plugins/org.eclipse.actf.visualization.blind.html/src/org/eclipse/actf/visualization/blind/html/BlindVisualizerHtml.java
+++ b/plugins/org.eclipse.actf.visualization.blind.html/src/org/eclipse/actf/visualization/blind/html/BlindVisualizerHtml.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008 IBM Corporation and Others
+ * Copyright (c) 2008, 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
@@ -22,10 +22,13 @@
import java.util.HashSet;
import java.util.Vector;
+import org.eclipse.actf.model.dom.html.DocumentTypeUtil;
import org.eclipse.actf.model.dom.html.HTMLParserFactory;
import org.eclipse.actf.model.dom.html.IHTMLParser;
import org.eclipse.actf.model.ui.IModelService;
import org.eclipse.actf.model.ui.editor.browser.IWebBrowserACTF;
+import org.eclipse.actf.model.ui.util.ModelServiceUtils;
+import org.eclipse.actf.ui.util.PlatformUIUtil;
import org.eclipse.actf.util.FileUtils;
import org.eclipse.actf.util.dom.DomPrintUtil;
import org.eclipse.actf.util.logging.DebugPrintUtil;
@@ -50,12 +53,13 @@
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.util.html2view.Html2ViewMapData;
import org.eclipse.actf.visualization.util.html2view.Html2ViewMapMaker;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.ui.IEditorPart;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
-public class BlindVisualizerHtml extends BlindVisualizerBase implements
- IBlindVisualizer {
+public class BlindVisualizerHtml extends BlindVisualizerBase implements IBlindVisualizer {
public static final int FRAME = 1;
@@ -93,38 +97,36 @@
File srcFile;
File liveFile;
File targetFile;
+
+ boolean isHTML5 = false;
try {
if (PERFORMANCE_DEBUG)
- System.out
- .println("vizualize start\t" + (new Date()).getTime());
+ System.out.println("vizualize start\t" + (new Date()).getTime()); //$NON-NLS-1$
srcFile = webBrowser.saveOriginalDocument(tmpDirS + ORIG_HTML_FILE);
- liveFile = webBrowser
- .saveDocumentAsHTMLFile(tmpDirS + IE_HTML_FILE);
+ liveFile = webBrowser.saveDocumentAsHTMLFile(tmpDirS + IE_HTML_FILE);
// for srcViewer
webBrowser.saveOriginalDocument(tmpDirS + HTML_SOURCE_FILE);
if (PERFORMANCE_DEBUG)
- System.out.println("save documents\t" + (new Date()).getTime());
+ System.out.println("save documents\t" + (new Date()).getTime()); //$NON-NLS-1$
Vector<Html2ViewMapData> html2ViewMapV = new Vector<Html2ViewMapData>();
IHTMLParser htmlParser = HTMLParserFactory.createHTMLParser();
HtmlErrorLogListener errorLogListener = new HtmlErrorLogListener();
htmlParser.addErrorLogListener(errorLogListener);
- String targetFileName = tmpDirS + MAPPED_HTML_FILE_PRE + frameId
- + ".html"; //$NON-NLS-1$
+ String targetFileName = tmpDirS + MAPPED_HTML_FILE_PRE + frameId + ".html"; //$NON-NLS-1$
boolean isIEhtml = false;
if (EvaluationUtil.isOriginalDOM()) {
- html2ViewMapV = Html2ViewMapMaker.makeMap(ORIG_HTML_FILE,
- MAPPED_HTML_FILE_PRE + frameId + ".html", tmpDirS); //$NON-NLS-1$
+ html2ViewMapV = Html2ViewMapMaker.makeMap(ORIG_HTML_FILE, MAPPED_HTML_FILE_PRE + frameId + ".html", //$NON-NLS-1$
+ tmpDirS);
// decode miss
if (html2ViewMapV.size() == 0) {
isIEhtml = true;
}
if (PERFORMANCE_DEBUG)
- System.out
- .println("map finish\t" + (new Date()).getTime());
+ System.out.println("map finish\t" + (new Date()).getTime()); //$NON-NLS-1$
} else {
isIEhtml = true;
}
@@ -139,14 +141,11 @@
ieDom = webBrowser.getLiveDocument();
// TODO replace with DomByCom (need clone/write support)
- IHTMLParser tmpHtmlParser = HTMLParserFactory
- .createHTMLParser();
- tmpHtmlParser
- .parse(new FileInputStream(tmpDirS + IE_HTML_FILE));
+ IHTMLParser tmpHtmlParser = HTMLParserFactory.createHTMLParser();
+ tmpHtmlParser.parse(new FileInputStream(tmpDirS + IE_HTML_FILE));
document = tmpHtmlParser.getDocument();
- tmpHtmlParser.parse(new FileInputStream(tmpDirS
- + ORIG_HTML_FILE));
+ tmpHtmlParser.parse(new FileInputStream(tmpDirS + ORIG_HTML_FILE));
originalDocument = tmpHtmlParser.getDocument();
targetFile = liveFile;
@@ -159,9 +158,11 @@
targetFile = srcFile;
}
+
+ isHTML5 = DocumentTypeUtil.isOriginalHTML5(originalDocument.getDoctype());
+
if (PERFORMANCE_DEBUG)
- System.out
- .println("parse documents\t" + (new Date()).getTime());
+ System.out.println("parse documents\t" + (new Date()).getTime()); //$NON-NLS-1$
// System.out.println(document+" "+ _originalDom+" "+ ieDom);
@@ -185,6 +186,7 @@
engine.setTargetUrl(targetUrl);
engine.setDocument(document);
engine.setHtml2viewMapV(html2ViewMapV);
+ engine.setHTML5(isHTML5);
// TODO invisibleElements
// HashSet invisibleIdSet = new HashSet();
@@ -198,16 +200,15 @@
engine.setInvisibleIdSet(new HashSet<String>());
if (PERFORMANCE_DEBUG)
- System.out.println("setInvisibleIdSet\t"
- + (new Date()).getTime());
+ System.out.println("setInvisibleIdSet\t" + (new Date()).getTime()); //$NON-NLS-1$
engine.setPageData(pageData);
if (PERFORMANCE_DEBUG)
- System.out.println("setPageData\t" + (new Date()).getTime());
+ System.out.println("setPageData\t" + (new Date()).getTime()); //$NON-NLS-1$
engine.visualize();
if (PERFORMANCE_DEBUG)
- System.out.println("do vizualize\t" + (new Date()).getTime());
+ System.out.println("do vizualize\t" + (new Date()).getTime()); //$NON-NLS-1$
maxReachingTime = engine.getMaxTime();
setInfoMessage(getMaxReachingTime());
@@ -232,72 +233,86 @@
isDBCS = true;
}
- HtmlEvalUtil edu = new HtmlEvalUtil(document, resultDocument,
- targetUrl, mapData.getOrig2idMap(), originalDocument,
- ieDom, pageData, isDBCS, isIEhtml);
+ HtmlEvalUtil edu = new HtmlEvalUtil(document, resultDocument, targetUrl, mapData.getOrig2idMap(),
+ originalDocument, ieDom, pageData, isDBCS, isIEhtml);
edu.setLiveFile(liveFile);
edu.setSrcFile(srcFile);
edu.setTargetFile(targetFile);
if (PERFORMANCE_DEBUG)
- System.out.println("HtmlEvalUtil\t" + (new Date()).getTime());
+ System.out.println("HtmlEvalUtil\t" + (new Date()).getTime()); //$NON-NLS-1$
- ArrayList<IProblemItem> tmpResults = new ArrayList<IProblemItem>(
- 1024);
+ ArrayList<IProblemItem> tmpResults = new ArrayList<IProblemItem>(1024);
// TODO re-impl BrowserAndStyleInfo
//
// BrowserAndStyleInfo data =
// webBrowser.getBrowserAndStyleInfo();
- IHtmlCheckTarget checkTarget = CheckTargetFactory
- .createHtmlCheckTarget(document, webBrowser.getURL(), null,
- edu);
+ IHtmlCheckTarget checkTarget = CheckTargetFactory.createHtmlCheckTarget(document, webBrowser.getURL(), null,
+ edu);
for (int i = 0; i < checkers.length; i++) {
if (checkers[i] instanceof IHtmlChecker) {
- tmpResults.addAll(((IHtmlChecker) checkers[i])
- .checkHtml(checkTarget));
- } else if (checkers[i].isTargetFormat(webBrowser
- .getCurrentMIMEType()) && checkers[i].isEnabled()) {
+ tmpResults.addAll(((IHtmlChecker) checkers[i]).checkHtml(checkTarget));
+ } else if (checkers[i].isTargetFormat(webBrowser.getCurrentMIMEType()) && checkers[i].isEnabled()) {
tmpResults.addAll(checkers[i].check(checkTarget));
}
}
if (PERFORMANCE_DEBUG)
- System.out.println("checked\t" + (new Date()).getTime());
+ System.out.println("checked\t" + (new Date()).getTime()); //$NON-NLS-1$
+ boolean hasBOM = false;
+ Vector<IProblemItem> tmpV = errorLogListener.getHtmlProblemVector();
+ if (isHTML5) {
+ int bomError = -1;
+ for (int i = 0; i < tmpV.size(); i++) {
+ IProblemItem item = tmpV.get(i);
+ if (item.getId().equals("C_1000.8")) { //$NON-NLS-1$
+ bomError = i;
+ }
+ }
+ if (bomError > -1) {
+ tmpV.remove(bomError);
+ hasBOM = true;
+ }
+ }
+
+ int charsetProblem = -1;
// TODO support blind biz -> visitor
for (int i = 0; i < tmpResults.size(); i++) {
IProblemItem tmpItem = tmpResults.get(i);
- HighlightTargetNodeInfo nodeInfo = tmpItem
- .getHighlightTargetNodeInfo();
+ HighlightTargetNodeInfo nodeInfo = tmpItem.getHighlightTargetNodeInfo();
if (nodeInfo != null) {
if (tmpItem.getHighlightTargetIds().length == 0) {
- tmpItem.setHighlightTargetIds(nodeInfo
- .getHighlightTargetIds(mapData.getOrig2idMap()));
+ tmpItem.setHighlightTargetIds(nodeInfo.getHighlightTargetIds(mapData.getOrig2idMap()));
}
if (EvaluationUtil.isOriginalDOM()) {
- tmpItem.setHighlightTargetSourceInfo(nodeInfo
- .getHighlightTargetSourceInfo(html2ViewMapV));
+ tmpItem.setHighlightTargetSourceInfo(nodeInfo.getHighlightTargetSourceInfo(html2ViewMapV));
}
}
+ if (hasBOM && tmpItem.getId().equals("C_88.1")) { //$NON-NLS-1$
+ hasBOM = false; // do not check from here
+ charsetProblem = i;
+ }
+ }
+ if (charsetProblem > -1) {
+ tmpResults.remove(charsetProblem);
}
checkResult.addProblemItems(tmpResults);
- checkResult
- .addProblemItems(errorLogListener.getHtmlProblemVector());
+
+ checkResult.addProblemItems(tmpV);
checkResult.accept(pageData);
if (PERFORMANCE_DEBUG)
- System.out.println("process problems\t"
- + (new Date()).getTime());
+ System.out.println("process problems\t" + (new Date()).getTime()); //$NON-NLS-1$
// TODO move (add Icons into result doc) here
if (resultFile != null) {
resultFile.delete();
}
- resultFile = BlindVizResourceUtil.createTempFile(
- IVisualizationConst.PREFIX_RESULT,
+ resultFile = BlindVizResourceUtil.createTempFile(IVisualizationConst.PREFIX_RESULT,
IVisualizationConst.SUFFIX_HTML);
// File tmpFile = BlindVizEnginePlugin.createTempFile("tmp",
// IVisualizationConst.SUFFIX_HTML);
@@ -306,15 +321,43 @@
// HtmlParserUtil.saveHtmlDocumentAsUTF8(
// (SHDocument) resultDocument, tmpFile, resultFile);
DomPrintUtil dpu = new DomPrintUtil(resultDocument);
+ dpu.setHTML5(isHTML5);
dpu.writeToFile(resultFile);
} catch (Exception e3) {
- DebugPrintUtil
- .devOrDebugPrintln("error: saveHtmlDocumentAsUTF8"); //$NON-NLS-1$
+ DebugPrintUtil.devOrDebugPrintln("error: saveHtmlDocumentAsUTF8"); //$NON-NLS-1$
+ }
+
+ try {
+ Element[] iframes = getElementsArray(ieDom, "iframe"); //$NON-NLS-1$
+ HashSet<String> urlS = new HashSet<String>();
+ if (iframes.length > 0) {
+ for (Element e : iframes) {
+ String src = e.getAttribute("src"); //$NON-NLS-1$
+ if (src != null) {
+ if (src.startsWith("http")) { //$NON-NLS-1$
+ urlS.add(src);
+ } else {
+ System.err.println(src);
+ }
+ }
+ }
+ if (!urlS.isEmpty() && MessageDialog.openConfirm(PlatformUIUtil.getShell(),
+ Messages.BlindVisualizerHtml_15, Messages.BlindVisualizerHtml_16)) {
+ IEditorPart currentE = PlatformUIUtil.getActiveEditor();
+ for (String s : urlS) {
+ System.out.println(s);
+ ModelServiceUtils.launch(s);
+ }
+ PlatformUIUtil.getActivePage().activate(currentE);
+ }
+ }
+ } catch (Exception e2) {
+
}
if (PERFORMANCE_DEBUG)
- System.out.println("vizualize end\t" + (new Date()).getTime());
+ System.out.println("vizualize end\t" + (new Date()).getTime()); //$NON-NLS-1$
if (hasFrame) {
pageData.setHasFrame(true);
return FRAME;
@@ -336,25 +379,23 @@
@SuppressWarnings("nls")
private boolean hasFrameset(Document document, IWebBrowserACTF webBrowser) {
- NodeList framesetNl = document.getElementsByTagName("frameset");
+ NodeList framesetNl = document.getElementsByTagName("frameset"); //$NON-NLS-1$
if (framesetNl.getLength() > 0) {
- NodeList frameList = document.getElementsByTagName("frame");
+ NodeList frameList = document.getElementsByTagName("frame"); //$NON-NLS-1$
- String sFileName = BlindVizResourceUtil.getTempDirectory()
- + "frameList.html";
+ String sFileName = BlindVizResourceUtil.getTempDirectory() + "frameList.html"; //$NON-NLS-1$
String base = webBrowser.getURL();
try {
URL baseURL = new URL(base);
- NodeList baseNL = document.getElementsByTagName("base");
+ NodeList baseNL = document.getElementsByTagName("base"); //$NON-NLS-1$
if (baseNL.getLength() > 0) {
- Element baseE = (Element) baseNL
- .item(baseNL.getLength() - 1);
- String baseUrlS = baseE.getAttribute("href");
+ Element baseE = (Element) baseNL.item(baseNL.getLength() - 1);
+ String baseUrlS = baseE.getAttribute("href"); //$NON-NLS-1$
if (baseUrlS.length() > 0) {
URL tmpUrl = new URL(baseURL, baseUrlS);
base = tmpUrl.toString();
@@ -366,46 +407,40 @@
PrintWriter fileOutput;
try {
- fileOutput = new PrintWriter(new OutputStreamWriter(
- new FileOutputStream(sFileName), "UTF-8"));
+ fileOutput = new PrintWriter(new OutputStreamWriter(new FileOutputStream(sFileName), "UTF-8")); //$NON-NLS-1$
} catch (IOException e) {
// e.printStackTrace();
// TODO
return true;
}
- fileOutput.write("<html>");
+ fileOutput.write("<html>"); //$NON-NLS-1$
// " lang=\""+lang+\">"); //use var
- fileOutput.write("<head>" + FileUtils.LINE_SEP);
- fileOutput
- .write("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" >"
- + FileUtils.LINE_SEP);
- fileOutput.write("<base href=\"" + base + "\"></head>"
- + FileUtils.LINE_SEP + "<body><P>");
- fileOutput.write("This page contains of "); // var
+ fileOutput.write("<head>" + FileUtils.LINE_SEP); //$NON-NLS-1$
+ fileOutput.write(
+ "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" >" + FileUtils.LINE_SEP); //$NON-NLS-1$
+ fileOutput.write("<base href=\"" + base + "\"></head>" + FileUtils.LINE_SEP + "<body><P>"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ fileOutput.write(Messages.BlindVisualizerHtml_1); // var
fileOutput.write(String.valueOf(frameList.getLength()));
- fileOutput.write(" frames."); // var
- fileOutput.write("<br>" + FileUtils.LINE_SEP);
- fileOutput.write("Please select one of them."); // var
- fileOutput.write("</P>" + FileUtils.LINE_SEP + "<ol>"
- + FileUtils.LINE_SEP);
+ fileOutput.write(Messages.BlindVisualizerHtml_2); // var
+ fileOutput.write("<br>" + FileUtils.LINE_SEP); //$NON-NLS-1$
+ fileOutput.write(Messages.BlindVisualizerHtml_0); // var
+ fileOutput.write("</P>" + FileUtils.LINE_SEP + "<ol>" + FileUtils.LINE_SEP); //$NON-NLS-1$ //$NON-NLS-2$
String strTitle, strName;
for (int i = 0; i < frameList.getLength(); i++) {
Element frameEl = (Element) frameList.item(i);
- strTitle = frameEl.getAttribute("title");
- strName = frameEl.getAttribute("name");
- if (strTitle.equals(""))
- strTitle.equals("none");
- if (strName.equals(""))
- strName.equals("none");
- fileOutput.write("<li><a href=\"" + frameEl.getAttribute("src")
- + "\">Title: \"" + strTitle + "\".<BR> Name: \""
- + strName + "\".<BR> src: \""
- + frameEl.getAttribute("src") + "\".</a>"
+ strTitle = frameEl.getAttribute("title"); //$NON-NLS-1$
+ strName = frameEl.getAttribute("name"); //$NON-NLS-1$
+ if (strTitle.equals("")) //$NON-NLS-1$
+ strTitle.equals("none"); //$NON-NLS-1$
+ if (strName.equals("")) //$NON-NLS-1$
+ strName.equals("none"); //$NON-NLS-1$
+ fileOutput.write("<li><a href=\"" + frameEl.getAttribute("src") + "\">Title: \"" + strTitle //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + "\".<BR> Name: \"" + strName + "\".<BR> src: \"" + frameEl.getAttribute("src") + "\".</a>" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+ FileUtils.LINE_SEP);
}
- fileOutput.write("</ol></body></html>");
+ fileOutput.write("</ol></body></html>"); //$NON-NLS-1$
fileOutput.flush();
fileOutput.close();
@@ -418,4 +453,14 @@
}
}
+ private Element[] getElementsArray(Document target, String tagName) {
+ NodeList tmpNL = target.getElementsByTagName(tagName);
+ int length = tmpNL.getLength();
+ Element[] result = new Element[length];
+ for (int i = 0; i < length; i++) {
+ result[i] = (Element) tmpNL.item(i);
+ }
+ return (result);
+ }
+
}
diff --git a/plugins/org.eclipse.actf.visualization.blind.odfbyhtml/src/org/eclipse/actf/visualization/blind/odfbyhtml/BlindVisualizerOdfByHtml.java b/plugins/org.eclipse.actf.visualization.blind.odfbyhtml/src/org/eclipse/actf/visualization/blind/odfbyhtml/BlindVisualizerOdfByHtml.java
index 45bf4db..ae2885f 100644
--- a/plugins/org.eclipse.actf.visualization.blind.odfbyhtml/src/org/eclipse/actf/visualization/blind/odfbyhtml/BlindVisualizerOdfByHtml.java
+++ b/plugins/org.eclipse.actf.visualization.blind.odfbyhtml/src/org/eclipse/actf/visualization/blind/odfbyhtml/BlindVisualizerOdfByHtml.java
@@ -1,228 +1,221 @@
-/*******************************************************************************
- * Copyright (c) 2008 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Kentarou FUKUDA - initial API and implementation
- *******************************************************************************/
-package org.eclipse.actf.visualization.blind.odfbyhtml;
-
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Vector;
-
-import org.eclipse.actf.model.dom.html.HTMLParserFactory;
-import org.eclipse.actf.model.dom.html.IHTMLParser;
-import org.eclipse.actf.model.ui.IModelService;
-import org.eclipse.actf.util.FileUtils;
-import org.eclipse.actf.util.dom.DomPrintUtil;
-import org.eclipse.actf.util.logging.DebugPrintUtil;
-import org.eclipse.actf.visualization.IVisualizationConst;
-import org.eclipse.actf.visualization.blind.BlindVisualizerBase;
-import org.eclipse.actf.visualization.blind.IBlindVisualizer;
-import org.eclipse.actf.visualization.blind.ui.internal.Messages;
-import org.eclipse.actf.visualization.engines.blind.BlindVizResourceUtil;
-import org.eclipse.actf.visualization.engines.blind.eval.EvaluationResultBlind;
-import org.eclipse.actf.visualization.engines.blind.html.IVisualizeMapData;
-import org.eclipse.actf.visualization.engines.blind.html.VisualizeEngine;
-import org.eclipse.actf.visualization.engines.blind.html.util.HtmlErrorLogListener;
-import org.eclipse.actf.visualization.engines.blind.html.util.VisualizeReportUtil;
-import org.eclipse.actf.visualization.eval.CheckTargetFactory;
-import org.eclipse.actf.visualization.eval.EvaluationUtil;
-import org.eclipse.actf.visualization.eval.ICheckTarget;
-import org.eclipse.actf.visualization.eval.IChecker;
-import org.eclipse.actf.visualization.eval.guideline.GuidelineHolder;
-import org.eclipse.actf.visualization.eval.html.statistics.PageData;
-import org.eclipse.actf.visualization.eval.problem.HighlightTargetNodeInfo;
-import org.eclipse.actf.visualization.eval.problem.IProblemItem;
-import org.eclipse.actf.visualization.eval.problem.ProblemItemImpl;
-import org.eclipse.actf.visualization.util.html2view.Html2ViewMapData;
-import org.eclipse.actf.visualization.util.html2view.Html2ViewMapMaker;
-import org.w3c.dom.Document;
-
-@SuppressWarnings("nls")
-public class BlindVisualizerOdfByHtml extends BlindVisualizerBase implements
- IBlindVisualizer {
-
- private final String ODF_HTML_FILE_NAME = "ODF.html";
-
- private final String odf_html_fileS = tmpDirS + ODF_HTML_FILE_NAME;
-
- private final String NO_ALT_IMAGE = "10101";
-
- private static final String MAPPED_HTML_FILE_PRE = "MappedHTML";
-
- private static final String HTML_SOURCE_FILE = "source.html";
-
- public boolean setModelService(IModelService targetModel) {
- if (super.setModelService(targetModel)) {
- if (targetUrl.startsWith("file://")) {
- targetUrl = targetUrl.substring(8);
- }
- targetUrl = targetUrl.replaceAll("%20", " ");
- return true;
- }
- return false;
- }
-
- public int visualize() {
- if (null == modelService) {
- return ERROR;
- }
-
- GuidelineHolder.getInstance().setTargetMimeType(
- modelService.getCurrentMIMEType());
-
- modelService.saveDocumentAsHTMLFile(odf_html_fileS);
-
- checkResult = new EvaluationResultBlind();
-
- try {
-
- FileUtils
- .copyFile(odf_html_fileS, tmpDirS + HTML_SOURCE_FILE, true);
-
- Vector<Html2ViewMapData> html2ViewMapV = new Vector<Html2ViewMapData>();
-
- IHTMLParser htmlParser = HTMLParserFactory.createHTMLParser();
- HtmlErrorLogListener errorLogListener = new HtmlErrorLogListener();
- htmlParser.addErrorLogListener(errorLogListener);
- String targetFile = tmpDirS + MAPPED_HTML_FILE_PRE + ".html";
-
- html2ViewMapV = Html2ViewMapMaker.makeMap(ODF_HTML_FILE_NAME,
- MAPPED_HTML_FILE_PRE + ".html", tmpDirS);
- if (html2ViewMapV.size() == 0) {
- targetFile = odf_html_fileS;
- }
-
- IHTMLParser tmpHtmlParser = HTMLParserFactory.createHTMLParser();
- tmpHtmlParser.parse(new FileInputStream(targetFile));
- Document document = tmpHtmlParser.getDocument();
-
- if (document == null) {
- return ERROR;
- }
-
- setStatusMessage(Messages.BlindView_Now_processing); //
-
- pageData = new PageData();
-
- VisualizeEngine engine = new VisualizeEngine();
- engine.setBaseUrl(""); //$NON-NLS-1$
- // TODO "\"->"/" windows
- // engine.setBaseUrl("file:///"+RESULT_DIR);
-
- engine.setTargetUrl(targetUrl);
- engine.setDocument(document);
- engine.setHtml2viewMapV(html2ViewMapV);
- engine.setInvisibleIdSet(new HashSet<String>());
- engine.setPageData(pageData);
- engine.visualize();
-
- maxReachingTime = engine.getMaxTime();
- setInfoMessage(getMaxReachingTime());
-
- resultDocument = engine.getResult();
- checkResult.setProblemList(engine.getProbelems());
- checkResult.setTargetUrl(targetUrl);
-
- if(variantFile!=null){
- variantFile.delete();
- }
- variantFile = engine.getVariantFile();
- checkResult.addAssociateFile(variantFile);
-
- IVisualizeMapData mapData = engine.getVisualizeMapData();
-
- checkResult.setSourceFile(null);
-
- ArrayList<IProblemItem> tmpResults = new ArrayList<IProblemItem>(
- 1024);
-
- Document odfDoc = modelService.getDocument();
- ICheckTarget checkTarget = CheckTargetFactory.createCheckTarget(
- odfDoc, modelService.getURL());
- checkTarget.setAdditionalDocument("html", document);
- IChecker[] checkers = EvaluationUtil.getCheckers();
- for (int i = 0; i < checkers.length; i++) {
- // TODO mimetype -> ???
- if (checkers[i].isTargetFormat(modelService
- .getCurrentMIMEType())
- && checkers[i].isEnabled()) {
- long startTime = System.currentTimeMillis();
- tmpResults.addAll(checkers[i].check(checkTarget));
- DebugPrintUtil.devOrDebugPrintln(System.currentTimeMillis()
- - startTime);
- }
- }
-
- visualizeError(resultDocument, tmpResults);
-
- // TODO support blind biz -> visitor
- for (int i = 0; i < tmpResults.size(); i++) {
- IProblemItem tmpItem = tmpResults.get(i);
- HighlightTargetNodeInfo nodeInfo = tmpItem
- .getHighlightTargetNodeInfo();
- if (nodeInfo != null) {
- tmpItem.setHighlightTargetIds(nodeInfo
- .getHighlightTargetIds(mapData.getOrig2idMap()));
- }
- }
- checkResult.addProblemItems(tmpResults);
- checkResult.accept(pageData);
-
- // TODO move (add Icons into result doc) here
-
- if(resultFile!=null){
- resultFile.delete();
- }
- resultFile = BlindVizResourceUtil.createTempFile(
- IVisualizationConst.PREFIX_RESULT,
- IVisualizationConst.SUFFIX_HTML);
-
- try {
- // PrintWriter pw = new PrintWriter(new OutputStreamWriter(
- // new FileOutputStream(resultFile), "UTF-8"));
- // ((IHTMLDocumentACTF) resultDocument).printAsSGML(pw, true);
- // pw.flush();
- // pw.close();
- DomPrintUtil dpu = new DomPrintUtil(resultDocument);
- dpu.writeToFile(resultFile);
- } catch (Exception e3) {
- e3.printStackTrace();
- }
- } catch (Exception e) {
- setStatusMessage(Messages.Visualization_Error);
- e.printStackTrace();
- return ERROR;
- }
-
- return 0;
- }
-
- public boolean isTarget(IModelService modelService) {
- return (null != modelService && modelService.getCurrentMIMEType()
- .startsWith("application/vnd.oasis.opendocument."));
- }
-
- private void visualizeError(Document resultDoc, List<IProblemItem> problems) {
-
- int size = problems.size();
-
- for (int i = 0; i < size; i++) {
- Object obj = problems.get(i);
- if (obj instanceof ProblemItemImpl) {
- ProblemItemImpl prob = (ProblemItemImpl) obj;
- if (prob.getId().equals("O_" + NO_ALT_IMAGE)) {
- VisualizeReportUtil.visualizeError(resultDoc, prob);
- }
- }
- }
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2008, 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.actf.visualization.blind.odfbyhtml;
+
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.actf.model.dom.html.DocumentTypeUtil;
+import org.eclipse.actf.model.dom.html.HTMLParserFactory;
+import org.eclipse.actf.model.dom.html.IHTMLParser;
+import org.eclipse.actf.model.ui.IModelService;
+import org.eclipse.actf.util.FileUtils;
+import org.eclipse.actf.util.dom.DomPrintUtil;
+import org.eclipse.actf.util.logging.DebugPrintUtil;
+import org.eclipse.actf.visualization.IVisualizationConst;
+import org.eclipse.actf.visualization.blind.BlindVisualizerBase;
+import org.eclipse.actf.visualization.blind.IBlindVisualizer;
+import org.eclipse.actf.visualization.blind.ui.internal.Messages;
+import org.eclipse.actf.visualization.engines.blind.BlindVizResourceUtil;
+import org.eclipse.actf.visualization.engines.blind.eval.EvaluationResultBlind;
+import org.eclipse.actf.visualization.engines.blind.html.IVisualizeMapData;
+import org.eclipse.actf.visualization.engines.blind.html.VisualizeEngine;
+import org.eclipse.actf.visualization.engines.blind.html.util.VisualizeReportUtil;
+import org.eclipse.actf.visualization.eval.CheckTargetFactory;
+import org.eclipse.actf.visualization.eval.EvaluationUtil;
+import org.eclipse.actf.visualization.eval.ICheckTarget;
+import org.eclipse.actf.visualization.eval.IChecker;
+import org.eclipse.actf.visualization.eval.guideline.GuidelineHolder;
+import org.eclipse.actf.visualization.eval.html.statistics.PageData;
+import org.eclipse.actf.visualization.eval.problem.HighlightTargetNodeInfo;
+import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.actf.visualization.eval.problem.ProblemItemImpl;
+import org.eclipse.actf.visualization.util.html2view.Html2ViewMapData;
+import org.eclipse.actf.visualization.util.html2view.Html2ViewMapMaker;
+import org.w3c.dom.Document;
+
+@SuppressWarnings("nls")
+public class BlindVisualizerOdfByHtml extends BlindVisualizerBase implements IBlindVisualizer {
+
+ private final String ODF_HTML_FILE_NAME = "ODF.html";
+
+ private final String odf_html_fileS = tmpDirS + ODF_HTML_FILE_NAME;
+
+ private final String NO_ALT_IMAGE = "10101";
+
+ private static final String MAPPED_HTML_FILE_PRE = "MappedHTML";
+
+ private static final String HTML_SOURCE_FILE = "source.html";
+
+ public boolean setModelService(IModelService targetModel) {
+ if (super.setModelService(targetModel)) {
+ if (targetUrl.startsWith("file://")) {
+ targetUrl = targetUrl.substring(8);
+ }
+ targetUrl = targetUrl.replaceAll("%20", " ");
+ return true;
+ }
+ return false;
+ }
+
+ public int visualize() {
+ if (null == modelService) {
+ return ERROR;
+ }
+
+ GuidelineHolder.getInstance().setTargetMimeType(modelService.getCurrentMIMEType());
+
+ modelService.saveDocumentAsHTMLFile(odf_html_fileS);
+
+ checkResult = new EvaluationResultBlind();
+
+ try {
+
+ FileUtils.copyFile(odf_html_fileS, tmpDirS + HTML_SOURCE_FILE, true);
+
+ Vector<Html2ViewMapData> html2ViewMapV = new Vector<Html2ViewMapData>();
+
+ // IHTMLParser htmlParser = HTMLParserFactory.createHTMLParser();
+ // HtmlErrorLogListener errorLogListener = new
+ // HtmlErrorLogListener();
+ // htmlParser.addErrorLogListener(errorLogListener);
+ String targetFile = tmpDirS + MAPPED_HTML_FILE_PRE + ".html";
+
+ html2ViewMapV = Html2ViewMapMaker.makeMap(ODF_HTML_FILE_NAME, MAPPED_HTML_FILE_PRE + ".html", tmpDirS);
+ if (html2ViewMapV.size() == 0) {
+ targetFile = odf_html_fileS;
+ }
+
+ IHTMLParser tmpHtmlParser = HTMLParserFactory.createHTMLParser();
+ tmpHtmlParser.parse(new FileInputStream(targetFile));
+ Document document = tmpHtmlParser.getDocument();
+
+ if (document == null) {
+ return ERROR;
+ }
+
+ boolean isHTML5 = DocumentTypeUtil.isOriginalHTML5(document.getDoctype());
+
+ setStatusMessage(Messages.BlindView_Now_processing); //
+
+ pageData = new PageData();
+
+ VisualizeEngine engine = new VisualizeEngine();
+ engine.setBaseUrl(""); //$NON-NLS-1$
+ // TODO "\"->"/" windows
+ // engine.setBaseUrl("file:///"+RESULT_DIR);
+
+ engine.setTargetUrl(targetUrl);
+ engine.setDocument(document);
+ engine.setHtml2viewMapV(html2ViewMapV);
+ engine.setInvisibleIdSet(new HashSet<String>());
+ engine.setPageData(pageData);
+ engine.setHTML5(isHTML5);
+ engine.visualize();
+
+ maxReachingTime = engine.getMaxTime();
+ setInfoMessage(getMaxReachingTime());
+
+ resultDocument = engine.getResult();
+ checkResult.setProblemList(engine.getProbelems());
+ checkResult.setTargetUrl(targetUrl);
+
+ if (variantFile != null) {
+ variantFile.delete();
+ }
+ variantFile = engine.getVariantFile();
+ checkResult.addAssociateFile(variantFile);
+
+ IVisualizeMapData mapData = engine.getVisualizeMapData();
+
+ checkResult.setSourceFile(null);
+
+ ArrayList<IProblemItem> tmpResults = new ArrayList<IProblemItem>(1024);
+
+ Document odfDoc = modelService.getDocument();
+ ICheckTarget checkTarget = CheckTargetFactory.createCheckTarget(odfDoc, modelService.getURL());
+ checkTarget.setAdditionalDocument("html", document);
+ IChecker[] checkers = EvaluationUtil.getCheckers();
+ for (int i = 0; i < checkers.length; i++) {
+ // TODO mimetype -> ???
+ if (checkers[i].isTargetFormat(modelService.getCurrentMIMEType()) && checkers[i].isEnabled()) {
+ long startTime = System.currentTimeMillis();
+ tmpResults.addAll(checkers[i].check(checkTarget));
+ DebugPrintUtil.devOrDebugPrintln(System.currentTimeMillis() - startTime);
+ }
+ }
+
+ visualizeError(resultDocument, tmpResults);
+
+ // TODO support blind biz -> visitor
+ for (int i = 0; i < tmpResults.size(); i++) {
+ IProblemItem tmpItem = tmpResults.get(i);
+ HighlightTargetNodeInfo nodeInfo = tmpItem.getHighlightTargetNodeInfo();
+ if (nodeInfo != null) {
+ tmpItem.setHighlightTargetIds(nodeInfo.getHighlightTargetIds(mapData.getOrig2idMap()));
+ }
+ }
+ checkResult.addProblemItems(tmpResults);
+ checkResult.accept(pageData);
+
+ // TODO move (add Icons into result doc) here
+
+ if (resultFile != null) {
+ resultFile.delete();
+ }
+ resultFile = BlindVizResourceUtil.createTempFile(IVisualizationConst.PREFIX_RESULT,
+ IVisualizationConst.SUFFIX_HTML);
+
+ try {
+ // PrintWriter pw = new PrintWriter(new OutputStreamWriter(
+ // new FileOutputStream(resultFile), "UTF-8"));
+ // ((IHTMLDocumentACTF) resultDocument).printAsSGML(pw, true);
+ // pw.flush();
+ // pw.close();
+ DomPrintUtil dpu = new DomPrintUtil(resultDocument);
+ dpu.setHTML5(isHTML5);
+ dpu.writeToFile(resultFile);
+ } catch (Exception e3) {
+ e3.printStackTrace();
+ }
+ } catch (Exception e) {
+ setStatusMessage(Messages.Visualization_Error);
+ e.printStackTrace();
+ return ERROR;
+ }
+
+ return 0;
+ }
+
+ public boolean isTarget(IModelService modelService) {
+ return (null != modelService
+ && modelService.getCurrentMIMEType().startsWith("application/vnd.oasis.opendocument."));
+ }
+
+ private void visualizeError(Document resultDoc, List<IProblemItem> problems) {
+
+ int size = problems.size();
+
+ for (int i = 0; i < size; i++) {
+ Object obj = problems.get(i);
+ if (obj instanceof ProblemItemImpl) {
+ ProblemItemImpl prob = (ProblemItemImpl) obj;
+ if (prob.getId().equals("O_" + NO_ALT_IMAGE)) {
+ VisualizeReportUtil.visualizeError(resultDoc, prob);
+ }
+ }
+ }
+ }
+
+}
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java
index f1fbda3..5ff57a8 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/Messages.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,6 +29,11 @@
public static String BlindView_end_saving_file;
public static String BlindView_Visualize_4;
public static String BlindVisualizationAction_0;
+ public static String BlindVisualizerHtml_0;
+ public static String BlindVisualizerHtml_1;
+ public static String BlindVisualizerHtml_15;
+ public static String BlindVisualizerHtml_16;
+ public static String BlindVisualizerHtml_2;
public static String Visualization_Error;
public static String Report;
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java
index cc58e50..301412e 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.java
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/SaveReportBlind.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
@@ -30,8 +30,8 @@
import org.eclipse.actf.visualization.eval.guideline.GuidelineHolder;
import org.eclipse.actf.visualization.eval.guideline.IGuidelineData;
import org.eclipse.actf.visualization.eval.problem.HighlightTargetId;
-import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.eval.problem.IProblemConst;
+import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -50,34 +50,29 @@
private static final String IMG = "img";
private static final String SRC = "src";
- private static final String[] ICON_NAMES = { "Err.png", "Warn.png",
- "Conf.png", "Info.png" };
+ private static final String[] ICON_NAMES = { "Err.png", "Warn.png", "Conf.png", "Info.png" };
// moved from PartRightBlind
// TODO renew
// TODO include only selected guideline/metrics
- public static void saveReport(Document result, IACTFReport checkResult,
- String sFileName, String imageBriefDir, String maxTime,
- PageEvaluation pageEval,
+ public static void saveReport(Document result, IACTFReport checkResult, String sFileName, String imageBriefDir,
+ String maxTime, PageEvaluation pageEval,
// String strUrl,
boolean bAccessory) {
if (null != checkResult && checkResult instanceof IEvaluationResult) {
IEvaluationResult evalResult = (IEvaluationResult) checkResult;
- String saveDir = sFileName.substring(0,
- sFileName.lastIndexOf(File.separator) + 1);
+ String saveDir = sFileName.substring(0, sFileName.lastIndexOf(File.separator) + 1);
String imageDir = saveDir + imageBriefDir;
File fDir = new File(imageDir);
if ((!fDir.isDirectory() || !fDir.canWrite()) && !fDir.mkdirs()) {
System.err.println("can't create image dir:" + imageDir);
}
- String preName = sFileName.substring(
- sFileName.lastIndexOf(File.separator) + 1,
- sFileName.lastIndexOf("."));
+ String preName = sFileName.substring(sFileName.lastIndexOf(File.separator) + 1, sFileName.lastIndexOf("."));
String scriptVariantName = preName + "_variant.js";
String reportImgSaveName = preName + ".png";
@@ -90,23 +85,19 @@
File[] assFiles = evalResult.getAssociateFiles();
for (File target : assFiles) {
- if (target.getName().startsWith("variant")
- && target.getName().endsWith(".js")) {
- FileUtils.copyFile(target,
- imageDir + scriptVariantName, true);
+ if (target.getName().startsWith("variant") && target.getName().endsWith(".js")) {
+ FileUtils.copyFile(target, imageDir + scriptVariantName, true);
variantFileS = target.getName();
} else {
- FileUtils.copyFile(target, imageDir + target.getName(),
- true);
+ FileUtils.copyFile(target, imageDir + target.getName(), true);
}
}
PrintWriter pw;
try {
- pw = new PrintWriter(new OutputStreamWriter(
- new FileOutputStream(imageDir + scriptVariantName,
- true), "UTF-8"));
+ pw = new PrintWriter(
+ new OutputStreamWriter(new FileOutputStream(imageDir + scriptVariantName, true), "UTF-8"));
pw.write("var acc_imageDir = '" + imageBriefDir + "'; ");
pw.flush();
pw.close();
@@ -114,9 +105,7 @@
// e.printStackTrace();
}
- FileUtils.copyFile(
- new File(BlindVizResourceUtil.getTempDirectory(),
- "pagerating.png"),
+ FileUtils.copyFile(new File(BlindVizResourceUtil.getTempDirectory(), "pagerating.png"),
imageDir + reportImgSaveName, true);
}
@@ -155,16 +144,14 @@
Element newEle = result.createElement("script");
StringBuffer buffer = new StringBuffer();
- buffer.append(FileUtils.LINE_SEP
- + "if(navigator.appName.toLowerCase().indexOf(\"microsoft\")>=0){"
+ buffer.append(FileUtils.LINE_SEP + "if(navigator.appName.toLowerCase().indexOf(\"microsoft\")>=0){"
+ FileUtils.LINE_SEP);
buffer.append("jsFile=\"highlight.js\";" + FileUtils.LINE_SEP);
buffer.append("}else{" + FileUtils.LINE_SEP);
- buffer.append("jsFile=\"highlight_moz.js\";"
- + FileUtils.LINE_SEP);
+ buffer.append("jsFile=\"highlight_moz.js\";" + FileUtils.LINE_SEP);
buffer.append("}" + FileUtils.LINE_SEP);
- buffer.append("document.write(\"<script src=\"+acc_imageDir+jsFile+\"></script>\");"
- + FileUtils.LINE_SEP);
+ buffer.append(
+ "document.write(\"<script src=\"+acc_imageDir+jsFile+\"></script>\");" + FileUtils.LINE_SEP);
newEle.appendChild(result.createComment(buffer.toString()));
el.appendChild(newEle);
}
@@ -198,16 +185,14 @@
lastBody.insertBefore(tmpElement, lastBody.getFirstChild());
Element tmpDiv = result.createElement(DIV);
- tmpDiv.setAttribute(STYLE,
- "width: 100%; background-color:white;");
+ tmpDiv.setAttribute(STYLE, "width: 100%; background-color:white;");
tmpElement = result.createElement(DIV);
// tmpElement.setAttribute("style", "float: left; width: 45%;");
// TODO
int count = 0;
- boolean enabledMetrics[] = GuidelineHolder.getInstance()
- .getMatchedMetrics();
+ boolean enabledMetrics[] = GuidelineHolder.getInstance().getMatchedMetrics();
for (int i = 0; i < enabledMetrics.length; i++) {
if (enabledMetrics[i]) {
count++;
@@ -224,8 +209,7 @@
tmpElement = result.createElement(DIV);
// tmpElement.setAttribute("style", "float: right; width:
// 50%;");
- VisualizeReportUtil.appendRatingTableAndTitle(pageEval,
- imageBriefDir, result, tmpElement);
+ VisualizeReportUtil.appendRatingTableAndTitle(pageEval, imageBriefDir, result, tmpElement);
tmpDiv.appendChild(tmpElement);
lastBody.insertBefore(tmpDiv, lastBody.getFirstChild());
@@ -254,32 +238,27 @@
Element trElement = result.createElement(TR);
tableElement.appendChild(trElement);
Element tdElement = result.createElement(TH);
- tdElement.appendChild(result
- .createTextNode(IProblemConst.TITLE_ICON));
+ tdElement.appendChild(result.createTextNode(IProblemConst.TITLE_ICON));
trElement.appendChild(tdElement);
if (EvaluationUtil.isOriginalDOM()) {
tdElement = result.createElement(TH);
- tdElement.appendChild(result
- .createTextNode(IProblemConst.TITLE_LINE));
+ tdElement.appendChild(result.createTextNode(IProblemConst.TITLE_LINE));
trElement.appendChild(tdElement);
}
- IGuidelineData[] guidelineDataArray = GuidelineHolder
- .getInstance().getGuidelineData();
+ IGuidelineData[] guidelineDataArray = GuidelineHolder.getInstance().getGuidelineData();
for (int i = 0; i < guidelineDataArray.length; i++) {
IGuidelineData data = guidelineDataArray[i];
if (data.isMatched()) {
tdElement = result.createElement(TH);
- tdElement.appendChild(result.createTextNode(data
- .getGuidelineName()));
+ tdElement.appendChild(result.createTextNode(data.getGuidelineName()));
trElement.appendChild(tdElement);
}
}
tdElement = result.createElement(TH);
- tdElement.appendChild(result
- .createTextNode(IProblemConst.TITLE_DESCRIPTION));
+ tdElement.appendChild(result.createTextNode(IProblemConst.TITLE_DESCRIPTION));
trElement.appendChild(tdElement);
// int iconId; //TODO
@@ -295,18 +274,15 @@
trElement = result.createElement(TR);
// for highlight(kentarou:031113)
- trElement.setAttribute("onClick",
- "clearTrHighlight();clearHighlight()");
+ trElement.setAttribute("onClick", "clearTrHighlight();clearHighlight()");
if (current.isCanHighlight()) {
- HighlightTargetId[] targets = current
- .getHighlightTargetIds();
+ HighlightTargetId[] targets = current.getHighlightTargetIds();
int length = targets.length;
String strSet = NULL_STRING;
if (length == 1) {
- strSet = "setHighlight(" + targets[0].getStartId()
- + "," + targets[0].getEndId() + ");";
+ strSet = "setHighlight(" + targets[0].getStartId() + "," + targets[0].getEndId() + ");";
} else if (length > 1) {
StringBuffer strStart = new StringBuffer(2048);
StringBuffer strEnd = new StringBuffer(2048);
@@ -316,15 +292,12 @@
strStart.append("," + targets[j].getStartId());
strEnd.append("," + targets[j].getEndId());
}
- strSet = "setHighlight2(new Array("
- + strStart.toString() + "), new Array("
+ strSet = "setHighlight2(new Array(" + strStart.toString() + "), new Array("
+ strEnd.toString() + "));";
}
- trElement.setAttribute("onclick",
- "highlightTr(this);clearHighlight();" + strSet);
- trElement.setAttribute("STYLE",
- "COLOR:blue;TEXT-DECORATION:underline");
+ trElement.setAttribute("onclick", "highlightTr(this);clearHighlight();" + strSet);
+ trElement.setAttribute("STYLE", "COLOR:blue;TEXT-DECORATION:underline");
// (
}
@@ -371,11 +344,9 @@
tdElement = result.createElement(TD);
String sTmp = guidelines[j];
if (sTmp != null && !sTmp.equals(NULL_STRING))
- tdElement.appendChild(result
- .createTextNode(sTmp));
+ tdElement.appendChild(result.createTextNode(sTmp));
else
- tdElement.appendChild(result
- .createTextNode("-"));
+ tdElement.appendChild(result.createTextNode("-"));
trElement.appendChild(tdElement);
}
@@ -404,6 +375,7 @@
// + "saveResultTmp.html", sFileName);
DomPrintUtil dpu = new DomPrintUtil(result);
+ dpu.setHTML5(true); // TODO
try {
dpu.writeToFile(sFileName);
} catch (IOException e) {
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties
index 86e3eb3..f02be56 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.properties
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages.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
@@ -28,3 +28,11 @@
# Others
#
Visualization_Error = Visualization Error
+#
+# BlindVisualizerHTML
+#
+BlindVisualizerHtml_0=Please select one of them.
+BlindVisualizerHtml_1=This page contains of
+BlindVisualizerHtml_15=Please confirm embeded contents
+BlindVisualizerHtml_16=This page includes iframe(s). miChecker will open these iframe(s) in new browser tab(s). Please confirm each pages' accessibility lator.
+BlindVisualizerHtml_2=\ frames.
diff --git a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties
index af50ab0..5950545 100644
--- a/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/messages_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.blind/src/org/eclipse/actf/visualization/blind/ui/internal/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
@@ -27,4 +27,12 @@
#
# Others
#
-Visualization_Error = \u8996\u899a\u5316\u30a8\u30e9\u30fc
\ No newline at end of file
+Visualization_Error = \u8996\u899a\u5316\u30a8\u30e9\u30fc
+#
+# BlindVisualizerHTML
+#
+BlindVisualizerHtml_0=\u5404\u30d5\u30ec\u30fc\u30e0\u3092\u9078\u629e\u3057\u3001\u305d\u308c\u305e\u308c\u306e\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u3092\u691c\u8a3c\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+BlindVisualizerHtml_1=\u3053\u306e\u30da\u30fc\u30b8\u306f
+BlindVisualizerHtml_2=\u500b\u306e\u30d5\u30ec\u30fc\u30e0\u3092\u542b\u3093\u3067\u3044\u307e\u3059\u3002
+BlindVisualizerHtml_15=\u57cb\u3081\u8fbc\u307f\u30b3\u30f3\u30c6\u30f3\u30c4(iframe)\u306e\u78ba\u8a8d
+BlindVisualizerHtml_16=\u3053\u306e\u30da\u30fc\u30b8\u306fiframe\u3092\u7528\u3044\u3066\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u57cb\u3081\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\u3002 \u305d\u308c\u305e\u308c\u306e\u57cb\u3081\u8fbc\u307f\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u65b0\u3057\u3044\u30bf\u30d6\u3067\u958b\u304d\u307e\u3059\u306e\u3067\u3001\u305d\u308c\u305e\u308c\u306e\u30a2\u30af\u30bb\u30b7\u30d3\u30ea\u30c6\u30a3\u3092\u691c\u8a3c\u3057\u3066\u304f\u3060\u3055\u3044\u3002
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 371e4a7..1655349 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2008 IBM Corporation and Others
+ * Copyright (c) 2003, 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
@@ -93,6 +93,8 @@
private boolean servletMode = false; // for future use
+ private boolean isHTML5 = false;
+
private int iMaxTime;
private int iMaxTimeLeaf;
@@ -158,21 +160,18 @@
DocumentCleaner.removeDisplayNone(document);
if (DEBUG)
- DebugPrintUtil.debugPrintln("remove display none\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("remove display none\t" + (new Date()).getTime());
orig = document;
result = (Document) document.cloneNode(true);
if (DEBUG)
- DebugPrintUtil.debugPrintln("clone node\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("clone node\t" + (new Date()).getTime());
jwatc.setDocument(result);
if (DEBUG)
- DebugPrintUtil
- .debugPrintln("jwatc\t" + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("jwatc\t" + (new Date()).getTime());
pageData = new PageData();
mapData = new VisualizeMapDataImpl();
@@ -180,7 +179,7 @@
VisualizeMapUtil.createNode2NodeMap(document, result, mapData);
if (DEBUG)
- DebugPrintUtil.debugPrintln("create node2node map\t"
+ DebugPrintUtil.debugPrintln("create node2node map\t" //$NON-NLS-1$
+ (new Date()).getTime());
}
@@ -214,44 +213,39 @@
problems = new Vector<IProblemItem>();
allPc = jwatc.getPacketCollection();
- DebugPrintUtil.debugPrintln("packet collection\t"
+ DebugPrintUtil.debugPrintln("packet collection\t" //$NON-NLS-1$
+ (new Date()).getTime());
cleanupPacketCollection(allPc);
- DebugPrintUtil.debugPrintln("cleanup packet collection\t"
+ DebugPrintUtil.debugPrintln("cleanup packet collection\t" //$NON-NLS-1$
+ (new Date()).getTime());
ParamBlind curParamBlind = ParamBlind.getInstance();
// get packet and create map and list
- NodeInfoCreator nodeInfoCreator = new NodeInfoCreator(mapData,
- textChecker, problems, invisibleIdSet, curParamBlind);
+ NodeInfoCreator nodeInfoCreator = new NodeInfoCreator(mapData, textChecker, problems, invisibleIdSet,
+ curParamBlind);
- DebugPrintUtil.debugPrintln("Nodeinfo init\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("Nodeinfo init\t" + (new Date()).getTime());
nodeInfoCreator.prepareNodeInfo(allPc);
- DebugPrintUtil.debugPrintln("Nodeinfo prep\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("Nodeinfo prep\t" + (new Date()).getTime());
nodeInfoCreator.createAdditionalNodeInfo(result);
- DebugPrintUtil.debugPrintln("Nodeinfo additional\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("Nodeinfo additional\t" + (new Date()).getTime());
// link analysis preparation
- LinkAnalyzer linkAnalyzer = new LinkAnalyzer(result, allPc,
- mapData, problems, invisibleIdSet, curParamBlind, pageData);
+ LinkAnalyzer linkAnalyzer = new LinkAnalyzer(result, allPc, mapData, problems, invisibleIdSet,
+ curParamBlind, pageData);
- DebugPrintUtil.debugPrintln("link analyzer\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("link analyzer\t" + (new Date()).getTime());
styleInfo = new VisualizeStyleInfo(orig, mapData);
- DebugPrintUtil.debugPrintln("style info\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("style info\t" + (new Date()).getTime());
/*
* rewrite DOM from here
@@ -259,11 +253,9 @@
// insert ID attributes to elements
mapData.makeIdMapping(Html2ViewMapData.ACTF_ID);
- DebugPrintUtil.debugPrintln("id mapping\t"
- + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("id mapping\t" + (new Date()).getTime());
- styleInfo.setImportedCssSet(DocumentCleaner.removeCSS(result,
- targetUrl));
+ styleInfo.setImportedCssSet(DocumentCleaner.removeCSS(result, targetUrl));
// prepare head
if (result.getElementsByTagName("head").getLength() == 0) { //$NON-NLS-1$
@@ -275,31 +267,31 @@
}
// calculate time and set color
- VisualizeColorUtil colorUtil = new VisualizeColorUtil(result,
- mapData, curParamBlind);
+ VisualizeColorUtil colorUtil = new VisualizeColorUtil(result, mapData, curParamBlind, isHTML5);
colorUtil.setColorAll();
- DebugPrintUtil
- .debugPrintln("color\t" + (new Date()).getTime());
+ DebugPrintUtil.debugPrintln("color\t" + (new Date()).getTime()); //$NON-NLS-1$
calMaxTime();
- DebugPrintUtil.debugPrintln("max time\t"
+ DebugPrintUtil.debugPrintln("max time\t" //$NON-NLS-1$
+ (new Date()).getTime());
problems.addAll(linkAnalyzer.skipLinkCheck(iMaxTime, iMaxTimeLeaf));
- DebugPrintUtil.debugPrintln("skiplink check\t"
+ DebugPrintUtil.debugPrintln("skiplink check\t" //$NON-NLS-1$
+ (new Date()).getTime());
replaceImgAndCheck(result, mapData, curParamBlind.oReplaceImage);
- DebugPrintUtil.debugPrintln("image check\t"
+ DebugPrintUtil.debugPrintln("image check\t" //$NON-NLS-1$
+ (new Date()).getTime());
int errorCount = 0;
int missing = 0;
int wrong = 0;
+
+ @SuppressWarnings("unused")
int area = 0;
// remove unnecessary problems
@@ -338,10 +330,9 @@
pageData.setWrongAltNum(wrong);
pageData.setMissingAltNum(missing);
- VisualizeViewUtil
- .visualizeError(result, problems, mapData, baseUrl);
+ VisualizeViewUtil.visualizeError(result, problems, mapData, baseUrl);
- DebugPrintUtil.debugPrintln("error visualization\t"
+ DebugPrintUtil.debugPrintln("error visualization\t" //$NON-NLS-1$
+ (new Date()).getTime());
DocumentCleaner.removeJavaScript(mapData.getNodeInfoList(), result);
@@ -352,22 +343,21 @@
DocumentCleaner.removeBase(result);
DocumentCleaner.removePI(result);
- DebugPrintUtil.debugPrintln("document cleaner\t"
+ DebugPrintUtil.debugPrintln("document cleaner\t" //$NON-NLS-1$
+ (new Date()).getTime());
VisualizationResultCleaner.clean(result, targetUrl);
- DebugPrintUtil.debugPrintln("result cleaner\t"
+ DebugPrintUtil.debugPrintln("result cleaner\t" //$NON-NLS-1$
+ (new Date()).getTime());
// TODO merge with visualizeError
Id2LineViaActfId id2line = null;
if (EvaluationUtil.isOriginalDOM()) {
- id2line = new Id2LineViaActfId(mapData.getId2AccIdMap(),
- html2viewMapV);
+ id2line = new Id2LineViaActfId(mapData.getId2AccIdMap(), html2viewMapV);
}
- DebugPrintUtil.debugPrintln("id2line\t"
+ DebugPrintUtil.debugPrintln("id2line\t" //$NON-NLS-1$
+ (new Date()).getTime());
for (IProblemItem i : problems) {
@@ -379,24 +369,23 @@
}
// merge
- VisualizeStyleInfoManager.getInstance()
- .fireVisualizeStyleInfoUpdate(styleInfo);
+ VisualizeStyleInfoManager.getInstance().fireVisualizeStyleInfoUpdate(styleInfo);
- if (curParamBlind.visualizeMode
- .equals(ParamBlind.BLIND_BROWSER_MODE)) {
+ if (curParamBlind.visualizeMode.equals(ParamBlind.BLIND_BROWSER_MODE)) {
VisualizeViewUtil.returnTextView(result, allPc, baseUrl);
return;
} else {
- variantFile = VisualizeViewUtil.prepareActions(result, mapData,
- baseUrl, servletMode);
+ variantFile = VisualizeViewUtil.prepareActions(result, mapData, baseUrl, servletMode);
+ if (isHTML5) {
+ VisualizeViewUtil.visualizeLandmark(result, baseUrl);
+ }
return;
}
}
}
@SuppressWarnings("nls")
- private void replaceImgAndCheck(Document doc, VisualizeMapDataImpl mapData,
- boolean remove) {
+ private void replaceImgAndCheck(Document doc, VisualizeMapDataImpl mapData, boolean remove) {
NodeList mapList = doc.getElementsByTagName("map");
Map<String, Element> mapMap = new HashMap<String, Element>();
@@ -410,8 +399,7 @@
int size = nl.getLength();
Vector<IProblemItem> problemV = new Vector<IProblemItem>();
- ImgChecker imgChecker = new ImgChecker(mapData, mapMap, textChecker,
- problemV, baseUrl, checkItems);
+ ImgChecker imgChecker = new ImgChecker(mapData, mapMap, textChecker, problemV, baseUrl, checkItems);
pageData.setTotalImageNumber(size);
for (int i = size - 1; i >= 0; i--) {
@@ -462,12 +450,10 @@
div.setAttribute("width", iframe.getAttribute("width"));
div.setAttribute("height", iframe.getAttribute("height"));
if (error) {
- div.appendChild(doc
- .createTextNode("[iframe: (without title)]"));
+ div.appendChild(doc.createTextNode("[iframe: (without title)]"));
div.setAttribute("style", errorStyle);
} else {
- div.appendChild(doc.createTextNode("[iframe: title=\""
- + title + "\"]"));
+ div.appendChild(doc.createTextNode("[iframe: title=\"" + title + "\"]"));
if (title.matches("^[\\s\u3000]*$")) {
div.setAttribute("style", errorStyle);
} else {
@@ -506,8 +492,7 @@
// TODO space separated
input.setAttribute("value", altNode.getNodeValue());
} else {
- BlindProblem prob = new BlindProblem(
- IBlindProblem.NO_ALT_INPUT);
+ BlindProblem prob = new BlindProblem(IBlindProblem.NO_ALT_INPUT);
Integer idObj = mapData.getIdOfNode(input);
if (idObj != null) {
prob.setNode(input, idObj.intValue());
@@ -528,16 +513,13 @@
if (valueS.length() == 0) {
if (typeS.equals("button")) {
// not readable
- prob = new BlindProblem(
- IBlindProblem.NO_VALUE_INPUT_BUTTON);
+ prob = new BlindProblem(IBlindProblem.NO_VALUE_INPUT_BUTTON);
}
} else {
TextCheckResult result = textChecker.checkAlt(valueS);
if (result.equals(TextCheckResult.SPACE_SEPARATED)
- || result
- .equals(TextCheckResult.SPACE_SEPARATED_JP)) {
- prob = new BlindProblem(
- IBlindProblem.SEPARATE_DBCS_INPUT_VALUE, valueS);
+ || result.equals(TextCheckResult.SPACE_SEPARATED_JP)) {
+ prob = new BlindProblem(IBlindProblem.SEPARATE_DBCS_INPUT_VALUE, valueS);
}
}
if (prob != null) {
@@ -566,8 +548,7 @@
fIsActivating = true;
if (jwatc == null) {
try {
- jwatc = VoiceBrowserControllerFactory
- .createVoiceBrowserController();
+ jwatc = VoiceBrowserControllerFactory.createVoiceBrowserController();
} catch (Exception e) {
e.printStackTrace();
}
@@ -626,8 +607,7 @@
iMaxTime = time;
// TODO other sequencial elements (like list)
- if (curInfo.isBlockElement() && !curInfo.isSequence()
- && time > iMaxTimeLeaf) {
+ if (curInfo.isBlockElement() && !curInfo.isSequence() && time > iMaxTimeLeaf) {
iMaxTimeLeaf = time;
}
@@ -689,9 +669,19 @@
}
/**
+ * Set true if the target document is HTML5.
+ *
+ * @param isHTML5
+ */
+ public void setHTML5(boolean isHTML5) {
+ this.isHTML5 = isHTML5;
+ }
+
+ /**
* @return variant for visualization as {@link File}
*/
public File getVariantFile() {
return variantFile;
}
+
}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java
index 755898e..ea5f256 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/engines/blind/html/util/HtmlErrorLogListener.java
@@ -1,165 +1,180 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2012 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
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Kentarou FUKUDA - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.actf.visualization.engines.blind.html.util;
-
-import java.util.Vector;
-
-import org.eclipse.actf.model.dom.html.IErrorLogListener;
-import org.eclipse.actf.model.dom.html.IParserError;
-import org.eclipse.actf.visualization.eval.EvaluationUtil;
-import org.eclipse.actf.visualization.eval.problem.IProblemItem;
-import org.eclipse.actf.visualization.eval.problem.ProblemItemImpl;
-import org.eclipse.actf.visualization.util.html2view.Html2ViewMapData;
-
-/**
- * Implementation of {@link IErrorLogListener} to correct HTML parse errors.
- */
-public class HtmlErrorLogListener implements IErrorLogListener {
-
- // TODO move to eval plugin (eval.html) (& move IErrorLogListener to
- // common/util)
-
- private boolean isNoDoctype = false;
-
- private boolean isNonPublic = false;
-
- private boolean isInvalidDoctype = false;
-
- private Vector<IProblemItem> problemV = new Vector<IProblemItem>();
-
- private String orgDoctype = ""; //$NON-NLS-1$
-
- private boolean flag = true;
-
- /*
- * (non-Javadoc)
- *
- * @see org.eclipse.actf.model.dom.html.IErrorLogListener#errorLog(int,
- * java.lang.String)
- */
- @SuppressWarnings("nls")
- public void errorLog(int arg0, String arg1) {
- if (arg0 != IParserError.ILLEGAL_ATTRIBUTE
- || arg1.indexOf(Html2ViewMapData.ACTF_ID) < 0) {
- // TODO create HTML problems
- switch (arg0) {
- case IParserError.DOCTYPE_MISSED:
- isNoDoctype = true;
- break;
- case IParserError.ILLEGAL_DOCTYPE:
- if (arg1.indexOf("Invalid DOCTYPE declaration.") > -1) {
- isNonPublic = true;
- } else if (arg1
- .matches(".*Instead of \".*\" use \".*\" as a DTD.")) {
- orgDoctype = arg1.substring(arg1.indexOf("\"") + 1);
- orgDoctype = orgDoctype.substring(0, orgDoctype
- .indexOf("\""));
- if (orgDoctype
- .matches("-//W3C//DTD XHTML ((1.0 (Strict|Transitional|Frameset))|1.1|Basic 1.0|Basic 1.1)//EN")) {
- orgDoctype = "";
- } else {
- isInvalidDoctype = true;
- }
- }
- break;
- case IParserError.ILLEGAL_CHILD:
- // TBD "li" case (C_1000.7)
- // System.out.println(arg0+" : "+arg1);
- if (arg1.matches(".*<head.*> must be before <body.*")) {
- addHtmlProblem("C_1000.1", arg1);
- } else if (arg1
- .matches(".*<html.*> is not allowed as a child of <.*")) {
- addHtmlProblem("C_1000.2", arg1);
- } else if (arg1
- .matches(".*<body.*> is not allowed as a child of <.*")) {
- addHtmlProblem("C_1000.3", arg1);
- } else if (arg1
- .matches(".*Order of <html.*>'s children is wrong.*")) {
- addHtmlProblem("C_1000.5", arg1);
- }
- break;
- case IParserError.BOM:
- addHtmlProblem("C_1000.8", "");
- default:
- }
- }
- }
-
- private void addHtmlProblem(String id, String target) {
- IProblemItem tmpCP = new ProblemItemImpl(id);
- int line = -1;
- String tmpS[] = target.split(":"); //$NON-NLS-1$
- if (tmpS.length > 0) {
- try {
- line = Integer.parseInt(tmpS[0].trim());
- } catch (Exception e) {
- }
- }
- if (line > -1) {
- tmpCP.setLine(line);
- }
- problemV.add(tmpCP);
- }
-
- /**
- * @return true if there is no DOCTYPE declaration
- * @see IParserError#DOCTYPE_MISSED
- */
- public boolean isNoDoctypeDeclaration() {
- return (isNoDoctype || isNonPublic || isInvalidDoctype);
- }
-
- /**
- * @return true if the specified DOCTYPE is not public
- */
- public boolean isNonPublicDoctype() {
- return (isNonPublic);
- }
-
- /**
- * @return true if Invalid DOCTYPE declaration error is reported
- * @see IParserError#ILLEGAL_DOCTYPE
- */
- public boolean isInvalidDoctype() {
- return (isInvalidDoctype);
- }
-
- /**
- * Get DOCTYPE declaration that causes the Invalid DOCTYPE declaration error
- *
- * @return DOCTYPE declaration
- */
- public String getDeclaratedDoctype() {
- return (orgDoctype);
- }
-
- /**
- * Get HTML parse errors as {@link Vector} of {@link IProblemItem}
- *
- * @return HTML parse errors
- */
- @SuppressWarnings("nls")
- public Vector<IProblemItem> getHtmlProblemVector() {
- if (flag) {
- // (IE based LIVE DOM)->DOCTYPE was removed by IE
- if (EvaluationUtil.isOriginalDOM() && isNoDoctypeDeclaration()) {
- if (isInvalidDoctype() || isNonPublicDoctype()) {
- problemV.add(new ProblemItemImpl("C_1000.6"));
- } else {
- problemV.add(new ProblemItemImpl("C_1000.7"));
- }
- }
- flag = false;
- }
- return (problemV);
- }
-}
+/*******************************************************************************
+ * Copyright (c) 2004, 2012 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Kentarou FUKUDA - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.actf.visualization.engines.blind.html.util;
+
+import java.util.Vector;
+
+import org.eclipse.actf.model.dom.html.IErrorLogListener;
+import org.eclipse.actf.model.dom.html.IParserError;
+import org.eclipse.actf.visualization.eval.EvaluationUtil;
+import org.eclipse.actf.visualization.eval.problem.IProblemItem;
+import org.eclipse.actf.visualization.eval.problem.ProblemItemImpl;
+import org.eclipse.actf.visualization.util.html2view.Html2ViewMapData;
+
+/**
+ * Implementation of {@link IErrorLogListener} to correct HTML parse errors.
+ */
+public class HtmlErrorLogListener implements IErrorLogListener {
+
+ // TODO move to eval plugin (eval.html) (& move IErrorLogListener to
+ // common/util)
+
+ private boolean isNoDoctype = false;
+
+ private boolean isNonPublic = false;
+
+ private boolean isInvalidDoctype = false;
+
+ private Vector<IProblemItem> problemV = new Vector<IProblemItem>();
+
+ private String orgDoctype = ""; //$NON-NLS-1$
+
+ private boolean flag = true;
+
+ private int doctype_line = -1;
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.actf.model.dom.html.IErrorLogListener#errorLog(int,
+ * java.lang.String)
+ */
+ @SuppressWarnings("nls")
+ public void errorLog(int arg0, String arg1) {
+ if (arg0 != IParserError.ILLEGAL_ATTRIBUTE || arg1.indexOf(Html2ViewMapData.ACTF_ID) < 0) {
+ // TODO create HTML problems
+ switch (arg0) {
+ case IParserError.DOCTYPE_MISSED:
+ isNoDoctype = true;
+ break;
+ case IParserError.ILLEGAL_DOCTYPE:
+ if (arg1.indexOf("Invalid DOCTYPE declaration.") > -1) {
+ isNonPublic = true;
+ } else if (arg1.matches(".*Instead of \".*\" use \".*\" as a DTD.")) {
+ orgDoctype = arg1.substring(arg1.indexOf("\"") + 1);
+ orgDoctype = orgDoctype.substring(0, orgDoctype.indexOf("\""));
+ if (orgDoctype.matches(
+ "-//W3C//DTD XHTML ((1.0 (Strict|Transitional|Frameset))|1.1|Basic 1.0|Basic 1.1)//EN")) {
+ orgDoctype = "";
+ } else {
+ isInvalidDoctype = true;
+ }
+ } else if (arg1.matches(".*Instead of SYSTEM \".*\" use PUBLIC \".*\" as a DTD.")) {
+ orgDoctype = arg1.substring(arg1.indexOf("\"") + 1);
+ orgDoctype = orgDoctype.substring(0, orgDoctype.indexOf("\""));
+ if (orgDoctype.equalsIgnoreCase("about:legacy-compat")) {
+ orgDoctype = "";
+ } else {
+ isInvalidDoctype = true;
+ }
+ }
+ String tmpS[] = arg1.split(":"); //$NON-NLS-1$
+ if (tmpS.length > 0) {
+ try {
+ doctype_line = Integer.parseInt(tmpS[0].trim());
+ } catch (Exception e) {
+ }
+ }
+ break;
+ case IParserError.ILLEGAL_CHILD:
+ // TBD "li" case (C_1000.7)
+ // System.out.println(arg0+" : "+arg1);
+ if (arg1.matches(".*<head.*> must be before <body.*")) {
+ addHtmlProblem("C_1000.1", arg1);
+ } else if (arg1.matches(".*<html.*> is not allowed as a child of <.*")) {
+ addHtmlProblem("C_1000.2", arg1);
+ } else if (arg1.matches(".*<body.*> is not allowed as a child of <.*")) {
+ addHtmlProblem("C_1000.3", arg1);
+ } else if (arg1.matches(".*Order of <html.*>'s children is wrong.*")) {
+ addHtmlProblem("C_1000.5", arg1);
+ }
+ break;
+ case IParserError.BOM:
+ addHtmlProblem("C_1000.8", "");
+ default:
+ }
+ }
+ }
+
+ private void addHtmlProblem(String id, String target) {
+ IProblemItem tmpCP = new ProblemItemImpl(id);
+ int line = -1;
+ String tmpS[] = target.split(":"); //$NON-NLS-1$
+ if (tmpS.length > 0) {
+ try {
+ line = Integer.parseInt(tmpS[0].trim());
+ } catch (Exception e) {
+ }
+ }
+ if (line > -1) {
+ tmpCP.setLine(line);
+ }
+ problemV.add(tmpCP);
+ }
+
+ /**
+ * @return true if there is no DOCTYPE declaration
+ * @see IParserError#DOCTYPE_MISSED
+ */
+ public boolean isNoDoctypeDeclaration() {
+ return (isNoDoctype || isNonPublic || isInvalidDoctype);
+ }
+
+ /**
+ * @return true if the specified DOCTYPE is not public
+ */
+ public boolean isNonPublicDoctype() {
+ return (isNonPublic);
+ }
+
+ /**
+ * @return true if Invalid DOCTYPE declaration error is reported
+ * @see IParserError#ILLEGAL_DOCTYPE
+ */
+ public boolean isInvalidDoctype() {
+ return (isInvalidDoctype);
+ }
+
+ /**
+ * Get DOCTYPE declaration that causes the Invalid DOCTYPE declaration error
+ *
+ * @return DOCTYPE declaration
+ */
+ public String getDeclaratedDoctype() {
+ return (orgDoctype);
+ }
+
+ /**
+ * Get HTML parse errors as {@link Vector} of {@link IProblemItem}
+ *
+ * @return HTML parse errors
+ */
+ @SuppressWarnings("nls")
+ public Vector<IProblemItem> getHtmlProblemVector() {
+ if (flag) {
+ // (IE based LIVE DOM)->DOCTYPE was removed by IE
+ if (EvaluationUtil.isOriginalDOM() && isNoDoctypeDeclaration()) {
+ if (isInvalidDoctype() || isNonPublicDoctype()) {
+ IProblemItem item = new ProblemItemImpl("C_1000.6");
+ if (doctype_line > -1) {
+ item.setLine(doctype_line);
+ }
+ problemV.add(item);
+ } else {
+ problemV.add(new ProblemItemImpl("C_1000.7"));
+ }
+ }
+ flag = false;
+ }
+ return (problemV);
+ }
+}
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 0e6440e..7abe3b0 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and Others
+ * Copyright (c) 2005, 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
@@ -35,8 +35,11 @@
private static final String LIST_TAGS = "ul|ol|dl"; //$NON-NLS-1$
- private static final Set<String> BLOCK_TAG_SET = HtmlTagUtil
- .getBlockElementSet();
+ private static final String LANDMARK_TAGS = "nav|main|article|aside"; //$NON-NLS-1$
+
+ private static final String HEADER_FOOTER_TAGS = "header|footer"; //$NON-NLS-1$
+
+ private static final Set<String> BLOCK_TAG_SET = HtmlTagUtil.getBlockElementSet();
private VisualizeMapDataImpl mapData;
@@ -51,8 +54,7 @@
/**
*
*/
- public NodeInfoCreator(VisualizeMapDataImpl mapData,
- TextChecker textChecker, List<IProblemItem> problems,
+ public NodeInfoCreator(VisualizeMapDataImpl mapData, TextChecker textChecker, List<IProblemItem> problems,
Set<String> invisibleIdSet, ParamBlind paramBlind) {
this.mapData = mapData;
this.textChecker = textChecker;
@@ -67,8 +69,7 @@
String nodeS = targetNode.getNodeName();
if (nodeS.equals("img") || nodeS.equals("applet")) {// AREA?
if (targetS.endsWith(".]")) {
- targetS = targetS.substring(0, targetS.lastIndexOf(".]"))
- + "]";
+ targetS = targetS.substring(0, targetS.lastIndexOf(".]")) + "]";
}
}
}
@@ -84,8 +85,7 @@
return true;
} else if (tagName.equals("input")) {
String type = el.getAttribute("type").toLowerCase();
- if ((type.length() == 0) | type.equals("text")
- | type.equals("textarea") | type.equals("radio")
+ if ((type.length() == 0) | type.equals("text") | type.equals("textarea") | type.equals("radio")
| type.equals("checkbox")) {
return true;
}
@@ -135,12 +135,11 @@
// TODO consider ALT text ('['+alt+']')
// check inappropritate text
-
+
if (textChecker.isSeparatedJapaneseChars(curText)) {
String nodeName = p.getNode().getNodeName();
- if (!nodeName.matches("img|input|area")) {//already checked
- BlindProblem prob = new BlindProblem(
- IBlindProblem.WRONG_TEXT, curText);
+ if (!nodeName.matches("img|input|area")) {// already checked
+ BlindProblem prob = new BlindProblem(IBlindProblem.WRONG_TEXT, curText);
prob.setNode(p.getNode());
prob.setTargetNode(mapData.getOrigNode(p.getNode()));
problems.add(prob);
@@ -149,8 +148,7 @@
// check redundant texts
if ((prevPacket != null)
- && (p.getContext().isInsideAnchor() == prevPacket
- .getContext().isInsideAnchor())) {
+ && (p.getContext().isInsideAnchor() == prevPacket.getContext().isInsideAnchor())) {
Node curNode = p.getNode();
Node prevNode = prevPacket.getNode();
@@ -161,28 +159,23 @@
if (textChecker.isRedundantText(prevText, curText)) {
if (!HtmlTagUtil.hasAncestor(curNode, "noscript")
- && !HtmlTagUtil.hasAncestor(prevNode,
- "noscript")) {
+ && !HtmlTagUtil.hasAncestor(prevNode, "noscript")) {
// remove "." from error (comment from JIM)
prevText = removePeriod(prevText, prevNode);
curText = removePeriod(curText, curNode);
- BlindProblem prob = new BlindProblem(
- IBlindProblem.REDUNDANT_ALT, "\""
- + prevText + "\" & \""
- + curText + "\"");
+ BlindProblem prob = new BlindProblem(IBlindProblem.REDUNDANT_ALT,
+ "\"" + prevText + "\" & \"" + curText + "\"");
prob.setNode(prevNode);
prob.addNode(curNode);
// TODO insideAnchor -> check same target?
if (prevNode.getNodeName().equals("img")) {
- prob.setTargetNode(mapData
- .getOrigNode(prevNode));
+ prob.setTargetNode(mapData.getOrigNode(prevNode));
prob.setTargetStringForExport(prevText);
problems.add(prob);
} else if (curNode.getNodeName().equals("img")) {
- prob.setTargetNode(mapData
- .getOrigNode(curNode));
+ prob.setTargetNode(mapData.getOrigNode(curNode));
prob.setTargetStringForExport(curText);
problems.add(prob);
} else {
@@ -233,9 +226,7 @@
info.appendComment("Table header.");
} else if (nodeName.equals("label")) {
info.setLabel(true);
- info.appendComment("Label for '"
- + ((Element) curNode).getAttribute("for")
- + "'. ");
+ info.appendComment("Label for '" + ((Element) curNode).getAttribute("for") + "'. ");
}
if (nodeName.equals("body")) {
@@ -274,7 +265,6 @@
}
@SuppressWarnings("nls")
- // TODO
public void createAdditionalNodeInfo(Document doc) {
// create elementList
// set node info ID
@@ -305,8 +295,7 @@
while ((curNode != null) && (stack.size() > 0)) {
String curNodeName = curNode.getNodeName();
- VisualizationNodeInfo curInfo = mapData
- .getNodeInfo(curNode);
+ VisualizationNodeInfo curInfo = mapData.getNodeInfo(curNode);
if (curNode.getNodeType() == Node.TEXT_NODE) {
// add text nodes involved in the PacketCollection.
@@ -346,17 +335,32 @@
if (curNodeName.equals("img")) {
// TODO handle invisible map
- String map = ((Element) curNode)
- .getAttribute("usemap");
+ String map = ((Element) curNode).getAttribute("usemap");
if ((map != null) && (map.length() > 0)) {
int words = curInfo.getWords();
- String curText = mapTextMap.get(map
- .toLowerCase().substring(1));
+ String curText = mapTextMap.get(map.toLowerCase().substring(1));
int add = textCounter.getWordCount(curText);
curInfo.setWords(words + add);
curInfo.setLines(curInfo.getLines() + 1);
}
}
+
+ if (curNodeName.matches(LANDMARK_TAGS)) {
+ curInfo.setLandmark(true);
+ curInfo.appendComment("Landmark: " + curNodeName + ".");
+ // System.out.println("Landmark: " + curNodeName +
+ // ".");
+ } else if (curNodeName.matches(HEADER_FOOTER_TAGS)) {
+ if (!HtmlTagUtil.hasAncestor(curNode, "article")
+ && !HtmlTagUtil.hasAncestor(curNode, "section")) {
+ curInfo.setLandmark(true);
+ curInfo.appendComment(
+ "Landmark: " + curNodeName + " without ancestor article/section.");
+ // System.out.println("Landmark: " + curNodeName
+ // + " without ancestor article/section.");
+ }
+ }
+
}
if (curInfo != null) {
@@ -377,14 +381,12 @@
if (curNode.getNodeType() == Node.ELEMENT_NODE) {
if (isIdRequiredInput((Element) curNode)) {
curInfo.setIdRequiredInput(true);
- curInfo.appendComment("Input with id, '"
- + ((Element) curNode)
- .getAttribute("id") + "'. ");
+ curInfo.appendComment(
+ "Input with id, '" + ((Element) curNode).getAttribute("id") + "'. ");
}
}
- mapData.addNodeIdMapping(curInfo.getNode(),
- new Integer(curInfo.getId()));
+ mapData.addNodeIdMapping(curInfo.getNode(), new Integer(curInfo.getId()));
}
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 ecfa175..0d2debc 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
@@ -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
@@ -16,6 +16,10 @@
import org.w3c.dom.Node;
+/**
+ * @author kentarou
+ *
+ */
public class VisualizationNodeInfo {
//separated from VisualizeEngine
@@ -43,8 +47,10 @@
private Node node = null; // only when packet is null
private boolean isHeading = false;
+
+ private boolean isLandmark = false; //for html5
- private boolean tableHeader = false;
+ private boolean tableHeader = false;
private boolean isLabel = false;
@@ -308,7 +314,7 @@
}
/**
- * Returns the headingOrListitem.
+ * Returns the heading.
*
* @return boolean
*/
@@ -317,16 +323,31 @@
}
/**
- * Sets the headingOrListitem.
+ * Sets the heading.
*
- * @param headingOrListitem
- * The headingOrListitem to set
+ * @param heading
+ * The heading to set
*/
- public void setHeading(boolean headingOrListitem) {
- this.isHeading = headingOrListitem;
+ public void setHeading(boolean heading) {
+ this.isHeading = heading;
}
/**
+ * @return
+ */
+ public boolean isLandmark() {
+ return isLandmark;
+ }
+
+ /**
+ * @param isLandmark
+ */
+ public void setLandmark(boolean isLandmark) {
+ this.isLandmark = isLandmark;
+ }
+
+
+ /**
* Returns the time.
*
* @return int
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 9cde2a3..dfa5d30 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
@@ -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
@@ -40,6 +40,8 @@
private ParamBlind param;
+ private boolean isHTML5;
+
/**
* @param result
* @param mapData
@@ -47,13 +49,13 @@
* @param linkMap
* @param param
*/
- public VisualizeColorUtil(Document result, VisualizeMapDataImpl mapData,
- ParamBlind param) {
+ public VisualizeColorUtil(Document result, VisualizeMapDataImpl mapData, ParamBlind param, boolean isHTML5) {
this.result = result;
this.mapData = mapData;
this.nodeInfoList = mapData.getNodeInfoList();
this.linkMap = mapData.getIntraPageLinkMap();
this.param = param;
+ this.isHTML5 = isHTML5;
}
public void setColorAll() {
@@ -91,8 +93,7 @@
styleEl.setAttribute("type", "text/css");
strRGB = getRGBString(param.tableBorderColor, "#000000");
Comment comment = result
- .createComment("td {border-width: 1px; border-style: dashed; border-color: "
- + strRGB + "}");
+ .createComment("td {border-width: 1px; border-style: dashed; border-color: " + strRGB + "}");
styleEl.appendChild(comment);
headEl.appendChild(styleEl);
@@ -131,14 +132,12 @@
}
} else {
- DebugPrintUtil
- .devOrDebugPrintln("VisualizeColorUtil: unknown node in the nodeList"); //$NON-NLS-1$
+ DebugPrintUtil.devOrDebugPrintln("VisualizeColorUtil: unknown node in the nodeList"); //$NON-NLS-1$
continue;
}
if (param.bColorizeTags
- && (info.isHeading() | info.isTableHeader()
- | info.isLabel() | info.isIdRequiredInput())) {
+ && (info.isHeading() | info.isTableHeader() | info.isLabel() | info.isIdRequiredInput())) {
if (info.isHeading()) {
strRGB = getRGBString(param.headingTagsColor, "#33CCFF");
}
@@ -151,9 +150,7 @@
if (info.isIdRequiredInput()) {
strRGB = getRGBString(param.inputTagsColor, "#FF9900");
}
- el.setAttribute("style",
- "color: black; background-image: none; background-color:"
- + strRGB);// +
+ el.setAttribute("style", "color: black; background-image: none; background-color:" + strRGB);// +
// "}");
// } else if (info.getWords() > 0) {
} else {
@@ -161,31 +158,25 @@
if (time == 0) {
switch (param.iLanguage) {
case 1: // japanese
- time = calcTimeJp(info.getTotalWords(), info
- .getTotalLines());
+ time = calcTimeJp(info.getTotalWords(), info.getTotalLines());
break;
default: // english
- time = calcTime(info.getTotalWords(), info
- .getTotalLines());
+ time = calcTime(info.getTotalWords(), info.getTotalLines());
break;
}
info.setTime(time);
}
if (param.bVisualizeTime == true) {
- el.setAttribute("style",
- "color: black; background-image: none; background-color: #"
- + calcColor(time, param.maxTimeColor,
- param.iMaxTime));
+ el.setAttribute("style", "color: black; background-image: none; background-color: #"
+ + calcColor(time, param.maxTimeColor, param.iMaxTime));
} else {
- el
- .setAttribute("style",
- "color: black; background-image: none; background-color: transparent");
+ el.setAttribute("style", "color: black; background-image: none; background-color: transparent");
}
} /*
- * else { }
- */
+ * else { }
+ */
/*
* el.setAttribute( "comment", info.getPacketId() + "," +
* info.getId() + "," + info.getTotalWords() + "," + info.getWords()
@@ -200,28 +191,22 @@
double maxTimeD = maxTime;
if (time >= maxTime) {
- java.awt.Color color = new java.awt.Color(rgb.red, rgb.green,
- rgb.blue);
+ java.awt.Color color = new java.awt.Color(rgb.red, rgb.green, rgb.blue);
return Integer.toHexString(color.getRGB()).substring(2);
} else {
- int colorValueR = (int) (255.0 - (timeD / maxTimeD)
- * (255.0 - rgb.red));
- int colorValueG = (int) (255.0 - (timeD / maxTimeD)
- * (255.0 - rgb.green));
- int colorValueB = (int) (255.0 - (timeD / maxTimeD)
- * (255.0 - rgb.blue));
+ int colorValueR = (int) (255.0 - (timeD / maxTimeD) * (255.0 - rgb.red));
+ int colorValueG = (int) (255.0 - (timeD / maxTimeD) * (255.0 - rgb.green));
+ int colorValueB = (int) (255.0 - (timeD / maxTimeD) * (255.0 - rgb.blue));
- java.awt.Color color = new java.awt.Color(colorValueR, colorValueG,
- colorValueB);
+ java.awt.Color color = new java.awt.Color(colorValueR, colorValueG, colorValueB);
return Integer.toHexString(color.getRGB()).substring(2);
}
}
private String getRGBString(RGB target, String defaultValue) {
if (target != null) {
- return ("rgb(" + target.red + "," + target.green + ","
- + target.blue + ")");
+ return ("rgb(" + target.red + "," + target.green + "," + target.blue + ")");
}
return (defaultValue);
}
@@ -230,6 +215,7 @@
// TODO consider combination of skip nav and Headings
int headingCount = 0;
+ int landmarkCount = 0;
int curTotalWords = 0;
int curTotalLines = 0;
@@ -238,7 +224,31 @@
for (int i = 0; i < size; i++) {
VisualizationNodeInfo curInfo = nodeInfoList.get(i);
- if (curInfo.isHeading()) {
+ if (isHTML5 && curInfo.isLandmark()) {
+ landmarkCount++;
+
+ int words = wordcountForLandmark(landmarkCount);
+ if (calcTime(curTotalWords, curTotalLines) >= calcTime(words, 0)) {
+ curTotalWords = words;
+ curTotalLines = 0;
+ }
+
+ // TODO enable after NVDA support navigation key for "main"
+ // if (curInfo.getNode().getNodeName().equalsIgnoreCase("main"))
+ // {
+ // // some screen readers has navigation key (JAWS: "q") for
+ // "main"
+ // curTotalWords = 0;
+ // curTotalLines = 0;
+ // }
+
+ curInfo.setTotalWords(curTotalWords);
+ curInfo.setTotalLines(curTotalLines);
+
+ curTotalWords += curInfo.getWords();
+ curTotalLines += curInfo.getLines();
+
+ } else if (curInfo.isHeading()) {
if (curInfo.getNode().getNodeName().matches("h[1-6]")) {
headingCount++;
}
@@ -248,8 +258,7 @@
// System.out.println(headingCount+": "+curTotalWords+"
// "+tmpTotalWords+" "+curInfo.getTotalWords()+"
// "+curInfo.getWords());
- if (calcTime(curTotalWords, curTotalLines) >= calcTime(
- tmpTotalWords, 0)) {
+ if (calcTime(curTotalWords, curTotalLines) >= calcTime(tmpTotalWords, 0)) {
curTotalWords = tmpTotalWords;
curTotalLines = 0;
}
@@ -262,8 +271,8 @@
} else {
- if (calcTime(curInfo.getTotalWords(), curInfo.getTotalLines()) > calcTime(
- curTotalWords, curTotalLines)) {
+ if (calcTime(curInfo.getTotalWords(), curInfo.getTotalLines()) > calcTime(curTotalWords,
+ curTotalLines)) {
curInfo.setTotalWords(curTotalWords);
curInfo.setTotalLines(curTotalLines);
@@ -272,10 +281,8 @@
} else {
- curTotalWords = curInfo.getTotalWords()
- + curInfo.getWords();
- curTotalLines = curInfo.getTotalLines()
- + curInfo.getLines();
+ curTotalWords = curInfo.getTotalWords() + curInfo.getWords();
+ curTotalLines = curInfo.getTotalLines() + curInfo.getLines();
}
}
@@ -287,8 +294,7 @@
for (int i = 0; i < size; i++) {
VisualizationNodeInfo curInfo = nodeInfoList.get(i);
- int time = calcTime(curInfo.getTotalWords(), curInfo
- .getTotalLines());
+ int time = calcTime(curInfo.getTotalWords(), curInfo.getTotalLines());
curInfo.setTime(time);
if (curInfo.getNode().getNodeName().matches("h[1-6]")) {
@@ -302,8 +308,7 @@
for (int i = 0; i < size; i++) {
VisualizationNodeInfo curInfo = nodeInfoList.get(i);
- int time = calcTime(curInfo.getOrgTotalWords(), curInfo
- .getOrgTotalLines());
+ int time = calcTime(curInfo.getOrgTotalWords(), curInfo.getOrgTotalLines());
curInfo.setOrgTime(time);
}
@@ -314,8 +319,7 @@
Node parent = target.getParentNode();
while (parent != null) {
if (parent.getFirstChild() == target) {
- VisualizationNodeInfo nodeInfo = mapData
- .getNodeInfo(parent);
+ VisualizationNodeInfo nodeInfo = mapData.getNodeInfo(parent);
if (nodeInfo != null && nodeInfo.getTime() > time) {
nodeInfo.setTime(time);
}
@@ -328,17 +332,13 @@
}
}
- private void replaceParentInfoWord(Node target, int word, int line,
- int newTime) {
+ private void replaceParentInfoWord(Node target, int word, int line, int newTime) {
if (target != null) {
Node parent = target.getParentNode();
while (parent != null) {
if (parent.getFirstChild() == target) {
- VisualizationNodeInfo nodeInfo = mapData
- .getNodeInfo(parent);
- if (nodeInfo != null
- && calcTime(nodeInfo.getTotalWords(), nodeInfo
- .getTotalLines()) > newTime) {
+ VisualizationNodeInfo nodeInfo = mapData.getNodeInfo(parent);
+ if (nodeInfo != null && calcTime(nodeInfo.getTotalWords(), nodeInfo.getTotalLines()) > newTime) {
nodeInfo.setTotalWords(word);
nodeInfo.setTotalLines(line);
}
@@ -373,21 +373,18 @@
VisualizationNodeInfo fromInfo = nodeInfoList.get(fromId);
if (fromInfo.getNode() != fromNode) {
- DebugPrintUtil.devOrDebugPrintln("from node does not exists: "
- + fromId + " " + fromNode);
+ DebugPrintUtil.devOrDebugPrintln("from node does not exists: " + fromId + " " + fromNode);
continue;
}
VisualizationNodeInfo toInfo = nodeInfoList.get(toId);
if (toInfo.getNode() != toNode) {
- DebugPrintUtil.devOrDebugPrintln("to node does not exists: "
- + toId + " " + toNode);
+ DebugPrintUtil.devOrDebugPrintln("to node does not exists: " + toId + " " + toNode);
continue;
}
VisualizationNodeInfo curInfo = toInfo;
int curId = toId;
- int curTotalWords = fromInfo.getTotalWords()
- + getWordcountFor2sec();
+ int curTotalWords = fromInfo.getTotalWords() + getWordcountFor2sec();
int curTotalLines = fromInfo.getTotalLines();
int newTime = calcTime(curTotalWords, curTotalLines);
@@ -396,8 +393,7 @@
curInfo.setTotalWords(curTotalWords);
curInfo.setTotalLines(curTotalLines);
- replaceParentInfoWord(curInfo.getNode(), curTotalWords,
- curTotalLines, newTime);
+ replaceParentInfoWord(curInfo.getNode(), curTotalWords, curTotalLines, newTime);
// elements after intra page link
curId++;
@@ -435,14 +431,26 @@
return (int) ((words * WORD_JP) + (lines * (0.6)));
}
- private int wordcountForHeading(int headingNumber) {
+ private int wordcountForLandmark(int landmarkNumber) {
switch (param.iLanguage) {
case ParamBlind.EN:
- return 6 * (headingNumber - 1) + 15;
+ return 3 * landmarkNumber + 9;
case ParamBlind.JP:
- return 13 * (headingNumber - 1) + 31;
+ return (int) Math.round(6.5 * landmarkNumber) + 18;
default:
- return 6 * (headingNumber - 1) + 15;
+ return 3 * landmarkNumber + 9;
+ }
+ }
+
+ private int wordcountForHeading(int headingNumber) {
+ // use 1 sec for each landmark (text is shorter than headings)
+ switch (param.iLanguage) {
+ case ParamBlind.EN:
+ return 6 * headingNumber + 9;
+ case ParamBlind.JP:
+ return 13 * headingNumber + 18;
+ default:
+ return 6 * headingNumber + 9;
}
}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeViewUtil.java b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeViewUtil.java
index 1541ce5..e8a62db 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeViewUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind.html/src/org/eclipse/actf/visualization/internal/engines/blind/html/util/VisualizeViewUtil.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
@@ -27,6 +27,7 @@
import org.eclipse.actf.visualization.engines.blind.html.VisualizeEngine;
import org.eclipse.actf.visualization.engines.voicebrowser.IPacket;
import org.eclipse.actf.visualization.engines.voicebrowser.IPacketCollection;
+import org.eclipse.actf.visualization.eval.html.HtmlTagUtil;
import org.eclipse.actf.visualization.eval.problem.HighlightTargetId;
import org.eclipse.actf.visualization.eval.problem.IProblemItem;
import org.eclipse.actf.visualization.internal.engines.blind.html.BlindProblem;
@@ -57,12 +58,11 @@
private static final String SRC = "src"; //$NON-NLS-1$
@SuppressWarnings("nls")
- public static File prepareActions(Document result,
- VisualizeMapDataImpl mapData, String baseUrl, boolean servletMode) {
+ public static File prepareActions(Document result, VisualizeMapDataImpl mapData, String baseUrl,
+ boolean servletMode) {
Map<Node, Node> linkMap = mapData.getIntraPageLinkMap();
- List<VisualizationNodeInfo> targetElementList = mapData
- .getNodeInfoList();
+ List<VisualizationNodeInfo> targetElementList = mapData.getNodeInfoList();
NodeList bodyEl = result.getElementsByTagName(BODY);
@@ -79,8 +79,7 @@
if (tmpN != null) {
tmpN.appendChild(result.createElement(BODY));
} else {
- DebugPrintUtil
- .devOrDebugPrintln("VisualizeViewUtil: no doc element");
+ DebugPrintUtil.devOrDebugPrintln("VisualizeViewUtil: no doc element");
// TODO test
return null;
}
@@ -88,8 +87,7 @@
// div for arrow
Element div = result.createElement(DIV);
- div.setAttribute(STYLE,
- "position:absolute;pixelLeft= 10;pixelTop=10; color:red;font-size=12pt");
+ div.setAttribute(STYLE, "position:absolute;pixelLeft= 10;pixelTop=10; color:red;font-size=12pt");
div.setAttribute(ID, "test");
// bodyEl.item(bodyEl.getLength() - 1).appendChild(div);
@@ -111,15 +109,12 @@
}
}
- return (createScriptFile(result, targetElementList, baseUrl,
- servletMode));
+ return (createScriptFile(result, targetElementList, baseUrl, servletMode));
}
@SuppressWarnings("nls")
- // TODO
- private static void insertLinkIcon(Document doc, Map<Node, Node> linkMap,
- String baseUrl) {
+ private static void insertLinkIcon(Document doc, Map<Node, Node> linkMap, String baseUrl) {
Iterator<Node> it = linkMap.keySet().iterator();
Set<String> alreadySet = new HashSet<String>();
int id = 0;
@@ -144,8 +139,7 @@
Element imgel2 = doc.createElement(IMG);
imgel2.setAttribute(ALT, "Intra-page link destination: " + href);
- imgel2.setAttribute(TITLE, "Intra-page link destination: "
- + href);
+ imgel2.setAttribute(TITLE, "Intra-page link destination: " + href);
imgel2.setAttribute(SRC, baseUrl + "img/dest.gif");
imgel2.setAttribute(NAME, href);
@@ -160,13 +154,77 @@
}
}
+ private static void addLandmarkImg(Document doc, Element target, String baseUrl) {
+ Element imgel1 = doc.createElement(IMG);
+ String name = target.getTagName().toLowerCase();
+ imgel1.setAttribute(ALT, "Landmark: " + name);
+ // imgel1.setAttribute(TITLE, name);
+ imgel1.setAttribute(SRC, baseUrl + "img/" + name + ".gif");
+
+ if (target.hasChildNodes()) {
+ target.insertBefore(imgel1, target.getFirstChild());
+ } else {
+ target.appendChild(imgel1);
+ }
+ }
+
+ public static void visualizeLandmark(Document doc, String baseUrl) {
+ String[] landmarks = { "nav", "article", "aside" };
+
+ NodeList tmpNl = doc.getElementsByTagName("main");
+ for (int i = 0; i < tmpNl.getLength(); i++) {
+ Element landE = (Element) tmpNl.item(i);
+ addLandmarkImg(doc, landE, baseUrl);
+
+ try {
+ Element parentE = (Element) landE.getParentNode();
+ Element divE = doc.createElement("div");
+ divE.setAttribute("class", "main");
+ parentE.insertBefore(divE, landE);
+ divE.appendChild(landE);
+ } catch (Exception e) {
+ }
+ }
+
+ for (String tag : landmarks) {
+ tmpNl = doc.getElementsByTagName(tag);
+ for (int i = 0; i < tmpNl.getLength(); i++) {
+ Element landE = (Element) tmpNl.item(i);
+ addLandmarkImg(doc, landE, baseUrl);
+ }
+ }
+
+ for (String tag : new String[] { "header", "footer" }) {
+ tmpNl = doc.getElementsByTagName(tag);
+ for (int i = 0; i < tmpNl.getLength(); i++) {
+ Element landE = (Element) tmpNl.item(i);
+ if (!HtmlTagUtil.hasAncestor(landE, "article") && !HtmlTagUtil.hasAncestor(landE, "section")) {
+ landE.setAttribute("class", "header_footer");
+ addLandmarkImg(doc, landE, baseUrl);
+ }
+ }
+ }
+
+ NodeList nl = doc.getElementsByTagName("head");
+ if (nl.getLength() > 0) {
+ Element el = (Element) nl.item(0);
+
+ Element cssE = doc.createElement("link");
+ cssE.setAttribute("rel", "stylesheet");
+ cssE.setAttribute("type", "text/css");
+ cssE.setAttribute("href", "img/visualization.css");
+ cssE.setAttribute("media", "all");
+ el.appendChild(cssE);
+ }
+
+ }
+
@SuppressWarnings("nls")
// TODO
private static void insertControlPane(Document result) {
NodeList bodyEl = result.getElementsByTagName(BODY);
Element div = result.createElement(DIV);
- div.setAttribute(
- STYLE,
+ div.setAttribute(STYLE,
"position:absolute;font-size: medium; background-color: #FFFFFF; border-color: #333333 #000000 #000000; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px");
div.setAttribute(ID, "control_pane");
@@ -204,16 +262,13 @@
}
@SuppressWarnings("nls")
- private static File createScriptFile(Document result,
- List<VisualizationNodeInfo> elementList, String baseUrl,
+ private static File createScriptFile(Document result, List<VisualizationNodeInfo> elementList, String baseUrl,
boolean servletMode) {
try {
PrintWriter pw;
- File valiantFile = BlindVizResourceUtil.createTempFile("variant",
- ".js");
- pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(
- valiantFile), "UTF-8"));
+ File valiantFile = BlindVizResourceUtil.createTempFile("variant", ".js");
+ pw = new PrintWriter(new OutputStreamWriter(new FileOutputStream(valiantFile), "UTF-8"));
StringBuffer sb = new StringBuffer();
sb.append("var id2time = new Array();");
@@ -252,8 +307,7 @@
}
- String tmpS = sb.toString().replaceAll("\n", NULL_STRING)
- .replaceAll("\r", NULL_STRING);
+ String tmpS = sb.toString().replaceAll("\n", NULL_STRING).replaceAll("\r", NULL_STRING);
pw.write(tmpS);
sb = new StringBuffer();
@@ -290,8 +344,7 @@
}
Element div = result.createElement(DIV);
- div.setAttribute(
- STYLE,
+ div.setAttribute(STYLE,
"position:absolute;font-size: medium; background-color: #FFFFFF; border-color: #333333 #000000 #000000; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-style: solid; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px");
div.setAttribute(ID, "balloon");
@@ -313,8 +366,7 @@
return null;
}
- public static void visualizeError(Document doc,
- List<IProblemItem> problems, VisualizeMapDataImpl mapData,
+ public static void visualizeError(Document doc, List<IProblemItem> problems, VisualizeMapDataImpl mapData,
String baseUrlS) {
int size = problems.size();
@@ -341,8 +393,7 @@
VisualizationNodeInfo info = mapData.getNodeInfo(node);
if (info != null) {
if (IBlindProblem.WRONG_NBSP_ALT_IMG == prob.getSubType()) {
- info.appendComment(prob.getDescription().replaceAll("&",
- "&"));
+ info.appendComment(prob.getDescription().replaceAll("&", "&"));
} else {
info.appendComment(prob.getDescription());
}
@@ -370,8 +421,7 @@
if (replacement != null) {
el = (Element) replacement;
}
- Element img = createErrorImageElement(node, prob, idObj,
- baseUrlS);
+ Element img = createErrorImageElement(node, prob, idObj, baseUrlS);
el.appendChild(img);
break;
case IBlindProblem.REDUNDANT_ALT:
@@ -409,14 +459,12 @@
case IBlindProblem.INVISIBLE_INTRAPAGE_LINK:
case IBlindProblem.WRONG_SKIP_LINK_TITLE:
Element element = (Element) node;
- Element image = createErrorImageElement(element, prob, idObj,
- baseUrlS);
+ Element image = createErrorImageElement(element, prob, idObj, baseUrlS);
element.appendChild(image);
break;
case IBlindProblem.WRONG_TEXT:
// Node node = prob.getNode();
- Element image2 = createErrorImageElement(node, prob, idObj,
- baseUrlS);
+ Element image2 = createErrorImageElement(node, prob, idObj, baseUrlS);
if (node.getNodeType() == Node.ELEMENT_NODE) {
node.appendChild(image2);
} else {
@@ -425,8 +473,7 @@
break;
case IBlindProblem.NO_VALUE_INPUT_BUTTON:
case IBlindProblem.SEPARATE_DBCS_INPUT_VALUE:
- Element image3 = createErrorImageElement(node, prob, idObj,
- baseUrlS);
+ Element image3 = createErrorImageElement(node, prob, idObj, baseUrlS);
node.getParentNode().insertBefore(image3, node);
break;
@@ -436,25 +483,21 @@
}
@SuppressWarnings("nls")
- private static Element createErrorImageElement(Node target,
- IProblemItem prob, Integer idObj, String baseUrlS) {
+ private static Element createErrorImageElement(Node target, IProblemItem prob, Integer idObj, String baseUrlS) {
Element img = target.getOwnerDocument().createElement(IMG);
img.setAttribute(ALT, "error icon");
if (IBlindProblem.WRONG_NBSP_ALT_IMG == prob.getSubType()) {
- img.setAttribute(TITLE,
- prob.getDescription().replaceAll("&", "&"));
+ img.setAttribute(TITLE, prob.getDescription().replaceAll("&", "&"));
} else {
img.setAttribute(TITLE, prob.getDescription());
}
img.setAttribute("onmouseover", "updateBaloon('id" + idObj + "');");
- img.setAttribute(SRC, baseUrlS + "img/"
- + VisualizeEngine.ERROR_ICON_NAME);
+ img.setAttribute(SRC, baseUrlS + "img/" + VisualizeEngine.ERROR_ICON_NAME);
return (img);
}
@SuppressWarnings("nls")
- public static Document returnTextView(Document result,
- IPacketCollection allPc, String baseUrl) {
+ public static Document returnTextView(Document result, IPacketCollection allPc, String baseUrl) {
NodeList bodyNl = result.getElementsByTagName(BODY);
// TODO remove second Body, script, etc.
@@ -483,8 +526,7 @@
bodyEl.appendChild(spanEl);
if (insideLink)
- spanEl.setAttribute(STYLE,
- "text-decoration: underline;");
+ spanEl.setAttribute(STYLE, "text-decoration: underline;");
brFlag = false;
}
if (p.getContext().isLineDelimiter()) {
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.actf.visualization.engines.blind/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..6028f82
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/vizResources=UTF-8
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java
index c99f531..1359af1 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/BlindVizResourceUtil.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
@@ -36,66 +36,42 @@
public static void saveImages(String path) {
Bundle bundleChecker = Platform.getBundle(EvaluationUtil.PLUGIN_ID);
- FileUtils.copyFile(bundleChecker, new Path("icons/Err.png"), path
- + "Err.png", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/Warn.png"), path
- + "Warn.png", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/Conf.png"), path
- + "Conf.png", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/Info.png"), path
- + "Info.png", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/star.gif"), path
- + "star.gif", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/Err.png"), path + "Err.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/Warn.png"), path + "Warn.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/Conf.png"), path + "Conf.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/Info.png"), path + "Info.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/star.gif"), path + "star.gif", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/rating/Bad.png"),
- path + "Bad.png", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/rating/Good.png"),
- path + "Good.png", true);
- FileUtils.copyFile(bundleChecker, new Path("icons/rating/Poor.png"),
- path + "Poor.png", true);
- FileUtils.copyFile(bundleChecker,
- new Path("icons/rating/VeryGood.png"), path + "VeryGood.png",
- true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/rating/Bad.png"), path + "Bad.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/rating/Good.png"), path + "Good.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/rating/Poor.png"), path + "Poor.png", true);
+ FileUtils.copyFile(bundleChecker, new Path("icons/rating/VeryGood.png"), path + "VeryGood.png", true);
Bundle bundleBlind = Platform.getBundle(BlindVizEnginePlugin.PLUGIN_ID);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/clear.gif"), path + "clear.gif", true);
- FileUtils.copyFile(bundleBlind,
- new Path("vizResources/images/dest.gif"), path + "dest.gif",
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/clear.gif"), path + "clear.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/dest.gif"), path + "dest.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/draw.gif"), path + "draw.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/exclawhite21.gif"), path + "exclawhite21.gif",
true);
- FileUtils.copyFile(bundleBlind,
- new Path("vizResources/images/draw.gif"), path + "draw.gif",
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/face-sad.gif"), path + "face-sad.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/face-smile.gif"), path + "face-smile.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/face-usual.gif"), path + "face-usual.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/jump.gif"), path + "jump.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/line_filled.gif"), path + "line_filled.gif",
true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/exclawhite21.gif"), path
- + "exclawhite21.gif", true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/face-sad.gif"), path + "face-sad.gif",
- true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/face-smile.gif"), path + "face-smile.gif",
- true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/face-usual.gif"), path + "face-usual.gif",
- true);
- FileUtils.copyFile(bundleBlind,
- new Path("vizResources/images/jump.gif"), path + "jump.gif",
- true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/line_filled.gif"), path
- + "line_filled.gif", true);
- FileUtils.copyFile(bundleBlind,
- new Path("vizResources/images/logo.gif"), path + "logo.gif",
- true);
- FileUtils.copyFile(bundleBlind,
- new Path("vizResources/images/move.gif"), path + "move.gif",
- true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/images/refresh.gif"), path + "refresh.gif", true);
- FileUtils.copyFile(bundleBlind,
- new Path("vizResources/images/stop.gif"), path + "stop.gif",
- true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/logo.gif"), path + "logo.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/move.gif"), path + "move.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/refresh.gif"), path + "refresh.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/images/stop.gif"), path + "stop.gif", true);
+
+ //HTML5 (landmark)
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/landmark_icons/article.gif"), path + "article.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/landmark_icons/aside.gif"), path + "aside.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/landmark_icons/footer.gif"), path + "footer.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/landmark_icons/header.gif"), path + "header.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/landmark_icons/main.gif"), path + "main.gif", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/landmark_icons/nav.gif"), path + "nav.gif", true);
}
@@ -108,15 +84,15 @@
@SuppressWarnings("nls")
public static void saveScripts(String path) {
Bundle bundleBlind = Platform.getBundle(BlindVizEnginePlugin.PLUGIN_ID);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/scripts/highlight.js"), path + "highlight.js",
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/scripts/highlight.js"), path + "highlight.js", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/scripts/highlight_moz.js"), path + "highlight_moz.js",
true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/scripts/highlight_moz.js"), path
- + "highlight_moz.js", true);
- FileUtils.copyFile(bundleBlind, new Path(
- "vizResources/scripts/highlight-dummy.js"), path
- + "highlight-dummy.js", true);
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/scripts/highlight-dummy.js"),
+ path + "highlight-dummy.js", true);
+
+ // TODO create method for CSS
+ FileUtils.copyFile(bundleBlind, new Path("vizResources/css/visualization.css"), path + "visualization.css",
+ true);
}
@@ -128,8 +104,7 @@
* @return {@link ImageDescriptor}
*/
public static ImageDescriptor getImageDescriptor(String imageFilePath) {
- return AbstractUIPlugin.imageDescriptorFromPlugin(
- BlindVizEnginePlugin.PLUGIN_ID, imageFilePath);
+ return AbstractUIPlugin.imageDescriptorFromPlugin(BlindVizEnginePlugin.PLUGIN_ID, imageFilePath);
}
/**
@@ -143,8 +118,7 @@
* @throws Exception
* @see AbstractUIPlugin#getStateLocation()
*/
- public static File createTempFile(String prefix, String suffix)
- throws Exception {
+ public static File createTempFile(String prefix, String suffix) throws Exception {
return (BlindVizEnginePlugin.createTempFile(prefix, suffix));
}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/TextChecker.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/TextChecker.java
index c4fa01c..469854f 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/TextChecker.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/engines/blind/TextChecker.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2011 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
@@ -56,8 +56,7 @@
private Set<String> ngPatterns = new HashSet<String>();
- private IPreferenceStore pref = BlindVizEnginePlugin.getDefault()
- .getPreferenceStore();
+ private IPreferenceStore pref = BlindVizEnginePlugin.getDefault().getPreferenceStore();
// TODO spell out check
@@ -68,8 +67,7 @@
Properties prop = new Properties();
try {
- InputStream prefIS = FileLocator.openStream(
- Platform.getBundle(BlindVizEnginePlugin.PLUGIN_ID),
+ InputStream prefIS = FileLocator.openStream(Platform.getBundle(BlindVizEnginePlugin.PLUGIN_ID),
new Path("config/" + ALT_TEXT_PROPERTIES_FILE), false); //$NON-NLS-1$
if (prefIS != null) {
prop.load(prefIS);
@@ -137,15 +135,12 @@
*/
public boolean isRedundantText(String prevText, String curText) {
- if ((prevText != null) && (prevText.length() > 1)
- && (curText.length() > 1)) {
+ if ((prevText != null) && (prevText.length() > 1) && (curText.length() > 1)) {
- String prevText2 = prevText.replaceAll(
- "\\[|\\]|\\.|\\!|\\>", NULL_STRING); //$NON-NLS-1$
+ String prevText2 = prevText.replaceAll("\\[|\\]|\\.|\\!|\\>", NULL_STRING); //$NON-NLS-1$
prevText2 = prevText2.trim();
- String curText2 = curText.replaceAll(
- "\\[|\\]|\\.|\\!|\\>", NULL_STRING); //$NON-NLS-1$
+ String curText2 = curText.replaceAll("\\[|\\]|\\.|\\!|\\>", NULL_STRING); //$NON-NLS-1$
curText2 = curText2.trim();
if (curText2.equalsIgnoreCase(prevText2)) {
@@ -179,7 +174,8 @@
*
* @param alt
* target alternative text
- * @return <ul>
+ * @return
+ * <ul>
* <li>0: OK</li>
* <li>1: possibly inappropriate</li>
* <li>2: inappropriate</li>
@@ -187,8 +183,7 @@
* </ul>
*/
public int checkInappropriateAlt(final String alt) {
- String[] tmpSA = alt.toLowerCase().split(
- "(" + KIGOU + "|\\p{Punct}|\\p{Space})"); //$NON-NLS-1$ //$NON-NLS-2$
+ String[] tmpSA = alt.toLowerCase().split("(" + KIGOU + "|\\p{Punct}|\\p{Space})"); //$NON-NLS-1$ //$NON-NLS-2$
int count = 0;
int all = 0;
int charLength = 0;
@@ -261,8 +256,7 @@
// \u00A0 =
@SuppressWarnings("unused")
String regexp1 = ".*" + KANJI + ".*"; //$NON-NLS-1$ //$NON-NLS-2$
- String regexp2 = ".*\\b" + NIHONGO + "[\\p{Space}\u3000\u00A0]+"
- + NIHONGO + "\\b.*";
+ String regexp2 = ".*\\b" + NIHONGO + "[\\p{Space}\u3000\u00A0]+" + NIHONGO + "\\b.*";
if (tmpS.matches(regexp2)) {
return true;
@@ -375,8 +369,7 @@
}
if (src != null) {
- Matcher m = Pattern.compile(".*?([^/]+)")
- .matcher(src.toLowerCase());
+ Matcher m = Pattern.compile(".*?([^/]+)").matcher(src.toLowerCase());
if (m.matches()) {
String fileName = m.group(1);
if (alt.equals(fileName)) {
@@ -395,11 +388,13 @@
return TextCheckResult.SPACE_SEPARATED_JP;
// Counts number of NG "word"s in ALT
- List<String> wordList = Arrays.asList(alt.toLowerCase().split(
- "(" + KIGOU + "|\\p{Punct}|\\p{Space})")); //$NON-NLS-1$ //$NON-NLS-2$
+ List<String> wordList = Arrays.asList(alt.toLowerCase().split("(" + KIGOU + "|\\p{Punct}|\\p{Space})")); //$NON-NLS-1$ //$NON-NLS-2$
int wordCountNG = 0;
int wordCountAll = 0;
+
+ @SuppressWarnings("unused")
int charLength = 0;
+
for (String word : wordList) {
charLength += word.length();
if (word.length() > 0)
@@ -424,8 +419,7 @@
public boolean isAsciiArtString(String str) {
int origLength = str.length();
str = str.toLowerCase();
- List<String> wordList = Arrays.asList(str.toLowerCase().split(
- "(" + KIGOU + "|\\p{Punct}|\\p{Space})")); //$NON-NLS-1$ //$NON-NLS-2$
+ List<String> wordList = Arrays.asList(str.toLowerCase().split("(" + KIGOU + "|\\p{Punct}|\\p{Space})")); //$NON-NLS-1$ //$NON-NLS-2$
int charLength = 0;
for (String word : wordList) {
charLength += word.length();
@@ -433,7 +427,6 @@
boolean isBlank = str.matches("[\\p{Space}\\u3000\\u00A0]*");
- return (origLength > 0
- && ((double) charLength / (double) origLength) < 0.5 && !isBlank);
+ return (origLength > 0 && ((double) charLength / (double) origLength) < 0.5 && !isBlank);
}
}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java
index 1c2f82a..5611f87 100644
--- a/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/src/org/eclipse/actf/visualization/internal/engines/blind/SummaryEvaluation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2008 IBM Corporation and Others
+ * Copyright (c) 2005, 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
@@ -109,57 +109,45 @@
boolean isGood = false;
- if(compCount==0){
- return("");
+ if (compCount == 0) {
+ return ("");
}
if (compTotal / compCount >= 75) {
if (hasError) { // hasComplianceError
- aboutComp.append(Messages.Eval_compliant_with_some_other_errors
- + FileUtils.LINE_SEP);
+ aboutComp.append(Messages.Eval_compliant_with_some_other_errors + FileUtils.LINE_SEP);
if (totalAltError > 0) {
- aboutComp.append(Messages.Eval_confirm_alt_attributes_first
- + FileUtils.LINE_SEP);
+ aboutComp.append(Messages.Eval_confirm_alt_attributes_first + FileUtils.LINE_SEP);
aboutComp.append(getImageAltStatistics());
} else {
- aboutComp
- .append(Messages.Eval_confirm_errors_detailed_report);
+ aboutComp.append(Messages.Eval_confirm_errors_detailed_report);
}
} else {
if (hasOther && other != 100) {
- aboutComp.append(Messages.Eval_some_errors_on_metrics
- + FileUtils.LINE_SEP
- + MessageFormat.format(
- Messages.Eval_some_errors_on_metrics1,
- (new String[] { noGoodMetrics.substring(0,
- noGoodMetrics.length() - 1) })));
+ aboutComp.append(Messages.Eval_some_errors_on_metrics + FileUtils.LINE_SEP + MessageFormat.format(
+ Messages.Eval_some_errors_on_metrics1,
+ (Object[]) (new String[] { noGoodMetrics.substring(0, noGoodMetrics.length() - 1) })));
} else {
if (compTotal / compCount == 100) {
isGood = true;
- aboutComp.append(Messages.Eval_completely_compliant
- + FileUtils.LINE_SEP
- + Messages.Eval_user_check2);
+ aboutComp.append(
+ Messages.Eval_completely_compliant + FileUtils.LINE_SEP + Messages.Eval_user_check2);
} else {
isGood = true;
- aboutComp
- .append(Messages.Eval_completely_compliant_with_user_check_items
- + FileUtils.LINE_SEP
- + Messages.Eval_user_check1);
+ aboutComp.append(Messages.Eval_completely_compliant_with_user_check_items + FileUtils.LINE_SEP
+ + Messages.Eval_user_check1);
}
}
}
} else {
if (compTotal / compCount >= 50) {
- aboutComp.append(Messages.Eval_some_accessibility_issues
- + FileUtils.LINE_SEP);
+ aboutComp.append(Messages.Eval_some_accessibility_issues + FileUtils.LINE_SEP);
} else {
- aboutComp.append(Messages.Eval_many_accessibility_issues
- + FileUtils.LINE_SEP);
+ aboutComp.append(Messages.Eval_many_accessibility_issues + FileUtils.LINE_SEP);
}
if (totalAltError > 0) {
- aboutComp.append(Messages.Eval_confirm_alt_attributes_first
- + FileUtils.LINE_SEP);
+ aboutComp.append(Messages.Eval_confirm_alt_attributes_first + FileUtils.LINE_SEP);
aboutComp.append(getImageAltStatistics());
} else {
aboutComp.append(Messages.Eval_confirm_errors_detailed_report);
@@ -170,32 +158,26 @@
if (hasOperable && guidelineHolder.isEnabledMetric("operable")) { //$NON-NLS-1$
if (operable >= 75) {
if (pageData.getMaxTime() > 240) {
- aboutNav.append(MessageFormat.format(
- Messages.Eval_navigability_long_time_error_msg,
- (new String[] { FileUtils.LINE_SEP,
- FileUtils.LINE_SEP, FileUtils.LINE_SEP,
- FileUtils.LINE_SEP }))
+ aboutNav.append(MessageFormat
+ .format(Messages.Eval_navigability_long_time_error_msg, (Object[]) (new String[] {
+ FileUtils.LINE_SEP, FileUtils.LINE_SEP, FileUtils.LINE_SEP, FileUtils.LINE_SEP }))
+ FileUtils.LINE_SEP);
} else {
- aboutNav.append(MessageFormat.format(
- Messages.Eval_navigability_good_msg, (new String[] {
- FileUtils.LINE_SEP, FileUtils.LINE_SEP }))
- + FileUtils.LINE_SEP);
+ aboutNav.append(MessageFormat.format(Messages.Eval_navigability_good_msg,
+ (Object[]) (new String[] { FileUtils.LINE_SEP, FileUtils.LINE_SEP })) + FileUtils.LINE_SEP);
}
} else {
isGood = false;
- aboutNav.append(MessageFormat.format(
- Messages.Eval_navigability_low_score_error_msg,
- (new String[] { FileUtils.LINE_SEP, FileUtils.LINE_SEP,
- FileUtils.LINE_SEP, FileUtils.LINE_SEP }))
+ aboutNav.append(MessageFormat
+ .format(Messages.Eval_navigability_low_score_error_msg, (Object[]) (new String[] {
+ FileUtils.LINE_SEP, FileUtils.LINE_SEP, FileUtils.LINE_SEP, FileUtils.LINE_SEP }))
+ FileUtils.LINE_SEP);
}
}
if ((hasComp || hasOperable) && isGood) {
- tmpSB.append(Messages.Eval_excellent + FileUtils.LINE_SEP
- + FileUtils.LINE_SEP);
+ tmpSB.append(Messages.Eval_excellent + FileUtils.LINE_SEP + FileUtils.LINE_SEP);
}
tmpSB.append(aboutComp + FileUtils.LINE_SEP + FileUtils.LINE_SEP);
tmpSB.append(aboutNav);
@@ -221,16 +203,13 @@
tmpSB.append(FileUtils.LINE_SEP);
if (noImageAltCount > 0) {
- tmpSB.append(SPACE + Messages.Eval_no_img_alt + SPACE
- + noImageAltCount + FileUtils.LINE_SEP);
+ tmpSB.append(SPACE + Messages.Eval_no_img_alt + SPACE + noImageAltCount + FileUtils.LINE_SEP);
}
if (wrongImageAltCount > 0) {
- tmpSB.append(SPACE + Messages.Eval_wrong_img_alt + SPACE
- + wrongImageAltCount + FileUtils.LINE_SEP);
+ tmpSB.append(SPACE + Messages.Eval_wrong_img_alt + SPACE + wrongImageAltCount + FileUtils.LINE_SEP);
}
if (redundantImageAltCount > 0) {
- tmpSB.append(SPACE + Messages.Eval_redundant_img_alt + SPACE
- + redundantImageAltCount + FileUtils.LINE_SEP);
+ tmpSB.append(SPACE + Messages.Eval_redundant_img_alt + SPACE + redundantImageAltCount + FileUtils.LINE_SEP);
}
return (tmpSB.toString());
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/css/visualization.css b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/css/visualization.css
new file mode 100644
index 0000000..12d8f6e
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/css/visualization.css
@@ -0,0 +1,19 @@
+div.main {
+ border: 5px blue solid; padding: 2px; margin: 1px;
+}
+
+article,nav {
+ border: 2px blue solid; padding: 2px; margin: 1px;
+}
+
+.header_footer {
+ border: 2px blue solid; padding: 2px; margin: 1px;
+}
+
+aside {
+ border: 1px blue solid; padding: 1px; margin: 1px;
+}
+
+section {
+ border: 1px blue dotted; padding: 1px; margin: 1px;
+}
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/article.gif b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/article.gif
new file mode 100644
index 0000000..118c753
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/article.gif
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/aside.gif b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/aside.gif
new file mode 100644
index 0000000..561634f
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/aside.gif
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/footer.gif b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/footer.gif
new file mode 100644
index 0000000..f7c30b5
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/footer.gif
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/header.gif b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/header.gif
new file mode 100644
index 0000000..8c1755d
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/header.gif
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/main.gif b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/main.gif
new file mode 100644
index 0000000..d152bac
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/main.gif
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/nav.gif b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/nav.gif
new file mode 100644
index 0000000..30ac19b
--- /dev/null
+++ b/plugins/org.eclipse.actf.visualization.engines.blind/vizResources/landmark_icons/nav.gif
Binary files differ
diff --git a/plugins/org.eclipse.actf.visualization.eval/resources/checkitem.xml b/plugins/org.eclipse.actf.visualization.eval/resources/checkitem.xml
index 02989c3..13fcc17 100644
--- a/plugins/org.eclipse.actf.visualization.eval/resources/checkitem.xml
+++ b/plugins/org.eclipse.actf.visualization.eval/resources/checkitem.xml
@@ -1,747 +1,747 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!--
- Copyright (c) 2005, 2012 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
- http://www.eclipse.org/legal/epl-v10.html
-
- Contributors:
- IBM Corporation - initial API and implementation
--->
-<checker-config>
- <checkitem type="error" id="C_1000.0">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Robust"/>
- </metrics>
- <description>
- <desc>This page seems to have several BODY elements. Please correct html.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="C_1000.1">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Robust"/>
- </metrics>
- <description>
- <desc>This page seems to have HEAD element under BODY element. Please correct html.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="C_1000.2">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Robust"/>
- </metrics>
- <description>
- <desc>This page seems to have several HTML elements. Please correct html.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="C_1000.3">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Robust"/>
- </metrics>
- <description>
- <desc>BODY elements seems to be not properly placed. Please correct html.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="C_1000.4">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Robust"/>
- </metrics>
- <description>
- <desc>This page seems to have no BODY element, or position of BODY is wrong. Please correct html.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="C_1000.5">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Robust"/>
- </metrics>
- <description>
- <desc>This page seems to have no BODY (or HEAD) element, or position of BODY is wrong. Please correct html.</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="C_1000.6">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Robust"/>
- </metrics>
- <description>
- <desc>Make sure to use a public text identifier in a &lt;!DOCTYPE&gt; statement.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="C_1000.7">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Robust"/>
- </metrics>
- <description>
- <desc>As no DOCTYPE declaration is found, validators may produce wrong results and conformance of the document is not able to be checked.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="C_1000.8">
- <guideline>
- <gItem id="3.2" name="WCAG"/>
- <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
- <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Robust"/>
- </metrics>
- <description>
- <desc>Byte-Order Mark (BOM) found in UTF-8 HTML file. BOM should be removed to avoid unexpected error.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_0">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="a" name="Section508"/>
- <gItem techniques="H37,H67,F38,F65" id="7.1.1.1" name="JIS"/>
- <gItem id="1" name="IBMGuideline"/>
- <gItem techniques="H37,H67,F38,F65" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>No alternative text for an image (If the image has no information to read out, please provide alt="".): src="".</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_1">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="a" name="Section508"/>
- <gItem id="n" name="Section508"/>
- <gItem techniques="H36,F65" id="7.1.1.1" name="JIS"/>
- <gItem id="7" name="IBMGuideline"/>
- <gItem techniques="H36,F65" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>No alternative text for an image button.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_2">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="a" name="Section508"/>
- <gItem techniques="H24,F65" id="7.1.1.1" name="JIS"/>
- <gItem id="2" name="IBMGuideline"/>
- <gItem techniques="H24,F65" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>No alternative text for an AREA: map name="".</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_4">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="1" name="IBMGuideline"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>"" is not appropriate as an ALT attribute for an image.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_5">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem techniques="F30,G94" id="7.1.1.1" name="JIS"/>
- <gItem id="7" name="IBMGuideline"/>
- <gItem techniques="F30,G94" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>"" is not appropriate as an ALT attribute for an image button.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_6">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem techniques="F30,G94" id="7.1.1.1" name="JIS"/>
- <gItem id="2" name="IBMGuideline"/>
- <gItem techniques="F30,G94" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>"" is not appropriate as an ALT attribute for an AREA.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_8">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G123,G124" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G123,G124" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Operable"/>
- </metrics>
- <description>
- <desc>This intra-page link is broken because of a missing destination anchor "".</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_9">
- <guideline>
- <gItem id="13.1" name="WCAG"/>
- <gItem techniques="H2" id="7.1.1.1" name="JIS"/>
- <gItem id="1" name="IBMGuideline"/>
- <gItem id="2" name="IBMGuideline"/>
- <gItem id="7" name="IBMGuideline"/>
- <gItem techniques="H2" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>Redundant text information: .</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_10">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Operable"/>
- </metrics>
- <description>
- <desc>Provide skip-links such as "skip to main".</desc>
- </description>
- </checkitem>
- <checkitem type="info" id="B_12">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="H42" id="7.1.3.1" name="JIS"/>
- <gItem techniques="G1, G123, G124, H69" id="7.2.4.1" name="JIS"/>
- <gItem techniques="G141" id="7.2.4.10" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="H42" id="1.3.1" name="WCAG 2.0"/>
- <gItem techniques="G1, G123, G124, H69" id="2.4.1" name="WCAG 2.0"/>
- <gItem techniques="G141" id="2.4.10" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Perceivable"/>
- <mItem name="Operable"/>
- </metrics>
- <description>
- <desc>Provide intra-page links or use headings. Because there are no effective intra-page links or headings, arrival time to some content is over 120 seconds.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_14">
- <guideline>
- <gItem id="13.1" name="WCAG"/>
- <gItem techniques="H30" id="7.1.1.1" name="JIS"/>
- <gItem techniques="H30" id="7.2.4.4" name="JIS"/>
- <gItem techniques="H30" id="7.2.4.9" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="H30" id="1.1.1" name="WCAG 2.0"/>
- <gItem techniques="H30" id="2.4.4" name="WCAG 2.0"/>
- <gItem techniques="H30" id="2.4.9" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- <mItem score="5" name="Operable"/>
- </metrics>
- <description>
- <desc>This intra-page link, "", is not accessible, since there is no readable text.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_15">
- <guideline>
- <gItem id="14.1" name="WCAG"/>
- <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
- <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>"", is inappropriate text.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_16">
- <guideline>
- <gItem id="10.2" name="WCAG"/>
- <gItem id="12.4" name="WCAG"/>
- <gItem id="n" name="Section508"/>
- <gItem id="7" name="IBMGuideline"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Operable"/>
- </metrics>
- <description>
- <desc>No ID attribute for an input element.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_17">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Operable"/>
- </metrics>
- <description>
- <desc>seconds is too long to get to the "skip to main" link</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_18">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Operable"/>
- </metrics>
- <description>
- <desc>This skip-link is broken because of a missing destination anchor "".</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_19">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Operable"/>
- </metrics>
- <description>
- <desc>"" is not appropriate for a skip-link. It should start with "skip to ..." or "jump to ...".</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_20">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Operable"/>
- </metrics>
- <description>
- <desc>Consider providing skip-links (such as "skip to main").</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="B_21">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Operable"/>
- </metrics>
- <description>
- <desc>There is no skip-link (such as "skip to main") in this page, but the transit time is short, seconds. Make sure of the necessity of the skip-link.</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="B_22">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G123,H69" id="7.2.4.1" name="JIS"/>
- <gItem id="7.2.4.10" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G123,H69" id="2.4.1" name="WCAG 2.0"/>
- <gItem id="2.4.10" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Operable"/>
- </metrics>
- <description>
- <desc>Consider providing more intra-page links or using headings. Though there are some intra-page links, the arrival time to some content is over 120 seconds.</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="B_23">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G123,H69" id="7.2.4.1" name="JIS"/>
- <gItem id="7.2.4.10" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G123,H69" id="2.4.1" name="WCAG 2.0"/>
- <gItem id="2.4.10" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Operable"/>
- </metrics>
- <description>
- <desc>Consider providing more headings or using intra-page links. Though there are some headings, the arrival time to some content is over 120 seconds.</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="B_24">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G123,H69" id="7.2.4.1" name="JIS"/>
- <gItem id="7.2.4.10" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G123,H69" id="2.4.1" name="WCAG 2.0"/>
- <gItem id="2.4.10" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Operable"/>
- </metrics>
- <description>
- <desc>Consider using intra-page links or providing more headings. Though there are intra-page links and headings, the arrival time to some content is over 120 seconds.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_25">
- <guideline>
- <gItem id="13.1" name="WCAG"/>
- <gItem techniques="H30" id="7.1.1.1" name="JIS"/>
- <gItem techniques="H30" id="7.2.4.4" name="JIS"/>
- <gItem techniques="H30" id="7.2.4.9" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="H30" id="1.1.1" name="WCAG 2.0"/>
- <gItem techniques="H30" id="2.4.4" name="WCAG 2.0"/>
- <gItem techniques="H30" id="2.4.9" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- <mItem score="2" name="Operable"/>
- </metrics>
- <description>
- <desc>This intra-page link, "", has only TITLE attribute to read out. Consider providing text in this link.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_26">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Operable"/>
- </metrics>
- <description>
- <desc>"" is not appropriate TITLE attribute for a skip-link. It should start with "skip to ..." or "jump to ...".</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_27">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="a" name="Section508"/>
- <gItem techniques="F30,G94" id="7.1.1.1" name="JIS"/>
- <gItem id="1" name="IBMGuideline"/>
- <gItem techniques="F30,G94" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>"" might contain inappropriate text for ALT. (If the image has no information to read out, please provide alt="".)</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_29">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="14.1" name="WCAG"/>
- <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
- <gItem id="1" name="IBMGuideline"/>
- <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>ALT attribute "" has inappropriate space within a word (IMAGE).</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_30">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="14.1" name="WCAG"/>
- <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
- <gItem id="7" name="IBMGuideline"/>
- <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>ALT attribute "" has inappropriate space within a word (INPUT).</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_31">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem id="14.1" name="WCAG"/>
- <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
- <gItem id="2" name="IBMGuideline"/>
- <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>ALT attribute "" has inappropriate space within a word (AREA).</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_33">
- <guideline>
- <gItem id="13.6" name="WCAG"/>
- <gItem id="o" name="Section508"/>
- <gItem techniques="G123,G124" id="7.2.4.1" name="JIS"/>
- <gItem id="8" name="IBMGuideline"/>
- <gItem techniques="G123,G124" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Operable"/>
- </metrics>
- <description>
- <desc>This intra-page link does not have destination anchor "". Please insert target anchor. (This link might work as intra-page link to page top.)</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_34">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
- <gItem id="1" name="IBMGuideline"/>
- <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>Please don't separate characters except when you want to spell out the word. (ALT attribute " ").</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_35">
- <guideline>
- <gItem techniques="G1,G123,G124" id="7.2.4.1" name="JIS"/>
- <gItem techniques="G1,G123,G124" id="2.4.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>This intra-page link, , might not be able to use. (Please use a small image with ALT instead of display:none or visibility:hidden)</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_36">
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <guideline/>
- <description>
- <desc>Please provide VALUE attribute for INPUT button.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="B_37">
- <guideline>
- <gItem id="14.1" name="WCAG"/>
- <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
- <gItem id="7" name="IBMGuideline"/>
- <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>VALUE attribute "" has inappropriate space within a word (INPUT).</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="L_1.0">
- <guideline>
- <gItem id="2.2" name="WCAG"/>
- <gItem techniques="G18,G145" id="7.1.4.3" name="JIS"/>
- <gItem techniques="G17,G18" id="7.1.4.6" name="JIS"/>
- <gItem techniques="G18,G145" id="1.4.3" name="WCAG 2.0"/>
- <gItem techniques="G17,G18" id="1.4.6" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>Foreground and background colors are too close.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="L_1.1">
- <guideline>
- <gItem id="2.2" name="WCAG"/>
- <gItem techniques="G18" id="7.1.4.3" name="JIS"/>
- <gItem techniques="G17,G18" id="7.1.4.6" name="JIS"/>
- <gItem techniques="G18" id="1.4.3" name="WCAG 2.0"/>
- <gItem techniques="G17,G18" id="1.4.6" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>Foreground and background colors are too close.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="L_1.2">
- <guideline>
- <gItem id="2.2" name="WCAG"/>
- <gItem techniques="G17" id="7.1.4.6" name="JIS"/>
- <gItem techniques="G17" id="1.4.6" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>Foreground and background colors are too close.</desc>
- </description>
- </checkitem>
- <checkitem type="warning" id="L_2">
- <guideline>
- </guideline>
- <metrics>
- <mItem score="2" name="Perceivable"/>
- </metrics>
- <description>
- <desc>It is difficult for weak-sighted to read these characters. (blur)</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="L_3">
- <guideline>
- <gItem id="2.1" name="WCAG"/>
- <gItem id="2.2" name="WCAG"/>
- <gItem id="c" name="Section508"/>
- <gItem techniques="G18,G145" id="7.1.4.3" name="JIS"/>
- <gItem techniques="G17,G18" id="7.1.4.6" name="JIS"/>
- <gItem id="12" name="IBMGuideline"/>
- <gItem techniques="G18,G145" id="1.4.3" name="WCAG 2.0"/>
- <gItem techniques="G17,G18" id="1.4.6" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Perceivable"/>
- </metrics>
- <description>
- <desc>This image has two or more components whose colors are too close.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="L_4">
- <guideline>
- <gItem id="3.4" name="WCAG"/>
- <gItem techniques="C12,C13,C14" id="7.1.4.4" name="JIS"/>
- <gItem techniques="C12,C13,C14" id="1.4.4" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>Do not use fixed-size font.</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="L_5">
- <guideline/>
- <metrics>
- <mItem name="Perceivable"/>
- </metrics>
- <description>
- <desc>This text is too small.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="L_6">
- <guideline>
- <gItem techniques="C12,C13,C14" id="7.1.4.4" name="JIS"/>
- <gItem techniques="C12,C13,C14" id="1.4.4" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>This text is too small and its font size is fixed.</desc>
- </description>
- </checkitem>
- <checkitem type="user" id="L_10">
- <guideline>
- <gItem techniques="F3" id="7.1.1.1" name="JIS"/>
- <gItem techniques="F83, G18, G145" id="7.1.4.3" name="JIS"/>
- <gItem techniques="F83, G17, G18" id="7.1.4.6" name="JIS"/>
- <gItem techniques="F3" id="1.1.1" name="WCAG 2.0"/>
- <gItem techniques="F83, G18, G145" id="1.4.3" name="WCAG 2.0"/>
- <gItem techniques="F83, G17, G18" id="1.4.6" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem name="Perceivable"/>
- </metrics>
- <description>
- <desc>Background image.</desc>
- </description>
- </checkitem>
- <checkitem type="error" id="B_38">
- <guideline>
- <gItem id="1.1" name="WCAG"/>
- <gItem techniques="F30,G94,H67" id="7.1.1.1" name="JIS"/>
- <gItem id="1" name="IBMGuideline"/>
- <gItem techniques="F30,G94,H67" id="1.1.1" name="WCAG 2.0"/>
- </guideline>
- <metrics>
- <mItem score="5" name="Perceivable"/>
- </metrics>
- <description>
- <desc>"" is not appropriate as an ALT attribute for an image.</desc>
- </description>
- </checkitem>
-</checker-config>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<!--
+ Copyright (c) 2005, 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
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+ IBM Corporation - initial API and implementation
+-->
+<checker-config>
+ <checkitem type="error" id="C_1000.0">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>This page seems to have several BODY elements. Please correct html.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="C_1000.1">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>This page seems to have HEAD element under BODY element. Please correct html.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="C_1000.2">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>This page seems to have several HTML elements. Please correct html.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="C_1000.3">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>BODY elements seems to be not properly placed. Please correct html.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="C_1000.4">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>This page seems to have no BODY element, or position of BODY is wrong. Please correct html.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="C_1000.5">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>This page seems to have no BODY (or HEAD) element, or position of BODY is wrong. Please correct html.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="C_1000.6">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Robust"/>
+ </metrics>
+ <description>
+ <desc>Make sure to use a public text identifier in a &lt;!DOCTYPE&gt; statement.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="C_1000.7">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Robust"/>
+ </metrics>
+ <description>
+ <desc>As no DOCTYPE declaration is found, validators may produce wrong results and conformance of the document is not able to be checked.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="C_1000.8">
+ <guideline>
+ <gItem id="3.2" name="WCAG"/>
+ <gItem techniques="H88" id="7.4.1.1" name="JIS"/>
+ <gItem techniques="H88" id="4.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Robust"/>
+ </metrics>
+ <description>
+ <desc>Byte-Order Mark (BOM) found in non HTML5 document. Consider to remove BOM to avoid unexpected error.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_0">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="a" name="Section508"/>
+ <gItem techniques="H37,H67,F38,F65" id="7.1.1.1" name="JIS"/>
+ <gItem id="1" name="IBMGuideline"/>
+ <gItem techniques="H37,H67,F38,F65" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>No alternative text for an image (If the image has no information to read out, please provide alt="".): src="".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_1">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="a" name="Section508"/>
+ <gItem id="n" name="Section508"/>
+ <gItem techniques="H36,F65" id="7.1.1.1" name="JIS"/>
+ <gItem id="7" name="IBMGuideline"/>
+ <gItem techniques="H36,F65" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>No alternative text for an image button.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_2">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="a" name="Section508"/>
+ <gItem techniques="H24,F65" id="7.1.1.1" name="JIS"/>
+ <gItem id="2" name="IBMGuideline"/>
+ <gItem techniques="H24,F65" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>No alternative text for an AREA: map name="".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_4">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="1" name="IBMGuideline"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>"" is not appropriate as an ALT attribute for an image.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_5">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem techniques="F30,G94" id="7.1.1.1" name="JIS"/>
+ <gItem id="7" name="IBMGuideline"/>
+ <gItem techniques="F30,G94" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>"" is not appropriate as an ALT attribute for an image button.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_6">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem techniques="F30,G94" id="7.1.1.1" name="JIS"/>
+ <gItem id="2" name="IBMGuideline"/>
+ <gItem techniques="F30,G94" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>"" is not appropriate as an ALT attribute for an AREA.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_8">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G123,G124" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G123,G124" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>This intra-page link is broken because of a missing destination anchor "".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_9">
+ <guideline>
+ <gItem id="13.1" name="WCAG"/>
+ <gItem techniques="H2" id="7.1.1.1" name="JIS"/>
+ <gItem id="1" name="IBMGuideline"/>
+ <gItem id="2" name="IBMGuideline"/>
+ <gItem id="7" name="IBMGuideline"/>
+ <gItem techniques="H2" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Redundant text information: .</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_10">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>Provide skip-links such as "skip to main".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="info" id="B_12">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="H42" id="7.1.3.1" name="JIS"/>
+ <gItem techniques="G1, G123, G124, H69" id="7.2.4.1" name="JIS"/>
+ <gItem techniques="G141" id="7.2.4.10" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="H42" id="1.3.1" name="WCAG 2.0"/>
+ <gItem techniques="G1, G123, G124, H69" id="2.4.1" name="WCAG 2.0"/>
+ <gItem techniques="G141" id="2.4.10" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Perceivable"/>
+ <mItem name="Operable"/>
+ </metrics>
+ <description>
+ <desc>Provide intra-page links or use headings. Because there are no effective intra-page links or headings, arrival time to some content is over 120 seconds.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_14">
+ <guideline>
+ <gItem id="13.1" name="WCAG"/>
+ <gItem techniques="H30" id="7.1.1.1" name="JIS"/>
+ <gItem techniques="H30" id="7.2.4.4" name="JIS"/>
+ <gItem techniques="H30" id="7.2.4.9" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="H30" id="1.1.1" name="WCAG 2.0"/>
+ <gItem techniques="H30" id="2.4.4" name="WCAG 2.0"/>
+ <gItem techniques="H30" id="2.4.9" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ <mItem score="5" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>This intra-page link, "", is not accessible, since there is no readable text.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_15">
+ <guideline>
+ <gItem id="14.1" name="WCAG"/>
+ <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
+ <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>"", is inappropriate text.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_16">
+ <guideline>
+ <gItem id="10.2" name="WCAG"/>
+ <gItem id="12.4" name="WCAG"/>
+ <gItem id="n" name="Section508"/>
+ <gItem id="7" name="IBMGuideline"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>No ID attribute for an input element.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_17">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>seconds is too long to get to the "skip to main" link</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_18">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>This skip-link is broken because of a missing destination anchor "".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_19">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>"" is not appropriate for a skip-link. It should start with "skip to ..." or "jump to ...".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_20">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>Consider providing skip-links (such as "skip to main").</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="B_21">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Operable"/>
+ </metrics>
+ <description>
+ <desc>There is no skip-link (such as "skip to main") in this page, but the transit time is short, seconds. Make sure of the necessity of the skip-link.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="B_22">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G123,H69" id="7.2.4.1" name="JIS"/>
+ <gItem id="7.2.4.10" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G123,H69" id="2.4.1" name="WCAG 2.0"/>
+ <gItem id="2.4.10" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Operable"/>
+ </metrics>
+ <description>
+ <desc>Consider providing more intra-page links or using headings. Though there are some intra-page links, the arrival time to some content is over 120 seconds.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="B_23">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G123,H69" id="7.2.4.1" name="JIS"/>
+ <gItem id="7.2.4.10" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G123,H69" id="2.4.1" name="WCAG 2.0"/>
+ <gItem id="2.4.10" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Operable"/>
+ </metrics>
+ <description>
+ <desc>Consider providing more headings or using intra-page links. Though there are some headings, the arrival time to some content is over 120 seconds.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="B_24">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G123,H69" id="7.2.4.1" name="JIS"/>
+ <gItem id="7.2.4.10" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G123,H69" id="2.4.1" name="WCAG 2.0"/>
+ <gItem id="2.4.10" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Operable"/>
+ </metrics>
+ <description>
+ <desc>Consider using intra-page links or providing more headings. Though there are intra-page links and headings, the arrival time to some content is over 120 seconds.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_25">
+ <guideline>
+ <gItem id="13.1" name="WCAG"/>
+ <gItem techniques="H30" id="7.1.1.1" name="JIS"/>
+ <gItem techniques="H30" id="7.2.4.4" name="JIS"/>
+ <gItem techniques="H30" id="7.2.4.9" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="H30" id="1.1.1" name="WCAG 2.0"/>
+ <gItem techniques="H30" id="2.4.4" name="WCAG 2.0"/>
+ <gItem techniques="H30" id="2.4.9" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ <mItem score="2" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>This intra-page link, "", has only TITLE attribute to read out. Consider providing text in this link.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_26">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G1" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G1" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>"" is not appropriate TITLE attribute for a skip-link. It should start with "skip to ..." or "jump to ...".</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_27">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="a" name="Section508"/>
+ <gItem techniques="F30,G94" id="7.1.1.1" name="JIS"/>
+ <gItem id="1" name="IBMGuideline"/>
+ <gItem techniques="F30,G94" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>"" might contain inappropriate text for ALT. (If the image has no information to read out, please provide alt="".)</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_29">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="14.1" name="WCAG"/>
+ <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
+ <gItem id="1" name="IBMGuideline"/>
+ <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>ALT attribute "" has inappropriate space within a word (IMAGE).</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_30">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="14.1" name="WCAG"/>
+ <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
+ <gItem id="7" name="IBMGuideline"/>
+ <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>ALT attribute "" has inappropriate space within a word (INPUT).</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_31">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem id="14.1" name="WCAG"/>
+ <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
+ <gItem id="2" name="IBMGuideline"/>
+ <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>ALT attribute "" has inappropriate space within a word (AREA).</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_33">
+ <guideline>
+ <gItem id="13.6" name="WCAG"/>
+ <gItem id="o" name="Section508"/>
+ <gItem techniques="G123,G124" id="7.2.4.1" name="JIS"/>
+ <gItem id="8" name="IBMGuideline"/>
+ <gItem techniques="G123,G124" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Operable"/>
+ </metrics>
+ <description>
+ <desc>This intra-page link does not have destination anchor "". Please insert target anchor. (This link might work as intra-page link to page top.)</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_34">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
+ <gItem id="1" name="IBMGuideline"/>
+ <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Please don't separate characters except when you want to spell out the word. (ALT attribute " ").</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_35">
+ <guideline>
+ <gItem techniques="G1,G123,G124" id="7.2.4.1" name="JIS"/>
+ <gItem techniques="G1,G123,G124" id="2.4.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>This intra-page link, , might not be able to use. (Please use a small image with ALT instead of display:none or visibility:hidden)</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_36">
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <guideline/>
+ <description>
+ <desc>Please provide VALUE attribute for INPUT button.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="B_37">
+ <guideline>
+ <gItem id="14.1" name="WCAG"/>
+ <gItem techniques="C8,F32" id="7.1.3.2" name="JIS"/>
+ <gItem id="7" name="IBMGuideline"/>
+ <gItem techniques="C8,F32" id="1.3.2" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>VALUE attribute "" has inappropriate space within a word (INPUT).</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="L_1.0">
+ <guideline>
+ <gItem id="2.2" name="WCAG"/>
+ <gItem techniques="G18,G145" id="7.1.4.3" name="JIS"/>
+ <gItem techniques="G17,G18" id="7.1.4.6" name="JIS"/>
+ <gItem techniques="G18,G145" id="1.4.3" name="WCAG 2.0"/>
+ <gItem techniques="G17,G18" id="1.4.6" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Foreground and background colors are too close.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="L_1.1">
+ <guideline>
+ <gItem id="2.2" name="WCAG"/>
+ <gItem techniques="G18" id="7.1.4.3" name="JIS"/>
+ <gItem techniques="G17,G18" id="7.1.4.6" name="JIS"/>
+ <gItem techniques="G18" id="1.4.3" name="WCAG 2.0"/>
+ <gItem techniques="G17,G18" id="1.4.6" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Foreground and background colors are too close.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="L_1.2">
+ <guideline>
+ <gItem id="2.2" name="WCAG"/>
+ <gItem techniques="G17" id="7.1.4.6" name="JIS"/>
+ <gItem techniques="G17" id="1.4.6" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Foreground and background colors are too close.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="warning" id="L_2">
+ <guideline>
+ </guideline>
+ <metrics>
+ <mItem score="2" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>It is difficult for weak-sighted to read these characters. (blur)</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="L_3">
+ <guideline>
+ <gItem id="2.1" name="WCAG"/>
+ <gItem id="2.2" name="WCAG"/>
+ <gItem id="c" name="Section508"/>
+ <gItem techniques="G18,G145" id="7.1.4.3" name="JIS"/>
+ <gItem techniques="G17,G18" id="7.1.4.6" name="JIS"/>
+ <gItem id="12" name="IBMGuideline"/>
+ <gItem techniques="G18,G145" id="1.4.3" name="WCAG 2.0"/>
+ <gItem techniques="G17,G18" id="1.4.6" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>This image has two or more components whose colors are too close.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="L_4">
+ <guideline>
+ <gItem id="3.4" name="WCAG"/>
+ <gItem techniques="C12,C13,C14" id="7.1.4.4" name="JIS"/>
+ <gItem techniques="C12,C13,C14" id="1.4.4" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Do not use fixed-size font.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="L_5">
+ <guideline/>
+ <metrics>
+ <mItem name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>This text is too small.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="L_6">
+ <guideline>
+ <gItem techniques="C12,C13,C14" id="7.1.4.4" name="JIS"/>
+ <gItem techniques="C12,C13,C14" id="1.4.4" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>This text is too small and its font size is fixed.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="user" id="L_10">
+ <guideline>
+ <gItem techniques="F3" id="7.1.1.1" name="JIS"/>
+ <gItem techniques="F83, G18, G145" id="7.1.4.3" name="JIS"/>
+ <gItem techniques="F83, G17, G18" id="7.1.4.6" name="JIS"/>
+ <gItem techniques="F3" id="1.1.1" name="WCAG 2.0"/>
+ <gItem techniques="F83, G18, G145" id="1.4.3" name="WCAG 2.0"/>
+ <gItem techniques="F83, G17, G18" id="1.4.6" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>Background image.</desc>
+ </description>
+ </checkitem>
+ <checkitem type="error" id="B_38">
+ <guideline>
+ <gItem id="1.1" name="WCAG"/>
+ <gItem techniques="F30,G94,H67" id="7.1.1.1" name="JIS"/>
+ <gItem id="1" name="IBMGuideline"/>
+ <gItem techniques="F30,G94,H67" id="1.1.1" name="WCAG 2.0"/>
+ </guideline>
+ <metrics>
+ <mItem score="5" name="Perceivable"/>
+ </metrics>
+ <description>
+ <desc>"" is not appropriate as an ALT attribute for an image.</desc>
+ </description>
+ </checkitem>
+</checker-config>
diff --git a/plugins/org.eclipse.actf.visualization.eval/resources/description.properties b/plugins/org.eclipse.actf.visualization.eval/resources/description.properties
index a006412..c145db3 100644
--- a/plugins/org.eclipse.actf.visualization.eval/resources/description.properties
+++ b/plugins/org.eclipse.actf.visualization.eval/resources/description.properties
@@ -1,63 +1,63 @@
-###############################################################################
-# Copyright (c) 2005, 2012 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
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-B_0 = No alternative text for an image. Provide its text alternative. (If the image should be ignored by assistive technology, provide alt="" and no title attribute.): src="{0}".
-B_1 = No alternative text for an image button. Provide its text alternative.
-B_2 = No alternative text for an area element: {0}. Provide its text alternative.
-B_4 = "{0}" is not appropriate as an alt attribute for an image.
-B_5 = "{0}" may be inappropriate as an alt attribute for an image button.
-B_6 = "{0}" may be inappropriate as an alt attribute for an area element.
-B_8 = This intra-page link is broken because of a missing destination anchor "{0}".
-B_9 = Redundant text information: {0}
-B_10 = Provide skip-links such as "skip to main".
-B_12 = Provide intra-page links or use headings. Because there are no effective intra-page links or headings, arrival time to some content is over 120 seconds.
-B_14 = This intra-page link, "{0}", is not accessible, since there is no readable text.
-B_15 = "{0}" may be inappropriate text (space separated characters).
-B_16 = No id attribute for an input element.
-B_17 = {0} seconds is too long to get to the "skip to main" link
-B_18 = This skip-link is broken because of a missing destination anchor "{0}".
-B_19 = "{0}" is not appropriate for a skip-link. It should start with "skip to ..." or "jump to ...".
-B_20 = Consider providing skip-links (such as "skip to main").
-B_21 = There is no skip-link (such as "skip to main") in this page, but the transit time is short, {0} seconds. Make sure of the necessity of the skip-link.
-B_22 = Consider providing more intra-page links or using headings. Though there are some intra-page links, the arrival time to some content is over 120 seconds.
-B_23 = Consider providing more headings or using intra-page links. Though there are some headings, the arrival time to some content is over 120 seconds.
-B_24 = Consider using intra-page links or providing more headings. Though there are intra-page links and headings, the arrival time to some content is over 120 seconds.
-B_25 = This intra-page link, "{0}", has only title attribute to read out. Consider providing text in this link.
-B_26 = "{0}" is not appropriate title attribute for a skip-link. It should start with "skip to ..." or "jump to ...".
-B_27 = "{0}" might contain inappropriate text for ALT. (If the image should be ignored by assistive technology, provide alt="" and no title attribute. Otherwise, provide appropriate alternative text.)
-B_29 = The alt attribute "{0}" has inappropriate space within a word (image).
-B_30 = The alt attribute "{0}" of the input element has inappropriate spaces within a word.
-B_31 = The alt attribute "{0}" has inappropriate space within a word (area).
-B_33 = This intra-page link does not have destination anchor "{0}". Please insert target anchor. (This link might work as intra-page link to page top.)
-B_34 = Do not separate characters except when you want to spell out the word. (alt attribute "{0}").
-B_35 = This intra-page link, {0} , might not be able to use. (Please use a small image with alt instead of display:none or visibility:hidden)
-B_36 = Please provide value attribute for input button.
-B_37 = The value attribute "{0}" has inappropriate space within a word (input).
-B_38 = "{0}" is not appropriate as an ALT attribute for an image (it contains characters). If the image should be ignored by assistive technology, provide alt="" and no title attribute. Otherwise, provide appropriate alternative text.
-
-C_1000.0 = This page seems to have several body elements. Please correct the HTML document.
-C_1000.1 = This page seems to have head element under body element. Please correct the HTML document.
-C_1000.2 = This page seems to have several html elements. Please correct the HTML document.
-C_1000.3 = The body elements seems to be not properly placed. Please correct the HTML document.
-C_1000.4 = This page seems to have no body element, or position of body is wrong. Please correct the HTML document.
-C_1000.5 = This page seems to have no body (or HEAD) element, or position of body is wrong. Please correct the HTML document.
-C_1000.6 = The public identifier specified in the DOCTYPE declaration is not well-known. validators may produce wrong results and conformance checking of the document may be impossible.
-C_1000.7 = As no DOCTYPE declaration is found, validators may produce wrong results and conformance of the document is not able to be checked.
-C_1000.8 = Byte-Order Mark (BOM) found in UTF-8 HTML file. BOM should be removed to avoid unexpected error.
-
-L_1.0 = Foreground and background colors are too close. {0}
-L_1.1 = Foreground and background colors are too close. {0}
-L_1.2 = Foreground and background colors are close. {0}
-L_2 = It is difficult for weak-sighted to read these characters. (blur)
-L_3 = This image has two or more components whose colors are too close.
-L_4 = Do not use fixed-size font.
-L_5 = This text is too small.
-L_6 = This text is too small and its font size is fixed.
+###############################################################################
+# Copyright (c) 2005, 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
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+B_0 = No alternative text for an image. Provide its text alternative. (If the image should be ignored by assistive technology, provide alt="" and no title attribute.): src="{0}".
+B_1 = No alternative text for an image button. Provide its text alternative.
+B_2 = No alternative text for an area element: {0}. Provide its text alternative.
+B_4 = "{0}" is not appropriate as an alt attribute for an image.
+B_5 = "{0}" may be inappropriate as an alt attribute for an image button.
+B_6 = "{0}" may be inappropriate as an alt attribute for an area element.
+B_8 = This intra-page link is broken because of a missing destination anchor "{0}".
+B_9 = Redundant text information: {0}
+B_10 = Provide skip-links such as "skip to main".
+B_12 = Provide intra-page links or use headings. Because there are no effective intra-page links or headings, arrival time to some content is over 120 seconds.
+B_14 = This intra-page link, "{0}", is not accessible, since there is no readable text.
+B_15 = "{0}" may be inappropriate text (space separated characters).
+B_16 = No id attribute for an input element.
+B_17 = {0} seconds is too long to get to the "skip to main" link
+B_18 = This skip-link is broken because of a missing destination anchor "{0}".
+B_19 = "{0}" is not appropriate for a skip-link. It should start with "skip to ..." or "jump to ...".
+B_20 = Consider providing skip-links (such as "skip to main").
+B_21 = There is no skip-link (such as "skip to main") in this page, but the transit time is short, {0} seconds. Make sure of the necessity of the skip-link.
+B_22 = Consider providing more intra-page links or using headings. Though there are some intra-page links, the arrival time to some content is over 120 seconds.
+B_23 = Consider providing more headings or using intra-page links. Though there are some headings, the arrival time to some content is over 120 seconds.
+B_24 = Consider using intra-page links or providing more headings. Though there are intra-page links and headings, the arrival time to some content is over 120 seconds.
+B_25 = This intra-page link, "{0}", has only title attribute to read out. Consider providing text in this link.
+B_26 = "{0}" is not appropriate title attribute for a skip-link. It should start with "skip to ..." or "jump to ...".
+B_27 = "{0}" might contain inappropriate text for ALT. (If the image should be ignored by assistive technology, provide alt="" and no title attribute. Otherwise, provide appropriate alternative text.)
+B_29 = The alt attribute "{0}" has inappropriate space within a word (image).
+B_30 = The alt attribute "{0}" of the input element has inappropriate spaces within a word.
+B_31 = The alt attribute "{0}" has inappropriate space within a word (area).
+B_33 = This intra-page link does not have destination anchor "{0}". Please insert target anchor. (This link might work as intra-page link to page top.)
+B_34 = Do not separate characters except when you want to spell out the word. (alt attribute "{0}").
+B_35 = This intra-page link, {0} , might not be able to use. (Please use a small image with alt instead of display:none or visibility:hidden)
+B_36 = Please provide value attribute for input button.
+B_37 = The value attribute "{0}" has inappropriate space within a word (input).
+B_38 = "{0}" is not appropriate as an ALT attribute for an image (it contains characters). If the image should be ignored by assistive technology, provide alt="" and no title attribute. Otherwise, provide appropriate alternative text.
+
+C_1000.0 = This page seems to have several body elements. Please correct the HTML document.
+C_1000.1 = This page seems to have head element under body element. Please correct the HTML document.
+C_1000.2 = This page seems to have several html elements. Please correct the HTML document.
+C_1000.3 = The body elements seems to be not properly placed. Please correct the HTML document.
+C_1000.4 = This page seems to have no body element, or position of body is wrong. Please correct the HTML document.
+C_1000.5 = This page seems to have no body (or HEAD) element, or position of body is wrong. Please correct the HTML document.
+C_1000.6 = The public identifier specified in the DOCTYPE declaration is not well-known. validators may produce wrong results and conformance checking of the document may be impossible.
+C_1000.7 = As no DOCTYPE declaration is found, validators may produce wrong results and conformance of the document is not able to be checked.
+C_1000.8 = Byte-Order Mark (BOM) found in non HTML5 document. Consider to remove BOM to avoid unexpected error.
+
+L_1.0 = Foreground and background colors are too close. {0}
+L_1.1 = Foreground and background colors are too close. {0}
+L_1.2 = Foreground and background colors are close. {0}
+L_2 = It is difficult for weak-sighted to read these characters. (blur)
+L_3 = This image has two or more components whose colors are too close.
+L_4 = Do not use fixed-size font.
+L_5 = This text is too small.
+L_6 = This text is too small and its font size is fixed.
L_10 = This area has background image. Please confirm the contrast between text and background, and confirm important information is not provided only by background image. .{0}
\ No newline at end of file
diff --git a/plugins/org.eclipse.actf.visualization.eval/resources/description_ja.properties b/plugins/org.eclipse.actf.visualization.eval/resources/description_ja.properties
index 5ec2095..b733346 100644
--- a/plugins/org.eclipse.actf.visualization.eval/resources/description_ja.properties
+++ b/plugins/org.eclipse.actf.visualization.eval/resources/description_ja.properties
@@ -1,63 +1,63 @@
-###############################################################################
-# Copyright (c) 2005, 2012 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
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-# IBM Corporation - initial API and implementation
-###############################################################################
-B_0 = \u753b\u50cf\u306balt\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002(\u3082\u3057\u652f\u63f4\u6280\u8853\u304c\u3053\u306e\u753b\u50cf\u3092\u7121\u8996\u3059\u308b\u3079\u304d\u5834\u5408\u306f\u3001 alt="" \u3068\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044)\uff1a src="{0}"
-B_1 = \u753b\u50cf\u30dc\u30bf\u30f3\u306balt\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-B_2 = area\u8981\u7d20\u306balt\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093\uff1a {0}\u3002\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-B_4 = "{0}"\u306f\u753b\u50cf\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3059
-B_5 = "{0}"\u306f\u753b\u50cf\u30dc\u30bf\u30f3\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
-B_6 = "{0}"\u306farea\u8981\u7d20\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
-B_8 = \u3053\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u3001\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc"{0}"\u304c\u5b58\u5728\u3057\u306a\u3044\u305f\u3081\u5229\u7528\u3067\u304d\u307e\u305b\u3093
-B_9 = \u540c\u4e00\u30c6\u30ad\u30b9\u30c8\u306e\u7e70\u308a\u8fd4\u3057\u304c\u3042\u308a\u307e\u3059\uff1a {0}
-B_10 = "\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3000\uff08\u672c\u6587\u3078\u30b8\u30e3\u30f3\u30d7\u3001\u672c\u6587\u3078\u306e\u30ea\u30f3\u30af\u7b49\uff09
-B_12 = \u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3082\u3057\u304f\u306f\u898b\u51fa\u3057\uff08h1\u3001h2\u2026\uff09\u3092\u5229\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u52b9\u679c\u7684\u306a\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u30fb\u898b\u51fa\u3057\u304c\u7121\u3044\u305f\u3081\u3001\u5230\u7740\u306b2\u5206\u4ee5\u4e0a\u304b\u304b\u308b\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
-B_14 = \u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af "{0}"\u3000\u306f\u3001\u8aad\u307f\u4e0a\u3052\u53ef\u80fd\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u6301\u305f\u306a\u3044\u305f\u3081\u3001\u97f3\u58f0\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093
-B_15 = "{0}"\u3000\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
-B_16 = input\u306bid\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093
-B_17 = "\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u3078\u306e\u5230\u9054\u306b{0}\u79d2\u3082\u304b\u304b\u308a\u307e\u3059\u3000(\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306e\u633f\u5165\u4f4d\u7f6e\u3092\u898b\u76f4\u3057\u3066\u304f\u3060\u3055\u3044)
-B_18 = \u3053\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc"{0}"\u304c\u5b58\u5728\u3057\u306a\u3044\u305f\u3081\u5229\u7528\u3067\u304d\u307e\u305b\u3093
-B_19 = \u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f"\u672c\u6587\u3078\u79fb\u52d5"\u3001"\u672c\u6587\u3078\u306e\u30ea\u30f3\u30af"\u7b49\u3001\u306a\u308b\u3079\u304f\u7c21\u6613\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u7528\u3044\u3066\u4e0b\u3055\u3044\u3000"{0}"\u3000\u306f\u5c11\u3057\u5197\u9577\u3067\u3059
-B_20 = "\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306e\u63d0\u4f9b\u3092\u691c\u8a0e\u3057\u3066\u4e0b\u3055\u3044
-B_21 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f"\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u5404\u30b3\u30f3\u30c6\u30f3\u30c4\u3078\u306e\u5230\u9054\u6642\u9593\u306f\u6700\u5927\u3067\u3082{0}\u79d2\u3067\u3059\u3000(\u5fc5\u8981\u304c\u3042\u308c\u3070\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306e\u63d0\u4f9b\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044)
-B_22 = \u3088\u308a\u591a\u304f\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306e\u63d0\u4f9b\u3084\u3001\u898b\u51fa\u3057\u306e\u5229\u7528\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u65e2\u306b\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u304c\u5229\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u5230\u9054\u306b2\u5206\u4ee5\u4e0a\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
-B_23 = \u3088\u308a\u591a\u304f\u306e\u898b\u51fa\u3057\u3092\u63d0\u4f9b\u3059\u308b\u304b\u3001\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306e\u5229\u7528\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u898b\u51fa\u3057\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u5230\u9054\u306b2\u5206\u4ee5\u4e0a\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
-B_24 = \u3088\u308a\u591a\u304f\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u30fb\u898b\u51fa\u3057\u306e\u5229\u7528\u3092\u8003\u616e\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u65e2\u306b\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u30fb\u898b\u51fa\u3057\u304c\u7528\u3044\u3089\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u5230\u9054\u306b2\u5206\u4ee5\u4e0a\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
-B_25 = \u3053\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af"{0}"\u306b\u306f\u3001\u8aad\u307f\u4e0a\u3052\u53ef\u80fd\u306a\u60c5\u5831\u3068\u3057\u3066title\u5c5e\u6027\u306e\u307f\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002\u30ea\u30f3\u30af\u5185\u306b\u4f55\u3089\u304b\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044
-B_26 = \u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f"\u672c\u6587\u3078\u306e\u79fb\u52d5"\u3001"\u672c\u6587\u3078\u306e\u30ea\u30f3\u30af"\u7b49\u306a\u308b\u3079\u304f\u7c21\u6613\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u5229\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002"{0}"\u306f\u5c11\u3057\u5197\u9577\u3067\u3059\u3002
-B_27 = "{0}"\u306f\u753b\u50cf\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u306a\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\uff08\u3082\u3057\u652f\u63f4\u6280\u8853\u304c\u3053\u306e\u753b\u50cf\u3092\u7121\u8996\u3059\u308b\u3079\u304d\u5834\u5408\u306f\u3001alt=""\u3068\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u9069\u5207\u306a\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\uff09
-B_29 = \u753b\u50cf\u306ealt\u5c5e\u6027\u201d{0}\u201d\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-B_30 = \u753b\u50cf\u30dc\u30bf\u30f3\u306ealt\u5c5e\u6027\u201d{0}\u201d\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-B_31 = area\u306ealt\u5c5e\u6027\u201d{0}\u201d\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-B_33 = \u3053\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc"{0}"\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\uff0e\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc\u3092\u633f\u5165\u3057\u3066\u304f\u3060\u3055\u3044 (\u30da\u30fc\u30b8\u306e\u5148\u982d\u3078\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b\u5834\u5408\u3082\u3042\u308a\u307e\u3059)
-B_34 = \u5358\u8a9e\u306e\u3064\u3065\u308a\u3092\u8a18\u8ff0\u3057\u305f\u3044\u5834\u5408\u4ee5\u5916\u306f\uff0c\u6587\u5b57\u3092\u7a7a\u767d\u3067\u533a\u5207\u3063\u3066\u8a18\u8ff0\u3059\u308b\u3053\u3068\u306f\u907f\u3051\u3066\u304f\u3060\u3055\u3044 (alt\u5c5e\u6027 "{0}")
-B_35 = \u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\uff0c {0} \uff0c\u306f\u5229\u7528\u3067\u304d\u306a\u3044\u3068\u601d\u308f\u308c\u307e\u3059\uff0e\uff08display:none\u3084display:hidden\u306e\u4ee3\u308f\u308a\u306b\uff0c\u30ea\u30f3\u30af\u5185\u306balt\u5c5e\u6027\u3092\u4ed8\u3051\u305f\u5c0f\u3055\u306a\u753b\u50cf\u3092\u914d\u7f6e\u3059\u308b\u306a\u3069\u3057\u3066\u4e0b\u3055\u3044\uff09
-B_36 = \u30dc\u30bf\u30f3(input)\u306b\u306fvalue\u5c5e\u6027\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044 \u3002
-B_37 = \u201d{0}\u201d\u30dc\u30bf\u30f3\uff08input\u306evalue\u5c5e\u6027\uff09\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-B_38 = "{0}"\uff08 \u3092\u542b\u3080\u7a7a\u767d\u6587\u5b57\u306e\u307f\uff09\u306f\u753b\u50cf\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3059\u3002 (\u3082\u3057\u652f\u63f4\u6280\u8853\u304c\u3053\u306e\u753b\u50cf\u3092\u7121\u8996\u3059\u308b\u3079\u304d\u5834\u5408\u306f\u3001 alt="" \u3068\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u9069\u5207\u306a\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002)
-
-C_1000.0 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u8907\u6570\u306ebody\u8981\u7d20\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-C_1000.1 = body\u8981\u7d20\u306e\u4e2d\u306bhead\u8981\u7d20\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-C_1000.2 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u8907\u6570\u306ehtml\u8981\u7d20\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-C_1000.3 = body\u8981\u7d20\u306e\u4f4d\u7f6e\u304c\u6b63\u3057\u304f\u306a\u3044\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-C_1000.4 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306fbody\u8981\u7d20\u304c\u7121\u3044\u304b\uff0c\u8aa4\u3063\u305f\u4f4d\u7f6e\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-C_1000.5 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306fbody\u8981\u7d20\u3082\u3057\u304f\u306fhead\u8981\u7d20\u304c\u7121\u3044\u304b\uff0c\u8aa4\u3063\u305f\u4f4d\u7f6e\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
-C_1000.6 = \u6587\u66f8\u306eDOCTYPE\u5ba3\u8a00\u3067\u6307\u5b9a\u3055\u308c\u305f\u516c\u958b\u8b58\u5225\u5b50\u306f\u3088\u304f\u77e5\u3089\u308c\u305f\u3082\u306e\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u30d0\u30ea\u30c7\u30fc\u30bf\u304c\u8aa4\u3063\u305f\u691c\u8a3c\u7d50\u679c\u3092\u8fd4\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u6587\u66f8\u304c\u4ed5\u69d8\u306b\u6e96\u62e0\u3059\u308b\u304b\u3069\u3046\u304b\u5224\u5b9a\u3067\u304d\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
-C_1000.7 = \u6587\u66f8\u306bDOCTYPE\u5ba3\u8a00\u304c\u306a\u3044\u305f\u3081\u3001\u30d0\u30ea\u30c7\u30fc\u30bf\u304c\u8aa4\u3063\u305f\u691c\u8a3c\u7d50\u679c\u3092\u8fd4\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u6587\u66f8\u304c\u4ed5\u69d8\u306b\u6e96\u62e0\u3059\u308b\u304b\u3069\u3046\u304b\u5224\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
-C_1000.8 = Byte-Order Mark (BOM)\u304cUTF-8\u306eHTML\u30d5\u30a1\u30a4\u30eb\u306b\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\u601d\u3044\u304c\u3051\u306a\u3044\u554f\u984c\u3092\u907f\u3051\u308b\u305f\u3081\u3001BOM\u3092\u524a\u9664\u3057\u3066\u304f\u3060\u3055\u3044\u3002
-
-L_1.0 = \u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c3:1\u672a\u6e80\u3067\u3059\u3002{0}
-L_1.1 = \u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c4.5:1\u672a\u6e80\u3067\u3059\u3002 {0}
-L_1.2 = \u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c7:1\u672a\u6e80\u3067\u3059\u3002 {0}
-L_2 = \u3053\u306e\u6587\u5b57\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002
-L_3 = \u3053\u306e\u753b\u50cf\u306b\u306f\u533a\u5225\u3057\u3065\u3089\u3044\u8272\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
-L_4 = \u56fa\u5b9a\u30b5\u30a4\u30ba\u306e\u30d5\u30a9\u30f3\u30c8\u306f\u4f7f\u308f\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002
-L_5 = \u3053\u306e\u6587\u5b57\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002
-L_6 = \u3053\u306e\u6587\u5b57\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\u3055\u3089\u306b\u56fa\u5b9a\u30b5\u30a4\u30ba\u306e\u30d5\u30a9\u30f3\u30c8\u304c\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002
+###############################################################################
+# Copyright (c) 2005, 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
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+B_0 = \u753b\u50cf\u306balt\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002(\u3082\u3057\u652f\u63f4\u6280\u8853\u304c\u3053\u306e\u753b\u50cf\u3092\u7121\u8996\u3059\u308b\u3079\u304d\u5834\u5408\u306f\u3001 alt="" \u3068\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044)\uff1a src="{0}"
+B_1 = \u753b\u50cf\u30dc\u30bf\u30f3\u306balt\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093\u3002\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+B_2 = area\u8981\u7d20\u306balt\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093\uff1a {0}\u3002\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+B_4 = "{0}"\u306f\u753b\u50cf\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3059
+B_5 = "{0}"\u306f\u753b\u50cf\u30dc\u30bf\u30f3\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
+B_6 = "{0}"\u306farea\u8981\u7d20\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3042\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
+B_8 = \u3053\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u3001\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc"{0}"\u304c\u5b58\u5728\u3057\u306a\u3044\u305f\u3081\u5229\u7528\u3067\u304d\u307e\u305b\u3093
+B_9 = \u540c\u4e00\u30c6\u30ad\u30b9\u30c8\u306e\u7e70\u308a\u8fd4\u3057\u304c\u3042\u308a\u307e\u3059\uff1a {0}
+B_10 = "\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3000\uff08\u672c\u6587\u3078\u30b8\u30e3\u30f3\u30d7\u3001\u672c\u6587\u3078\u306e\u30ea\u30f3\u30af\u7b49\uff09
+B_12 = \u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3082\u3057\u304f\u306f\u898b\u51fa\u3057\uff08h1\u3001h2\u2026\uff09\u3092\u5229\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u52b9\u679c\u7684\u306a\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u30fb\u898b\u51fa\u3057\u304c\u7121\u3044\u305f\u3081\u3001\u5230\u7740\u306b2\u5206\u4ee5\u4e0a\u304b\u304b\u308b\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
+B_14 = \u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af "{0}"\u3000\u306f\u3001\u8aad\u307f\u4e0a\u3052\u53ef\u80fd\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u6301\u305f\u306a\u3044\u305f\u3081\u3001\u97f3\u58f0\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u305b\u3093
+B_15 = "{0}"\u3000\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059
+B_16 = input\u306bid\u5c5e\u6027\u304c\u3042\u308a\u307e\u305b\u3093
+B_17 = "\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u3078\u306e\u5230\u9054\u306b{0}\u79d2\u3082\u304b\u304b\u308a\u307e\u3059\u3000(\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306e\u633f\u5165\u4f4d\u7f6e\u3092\u898b\u76f4\u3057\u3066\u304f\u3060\u3055\u3044)
+B_18 = \u3053\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc"{0}"\u304c\u5b58\u5728\u3057\u306a\u3044\u305f\u3081\u5229\u7528\u3067\u304d\u307e\u305b\u3093
+B_19 = \u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f"\u672c\u6587\u3078\u79fb\u52d5"\u3001"\u672c\u6587\u3078\u306e\u30ea\u30f3\u30af"\u7b49\u3001\u306a\u308b\u3079\u304f\u7c21\u6613\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u7528\u3044\u3066\u4e0b\u3055\u3044\u3000"{0}"\u3000\u306f\u5c11\u3057\u5197\u9577\u3067\u3059
+B_20 = "\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306e\u63d0\u4f9b\u3092\u691c\u8a0e\u3057\u3066\u4e0b\u3055\u3044
+B_21 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f"\u672c\u6587\u3078\u79fb\u52d5"\u306a\u3069\u306e\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u5404\u30b3\u30f3\u30c6\u30f3\u30c4\u3078\u306e\u5230\u9054\u6642\u9593\u306f\u6700\u5927\u3067\u3082{0}\u79d2\u3067\u3059\u3000(\u5fc5\u8981\u304c\u3042\u308c\u3070\u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306e\u63d0\u4f9b\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044)
+B_22 = \u3088\u308a\u591a\u304f\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306e\u63d0\u4f9b\u3084\u3001\u898b\u51fa\u3057\u306e\u5229\u7528\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u65e2\u306b\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u304c\u5229\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u5230\u9054\u306b2\u5206\u4ee5\u4e0a\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
+B_23 = \u3088\u308a\u591a\u304f\u306e\u898b\u51fa\u3057\u3092\u63d0\u4f9b\u3059\u308b\u304b\u3001\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306e\u5229\u7528\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u898b\u51fa\u3057\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u304c\u3001\u5230\u9054\u306b2\u5206\u4ee5\u4e0a\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
+B_24 = \u3088\u308a\u591a\u304f\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u30fb\u898b\u51fa\u3057\u306e\u5229\u7528\u3092\u8003\u616e\u3057\u3066\u304f\u3060\u3055\u3044\u3000(\u65e2\u306b\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u30fb\u898b\u51fa\u3057\u304c\u7528\u3044\u3089\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u5230\u9054\u306b2\u5206\u4ee5\u4e0a\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059)
+B_25 = \u3053\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af"{0}"\u306b\u306f\u3001\u8aad\u307f\u4e0a\u3052\u53ef\u80fd\u306a\u60c5\u5831\u3068\u3057\u3066title\u5c5e\u6027\u306e\u307f\u304c\u5b58\u5728\u3057\u3066\u3044\u307e\u3059\u3002\u30ea\u30f3\u30af\u5185\u306b\u4f55\u3089\u304b\u306e\u30c6\u30ad\u30b9\u30c8\u60c5\u5831\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044
+B_26 = \u30b9\u30ad\u30c3\u30d7\u30ea\u30f3\u30af\u306f"\u672c\u6587\u3078\u306e\u79fb\u52d5"\u3001"\u672c\u6587\u3078\u306e\u30ea\u30f3\u30af"\u7b49\u306a\u308b\u3079\u304f\u7c21\u6613\u306a\u30c6\u30ad\u30b9\u30c8\u3092\u5229\u7528\u3057\u3066\u304f\u3060\u3055\u3044\u3002"{0}"\u306f\u5c11\u3057\u5197\u9577\u3067\u3059\u3002
+B_27 = "{0}"\u306f\u753b\u50cf\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u306a\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\uff08\u3082\u3057\u652f\u63f4\u6280\u8853\u304c\u3053\u306e\u753b\u50cf\u3092\u7121\u8996\u3059\u308b\u3079\u304d\u5834\u5408\u306f\u3001alt=""\u3068\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u9069\u5207\u306a\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002\uff09
+B_29 = \u753b\u50cf\u306ealt\u5c5e\u6027\u201d{0}\u201d\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
+B_30 = \u753b\u50cf\u30dc\u30bf\u30f3\u306ealt\u5c5e\u6027\u201d{0}\u201d\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
+B_31 = area\u306ealt\u5c5e\u6027\u201d{0}\u201d\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
+B_33 = \u3053\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u306f\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc"{0}"\u304c\u5b58\u5728\u3057\u307e\u305b\u3093\uff0e\u30b8\u30e3\u30f3\u30d7\u5148\u306e\u30a2\u30f3\u30ab\u30fc\u3092\u633f\u5165\u3057\u3066\u304f\u3060\u3055\u3044 (\u30da\u30fc\u30b8\u306e\u5148\u982d\u3078\u306e\u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\u3068\u3057\u3066\u52d5\u4f5c\u3059\u308b\u5834\u5408\u3082\u3042\u308a\u307e\u3059)
+B_34 = \u5358\u8a9e\u306e\u3064\u3065\u308a\u3092\u8a18\u8ff0\u3057\u305f\u3044\u5834\u5408\u4ee5\u5916\u306f\uff0c\u6587\u5b57\u3092\u7a7a\u767d\u3067\u533a\u5207\u3063\u3066\u8a18\u8ff0\u3059\u308b\u3053\u3068\u306f\u907f\u3051\u3066\u304f\u3060\u3055\u3044 (alt\u5c5e\u6027 "{0}")
+B_35 = \u30da\u30fc\u30b8\u5185\u30ea\u30f3\u30af\uff0c {0} \uff0c\u306f\u5229\u7528\u3067\u304d\u306a\u3044\u3068\u601d\u308f\u308c\u307e\u3059\uff0e\uff08display:none\u3084display:hidden\u306e\u4ee3\u308f\u308a\u306b\uff0c\u30ea\u30f3\u30af\u5185\u306balt\u5c5e\u6027\u3092\u4ed8\u3051\u305f\u5c0f\u3055\u306a\u753b\u50cf\u3092\u914d\u7f6e\u3059\u308b\u306a\u3069\u3057\u3066\u4e0b\u3055\u3044\uff09
+B_36 = \u30dc\u30bf\u30f3(input)\u306b\u306fvalue\u5c5e\u6027\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044 \u3002
+B_37 = \u201d{0}\u201d\u30dc\u30bf\u30f3\uff08input\u306evalue\u5c5e\u6027\uff09\u306f\u6587\u5b57\u9593\u306b\u7a7a\u767d\u3092\u542b\u3093\u3067\u3044\u308b\u305f\u3081\u3001\u97f3\u58f0\u3067\u6b63\u78ba\u306b\u8aad\u307f\u4e0a\u3052\u308b\u3053\u3068\u304c\u51fa\u6765\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
+B_38 = "{0}"\uff08 \u3092\u542b\u3080\u7a7a\u767d\u6587\u5b57\u306e\u307f\uff09\u306f\u753b\u50cf\u306ealt\u5c5e\u6027\u3068\u3057\u3066\u4e0d\u9069\u5207\u3067\u3059\u3002 (\u3082\u3057\u652f\u63f4\u6280\u8853\u304c\u3053\u306e\u753b\u50cf\u3092\u7121\u8996\u3059\u308b\u3079\u304d\u5834\u5408\u306f\u3001 alt="" \u3068\u8a2d\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3067\u306a\u3051\u308c\u3070\u9069\u5207\u306a\u4ee3\u66ff\u30c6\u30ad\u30b9\u30c8\u3092\u63d0\u4f9b\u3057\u3066\u304f\u3060\u3055\u3044\u3002)
+
+C_1000.0 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u8907\u6570\u306ebody\u8981\u7d20\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
+C_1000.1 = body\u8981\u7d20\u306e\u4e2d\u306bhead\u8981\u7d20\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
+C_1000.2 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u8907\u6570\u306ehtml\u8981\u7d20\u304c\u3042\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
+C_1000.3 = body\u8981\u7d20\u306e\u4f4d\u7f6e\u304c\u6b63\u3057\u304f\u306a\u3044\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
+C_1000.4 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306fbody\u8981\u7d20\u304c\u7121\u3044\u304b\uff0c\u8aa4\u3063\u305f\u4f4d\u7f6e\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
+C_1000.5 = \u3053\u306e\u30da\u30fc\u30b8\u306b\u306fbody\u8981\u7d20\u3082\u3057\u304f\u306fhead\u8981\u7d20\u304c\u7121\u3044\u304b\uff0c\u8aa4\u3063\u305f\u4f4d\u7f6e\u306b\u914d\u7f6e\u3055\u308c\u3066\u3044\u308b\u3088\u3046\u3067\u3059\uff0eHTML\u3092\u4fee\u6b63\u3057\u3066\u304f\u3060\u3055\u3044
+C_1000.6 = \u6587\u66f8\u306eDOCTYPE\u5ba3\u8a00\u3067\u6307\u5b9a\u3055\u308c\u305f\u516c\u958b\u8b58\u5225\u5b50\u306f\u3088\u304f\u77e5\u3089\u308c\u305f\u3082\u306e\u3067\u306f\u306a\u3044\u3088\u3046\u3067\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u30d0\u30ea\u30c7\u30fc\u30bf\u304c\u8aa4\u3063\u305f\u691c\u8a3c\u7d50\u679c\u3092\u8fd4\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u6587\u66f8\u304c\u4ed5\u69d8\u306b\u6e96\u62e0\u3059\u308b\u304b\u3069\u3046\u304b\u5224\u5b9a\u3067\u304d\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002
+C_1000.7 = \u6587\u66f8\u306bDOCTYPE\u5ba3\u8a00\u304c\u306a\u3044\u305f\u3081\u3001\u30d0\u30ea\u30c7\u30fc\u30bf\u304c\u8aa4\u3063\u305f\u691c\u8a3c\u7d50\u679c\u3092\u8fd4\u3059\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u307e\u305f\u3001\u6587\u66f8\u304c\u4ed5\u69d8\u306b\u6e96\u62e0\u3059\u308b\u304b\u3069\u3046\u304b\u5224\u5b9a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u305b\u3093\u3002
+C_1000.8 = Byte-Order Mark (BOM)\u304cHTML5\u3067\u306f\u306a\u3044\u6587\u66f8\u306b\u898b\u3064\u304b\u308a\u307e\u3057\u305f\u3002\u601d\u3044\u304c\u3051\u306a\u3044\u554f\u984c\u3092\u907f\u3051\u308b\u305f\u3081\u3001BOM\u306e\u524a\u9664\u3092\u691c\u8a0e\u3057\u3066\u304f\u3060\u3055\u3044\u3002
+
+L_1.0 = \u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c3:1\u672a\u6e80\u3067\u3059\u3002{0}
+L_1.1 = \u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c4.5:1\u672a\u6e80\u3067\u3059\u3002 {0}
+L_1.2 = \u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c7:1\u672a\u6e80\u3067\u3059\u3002 {0}
+L_2 = \u3053\u306e\u6587\u5b57\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002
+L_3 = \u3053\u306e\u753b\u50cf\u306b\u306f\u533a\u5225\u3057\u3065\u3089\u3044\u8272\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
+L_4 = \u56fa\u5b9a\u30b5\u30a4\u30ba\u306e\u30d5\u30a9\u30f3\u30c8\u306f\u4f7f\u308f\u306a\u3044\u3067\u304f\u3060\u3055\u3044\u3002
+L_5 = \u3053\u306e\u6587\u5b57\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002
+L_6 = \u3053\u306e\u6587\u5b57\u306f\u5c0f\u3055\u3059\u304e\u307e\u3059\u3002\u3055\u3089\u306b\u56fa\u5b9a\u30b5\u30a4\u30ba\u306e\u30d5\u30a9\u30f3\u30c8\u304c\u4f7f\u308f\u308c\u3066\u3044\u307e\u3059\u3002
L_10 = \u30b9\u30bf\u30a4\u30eb\u30b7\u30fc\u30c8\u3067\u80cc\u666f\u753b\u50cf\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002\u6587\u5b57\u8272\u3068\u80cc\u666f\u8272\u306e\u9593\u306e\u30b3\u30f3\u30c8\u30e9\u30b9\u30c8\u6bd4\u304c\u5341\u5206\u304b\u3001\u80cc\u666f\u753b\u50cf\u306e\u307f\u306b\u3088\u3063\u3066\u91cd\u8981\u306a\u60c5\u5831\u3092\u4f1d\u3048\u3066\u3044\u306a\u3044\u304b\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002{0}
\ No newline at end of file