ShowTable of Contents
IBM Web Experience Factory, developed and tested compliant to WCAG 2.0, can produce output (web pages, sites and content) that can be WCAG 2.0 Level A and Level AA compliant.
IBM Web Experience Factory neither enforces nor prevents this compliance. Application developers must know and understand WCAG 2.0 requirements and incorporate those requirements into the web pages, sites and content they develop using this product.
The following is provided as guidance to facilitate WCAG 2.0 Level A and Level AA compliance.
WCAG 2.0 Guidelines
From
http://www.w3.org/TR/WCAG20/
1 Perceivable
1.1 Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.
1.2 Provide alternatives for time-based media.
1.3 Create content that can be presented in different ways (for example simpler layout) without losing information or structure.
1.4 Make it easier for users to see and hear content including separating foreground from background.
2 Operable
2.1 Make all functionality available from a keyboard.
2.2 Provide users enough time to read and use content.
2.3 Do not design content in a way that is known to cause seizures.
2.4 Provide ways to help users navigate, find content, and determine where they are.
3 Understandable
3.1 Make text content readable and understandable.
3.2 Make Web pages appear and operate in predictable ways.
3.3 Help users avoid and correct mistakes.
4 Robust
4.1 Maximize compatibility with current and future user agents, including assistive technologies.
IBM Web Experience Factory and the WCAG 2.0 Guidelines
There are many different ways IBM Web Experience Factory can help you generate an accessible application. Below are some suggestions and hints on how to do this with our builders and tools.
1 Perceivable
1.1 Provide text alternatives for any non-text content so that it can be changed into other forms people need, such as large print, braille, speech, symbols or simpler language.
- Image builder: When using the image builder, be sure to use the “alt” text field to enter a text alternative for your image.
- Chart Builder: The Chart Title field can be used to add alternative text to the chart to explain about the chart.
- Attribute Setter Builder: This builder can be used in many cases where alternative text needs to be added, especially in cases where a builder does not specifically supply an option to enter alternative text.
1.2 Provide alternatives for time-based media.
IBM Web Experience Factory does not generate multimedia presentations by default. If a developer does generate an application with media included in it, then profiling can be used to generate alternatives for the media. Developers can also update the generated HTML to add the properly HTML tags to support this.
1.3 Create content that can be presented in different ways (for example simpler layout) without losing information or structure.
- IBM Web Experience Factory strives to generate structures that can be programmatically determined. While there are many combinations that can be created with our builders, there are some cases where it may not. In these cases, editing the generated HTML can offer additional support for this checkpoint. There are many different ways to edit the generated HTML. Please see the Help topic Modifying_the_layout_of_data_page_elements_wef8.
- IBM Web Experience Factory's WAI-ARIA landmark generation makes many assumptions and may not work properly in all scenarios. It can be disabled by adding bowstreet.pageautomation.add_aria_landmarks=false to the override.properties file. You can then use the attribute setter builder to assign the proper WAI-ARIA attributes where necessary.
- IBM Web Experience Factory generates forms that correctly use forms constructs. Attribute Setter and other builders can be used to modify and enhance what is generated by default. When using the Data Services User Interface DSUI builder the developer should not enable the delete function on the list page and enable only the delete from the details page. Export HTML for Customization can also be used to alter generated form layouts. See Help topic Editing_the_layout_of_data_page_elements_directly_wef8.
- IBM Web Experience Factory creates tables that can be programmatically determined. By default IBM Web Experience Factory does not add a table summary., To comply with the checkpoint developers can add the Attribute Setter Builder to define the table summary, when necessary.
- Cascading style sheets: When creating an application that works properly without CSS, turn off the Progress Indicator. To do this, add the Theme builder to your model and under the Progress Indicator section select No for Add Default Progress Indicator. In the Data Services User Interface builder uncheck the option to Use Theme. Then change the paging controls by, going to the List page setting section. Change the Paging Controls drop down to show Paging Buttons.
- IBM Web Experience Factory generates labels for checkboxes on the left side. To change this default behavior for just a page, a developer can Export the Data Layout of the page and edit the HTML to move the label from the left side of the checkbox to the right side. Please see the help topic Editing_the_layout_of_data_page_elements_directly_wef8 for more information. To change the default behavior for all pages in a project ….[Keri to add additional information once I get it]
1.4 Make it easier for users to see and hear content including separating foreground from background.
By default, generated applications created with IBM Web Experience Factory meet the guidelines outlined in checkpoint 1.4. If you choose to customize the defaults then the developer is responsible for providing the proper code to adhere to the checkpoints.
2 Operable
2.1 Make all functionality available from a keyboard.
- Javascript generated by some builders is not keyboard accessible. Application developers can generate custom Javascript or select a builder that does the same function without Javascript. For example, the Calendar picker builder does not pass this checkpoint, however users are able to manually enter a date in this field.
- IBM Web Experience Factory includes support for Applets. It is up to the developer to properly implement accessible Applet code. IBM Web Experience Factory offers Applet support in it's File Chooser Builder, which is not accessible. When using the File Chooser Builder in an accessible application, select the UI Type to be a Select list instead of an Applet. This input can be found under the Look and Feel section of the File Choose Builder.
2.2 Provide users enough time to read and use content.
IBM Web Experience Factory enables applications to be designed and implemented that allow timeouts to be deactivated, adjusted, or easily extended. Further, Profiling can be used to generate alternate views of any page content.
Application Developers are responsible for providing a mechanism to pause, stop or hide any moving, blinking or scrolling information. There are no builders that will automatically generate this type of functionality.
2.3 Do not design content in a way that is known to cause seizures.
IBM Web Experience Factory enables applications to be designed and implemented that do not flash or blink at a frequency between 2Hz and 55 Hz. By default, IBM Web Experience Factory does not create blinking or flashing text.
2.4 Provide ways to help users navigate, find content, and determine where they are.
- Navigational features would be covered by the particular design and implementation of builders and HTML selected in IBM Web Experience Factory. Application developers can select different builders and edit HTML to comply.
- By default WAI-ARIA landmarks are generated when page automation is used. IBM Web Experience Factory's WAI-ARIA landmark generation makes many assumptions and may not work properly in all scenarios, it can be disabled by adding bowstreet.pageautomation.add_aria_landmarks=false to override.properties file.
- If a skip to main link is needed instead of WAI-ARIA landmarks, it is the application developers responsibility to implement it. Please note that if you are generating a Portlet that will run in Portal you do not need the skip to main link in your portlet.
- When using frames, the developer can annotated the base HTML, or use builders to add titles or an accessible frame source. Application developers will need to use the attribute setter builder to add a title to the frame.
- It is the responsibility of the application developer to provide titles for pages and descriptive text for links. When generating Portlets the page title is not needed since it is provided by the Portal Server. When generating an accessible servlet you can add the page title by adding a HTML builder to your model. In the Location section of the builder select Advanced. In the text field under Advanced enter the following: page1 XPathHEAD InsertInsideTop. In the HTML field enter My page title. Do this for each page.
- It is the responsibility of the application developer to ensure that focusable components receive focus in an order that preserves meaning and operability. When using page automation this is done for you in most cases.
- The purpose of links generated by default in IBM Web Experience Factory can be determined from the link text alone or from the link text together with its programmatically determined link context. When using the Link Builder a Link text field is provided to supply Link text for the link. in your application that will need a page title. {DAVID: this is what we spoke about on Monday. We can leave it this way or add whatever you think would be helpful}
3 Understandable
3.1 Make text content readable and understandable.
Setting the language of a page in IBM Web Experience is only necessary when building servlets. The lang attribute is not needed when creating portlets, since this is handled by IBM WebSphere Portal. Application developers can add the lang and dir attributes to base HTML by using the Attribute Setter builder.
3.2 Make Web pages appear and operate in predictable ways.
- Controls provided by IBM WebSphere Experience Factory do not change context when receiving focus.
- The application developer is responsible for ensuring a user is informed if the changing of the setting of any user interface component changes the context.
- Consistent navigation is easily achieved when using IBM Web Experience Factory, since the developer is reusing the same code generated by the Factory builders.
- Consistent identification is also easily achieved since IBM Web Experience Factory is automatically generating the code for you.
3.3 Help users avoid and correct mistakes.
- The Data Field Settings builder can be used to add Error messages to fields. Developers can use this to add informative error messages to their forms.
- {DAVE: any thought for the rest of the Error message stuff. I have to say I'm not an expert at all in this area and we don't have much written up on it. }
4 Robust
4.1 Maximize compatibility with current and future user agents, including assistive technologies.
- HTML is well formed when using all of the builders. To add additional attributes to the HTML, the Attribute Setter builder can be used.
- Document type declarations at the beginning of document are generated by IBM Web Experience Factory when it detects that the model is running as a servlet. Document type declarations are not generated when the model is run as a portlet, since IBM WebSphere Portal declares the document type for the page.
- When designing an application that will run as a servlet developers should disable the Progress Indicator in the theme in order to provide a fully accessible application. One way to do this is to add a Theme Builder to the model, under the Progress Indicator section select No for Add Default Progress Indicator.
- Application Developers are responsible for ensuring programmatic determination of user interface components. Some builders using new technology do not support this, but there are equivalent builders that can be used. For example Dynamic Error Validation Builder does not notify a change. An application developer would instead use an Error Handler and a Dialog Box to support this checkpoint.