###############################################################################
# Copyright (c) 2007, 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
###############################################################################
O_10101 = Please provide alternative text or caption for an image (If the image has no information to read out, please provide space character).
O_10102 = If an image conveys important information beyond what is in its alternative text, provide a long description. 
O_20101 = If this is a data table (not used for layout only), provide headers.
O_20102 = If this is a data table (not used for layout only), provide caption.
O_30101 = Please provide alternative text for an image map area.
O_30102 = If an image map area conveys important information beyond what is in its alternative text, provide a long description. 
O_40101 = Please provide alternative text or caption for a drawing object (If the drawing object has no information to read out, please provide space character).
O_40102 = If a drawing object conveys important information beyond what is in its alternative text, provide a long description. 
O_50101 = Add a hint text to links when needed.
O_60101 = Please provide alternative text or caption for an embedded object (If the embedded object has no information to read out, please provide space character).
O_60102 = If an embedded object conveys important information beyond what is in its alternative text, provide a long description. 
O_70101 = Make sure that label of form control is properly placed.
O_80101 = Please confirm navigation order is properly set in each presentation slide.
O_80102 = Consider specifying a logical tab order among form controls.
O_80103 = Consider using the tab stop function of form control.
O_90101 = This file uses ODF 1.1 functions, but the ODF version of this file is saved as 1.0. The aDesigner checks the accessibility of this file for ODF 1.1.
O_999000001 = This file is not valid ODF file.

