###############################################################################
# Copyright (c) 2005, 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:
#     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}", is inappropriate text.
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.)
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 &nbsp; characters). If the image should be ignored by assistive technology, provide alt="" and no title attribute.

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.

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}