Accessibility Audit - 9.10.x

Heuristic Solutions Accessibility Conformance Report

The initial LearningBuilder Accessibility Audit was performed against the 9.10.x version of the software and was completed in Q4 2019.

Numerous items were identified and were corrected in the 10.1 release of the software.

 

Product Reported

LearningBuilder 10.4.x

Report Date

Jul 17, 2019

VPAT Version

2.3 - 508

Acceptable Standards

Revised Section 508

Methods Used

Product knowledge, human analysis, WAVE browser extension

Contact Info

sjohnson@heuristics.net / snicholson@heuristics.net

WCAG 2.0 Level AA Audit

Objectives

In order to conform to WCAG 2.0, LearningBuilder must present content that is perceivable, operable, understandable, and robust. This means that:

  • Users with disabilities must be able to perceive the information and user interface in some way, it must not be invisible to them as a result of their disability;

  • Users with disabilities must be able to operate the user interface in some way;

  • Users with disabilities must be given information in a way that makes sense to them;

  • The content must be reliably interpreted by a wide variety of user agents, including assistive technologies.

Specifically with respect to LearningBuilder, this means:

  • Administrators with disabilities must be able to configure the system. As much as possible, the system should encourage configurations that result in accessible interfaces for Operators and Practitioners.;

  • Operators with disabilities must be able to operate the configured system on a daily basis;

  • Practitioners with disabilities must be able to use the configured system to apply for credentials and manage their applications.

Results

Criteria

WCAG
Level

Conformance Level

Remarks and Explanations

Techniques

Criteria

WCAG
Level

Conformance Level

Remarks and Explanations

Techniques

1.1.1 Non-text Content is presented with a text alternative that serves the equivalent purpose

A

 Supports

  • Form controls use standard HTML elements and are provided with a textual label

  • Images conveying information have informative alt attributes

  • Decorative images have empty alt text

1.2.1 Audio-only and Video-only (Prerecorded)

A

 Supports 

N/A. LearningBuilder does not contain any time-based media content.

 

1.2.2 Captions (Prerecorded)

A

 Supports 

N/A. LearningBuilder does not contain any time-based media content.

 

1.2.3 Audio Description or Media Alternative (Prerecorded) 

A

 Supports 

N/A. LearningBuilder does not contain any time-based media content.

 

1.2.4 Captions (Live)

AA

 Supports 

N/A. LearningBuilder does not contain any time-based media content.

 

1.2.5 Audio Description (Prerecorded)

AA

 Supports

N/A. LearningBuilder does not contain any time-based media content.

 

1.3.1 Info and Relationships: Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text.

A

 TODO

 

 

1.3.2 Meaningful Sequence: When the sequence in which content is presented affects its meaning, a correct reading sequence can be programmatically determined.

A

 Supports

The visual structure of the app matches the order of DOM elements.

UI elements are grouped in logical ways.

CSS, rather than whitespace characters, are used to control text spacing and wrapping.

1.3.3 Sensory Characteristics: Instructions provided for understanding and operating content do not rely solely on sensory characteristics of components such as shape, size, visual location, orientation, or sound.

A

 Supports

All UI elements have proper textual labels, and static text refers to textual characteristics as well as sensory characteristics when referencing the page.

1.4.1 Use of Color: Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element.

A

Supports

All fixed (non-configurable) UI elements use text labels in addition to color to convey meaning.

In addition, the Workflow Engine makes the "color" of a button available via Aria tags or alt-text so that information conveyed by color is accessible to color-blind and non-sighted users. 

 

1.4.2 Audio Control: If any audio on a Web page plays automatically for more than 3 seconds, either a mechanism is available to pause or stop the audio, or a mechanism is available to control audio volume independently from the overall system volume level.

A

 Supports

N/A. There is no audio content in LearningBuilder.

 

1.4.3 Contrast (Minimum): The visual presentation of text and images of text has a contrast ratio of at least 4.5:1, except for large text, incidental text, and logotypes.

AA

 Does Not Support

The default LearningBuilder theme does not provide enough contrast to meet this requirement.

We are investigating a "high contrast" theme that could be optionally enabled by a user that needs this support.

Users that need a high-contrast experience can enable the high-contrast mode in their operating system and LearningBuilder will be rendered accordingly.

 

1.4.4 Resize text: Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality. 

AA

 TODO

 

1.4.5 Images of Text: If the technologies being used can achieve the visual presentation, text is used to convey information rather than images of text except for the following:

  • Image of text can be visually customized to user's requirements

  • A particular presentation of text is essential to the information being conveyed

AA

 Supports

LearningBuilder can be styled with user stylesheets.

LearningBuilder uses semantic markup to describe the structure of a page, and CSS to control formatting.

2.1.1 Keyboard: All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes, except where the underlying function requires input that depends on the path of the user's movements and not just the endpoints.

A

 TODO

 

 

2.1.2 No Keyboard Trap: If keyboard focus can be moved to a component of the page using a keyboard interface, then focus can be moved away from that component using only a keyboard interface, and, if it requires more than an unmodified arrow or tab keys or other standard exit methods, the user is advised of the method for moving focus away.

A

 Supports

  • Modal popups trap focus to prevent users from interacting with the non-active part of the page. Focus is restored when the dialog is closed because it is submitted, because the user clicks a cancel button, or presses Esc.

  • Other than modal popups, keyboard focus is not locked in any way that cannot be escaped using standard tab/arrow keys.

2.2.1 Timing Adjustable: For each time limit that is set by the content, at least one of the following is true:

  • The user is allowed to turn off the time limit before encountering it;

  • The user is allowed to adjust the time limit before encountering it;

  • The user is warned before time expires and given at least 20 seconds to extend the time limit with a simple action

  • The time limit is a required part of a real-time event and no alternative to the time limit is possible

  • The time limit is essential and extending it would invalidate the activity

  • The time limit is longer than 20 hours

A

 Supports

In general, there are no timeouts in LearningBuilder. The only exceptions are those allowed by the standard:

  • Timed Assessments (an optional feature) use a time limit as part of a low-stakes skills or knowledge assessment, and the time limit is essential to the evaluation and to prevent cheating;

  • The web session times out after a configurable amount of time, but the system is configured by default to display a warning ahead of time that allows the user to click a button and reset the timer.

 

2.2.2 Pause, Stop, Hide: For moving, blinking, scrolling, or auto-updating information, all of the following are true:

  • Moving, blinking, scrolling: For any moving, blinking, or scrolling information that (1) starts automatically, (2) lasts more than five seconds, and (3) is presented in parallel with other content, there is a mechanism for the user to pause, stop, or hide it unless the movement, blinking, or scrolling is part of an activity where it is essential; and

  • Auto-updating: For any auto-updating information that (1) starts automatically and (2) is presented in parallel with other content, there is a mechanism for the user to pause, stop, or hide it or to control the frequency of the update unless the auto-updating is part of an activity where it is essential.

A

 Supports

N/A. There is no blinking, moving, or auto-scrolling content in LearningBuilder.

 

2.3.1 Three Flashes or Below Threshold: Web pages do not contain anything that flashes more than three times in any one second period, or the flash is below the general flash and red flash thresholds.

A

 Supports

There is no blinking or flickering content in LearningBuilder.

 

2.4.1 Bypass Blocks: A mechanism is available to bypass blocks of content that are repeated on multiple Web pages.

A

 TODO

Sara: have we marked up the navigation, header, and footer to allow this?

2.4.2 Page Titled: Web pages have titles that describe topic or purpose.

A

 Supports

All pages are given a title that describes their purpose.

2.4.3 Focus Order: If a Web page can be navigated sequentially and the navigation sequences affect meaning or operation, focusable components receive focus in an order that preserves meaning and operability.

A

 Partially Supports

  • Tabindex values are assigned so that tabbing order is consistent with visual order.

  • If a modal window is displayed, the focus is moved inside it and trapped until the modal is closed. The tabbing order within a modal is consistent with the visual order.

  • The modal popup framework does not dynamically re-position the floating <div> to immediately follow the triggering element in the DOM, per SCR37.

2.4.4 Link Purpose (In Context): The purpose of each link can be determined from the link text alone or from the link text together with its programmatically determined link context, except where the purpose of the link would be ambiguous to users in general.

A

 Supports

All links contain text that describe their purpose. LearningBuilder avoids "click here" style link text.

2.4.5 Multiple Ways: More than one way is available to locate a Web page within a set of Web pages except where the Web Page is the result of, or a step in, a process.

AA

 Does Not Support

LearningBuilder is primarily an application, not a content repository, so many pages are dynamic (i.e. data-driven) and/or only accessible by following a process.

To fully meet this standard we'd need two techniques such as a site map and content search.

 

2.4.6 Headings and Labels: Headings and labels describe topic or purpose

AA

 Supports

  • <h2>, <h3>, etc tags are used to sub-organize a given page or form

  • All input fields are associated with descriptive textual labels

2.4.7 Focus Visible: Any keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible.

AA

 TODO

Sara: do all of our buttons, fields, links, etc change visibly when focused?

3.1.1 Language of Page: The default human language of each Web page can be programmatically determined.

A

 Supports

LearningBuilder declares the "EN" language as part of the <html> tag

3.1.2 Language of Parts: The human language of each passage or phrase in the content can be programmatically determined except for proper names, technical terms, words of indeterminate language, and words or phrases that have become part of the vernacular of the immediately surrounding text.

AA

 Supports

All LearningBuilder content uses the same language as declared in the <html> tag

3.2.1 On Focus: When any component receives focus, it does not initiate a change of context.

A

 Supports

No user interface elements initiate a change of context simply as a result of receiving focus.

3.2.2 On Input: Changing the setting of any user interface component does not automatically cause a change of context unless the user has been advised of the behavior before using the component.

A

 Supports

Changes to UI element values commonly trigger UI updates, such as showing/hiding related fields, but that is not considered a "context change".

Changes to field values do not automatically trigger navigation, form submission, or the opening of modal windows.

3.2.3 Consistent Navigation: Navigational mechanisms that are repeated on multiple Web pages within a set of Web pages occur in the same relative order each time they are repeated, unless a change is initiated by the user.

AA

 Supports

Navigational elements are fixed and are the same across all instances that they occur.

3.2.4 Consistent Identification: Components that have the same functionality within a set of Web pages are identified consistently.

AA

 Supports

  • LearningBuilder uses reusable components for many UI aspects, which results in consistent behavior and appearance across the app.

  • Text labels accurately describe their purpose; generic terms are not reused, except in cases where those terms are appropriate for the context.

  • Icon meanings are consistent with commonly used icons throughout the software industry.

3.3.1 Error Identification: If an input error is automatically detected, the item that is in error is identified and the error is described to the user in text.

A

 Partially Supports

The Workflow engine, which is the primary mechanism for Practitioners and Operators to modify data in the system, fully conforms to the requirements.

Other forms lack inline error messaging, as documented in the statement of partial conformance.

3.3.2 Labels or Instructions: Labels or instructions are provided when content requires user input.

A

 Supports

Form controls have descriptive labels using <label> and/or ARIA bindings, and related form controls are grouped using <fieldsets> with a descriptive <legend>.

3.3.3 Error Suggestion: If an input error is automatically detected and suggestions for correction are known, then the suggestions are provided to the user, unless it would jeopardize the security or purpose of the content.

AA

 Supports

Error messaging attempts to be as helpful as possible; error messages often include descriptions of the constraints or rules that govern the relevant field such as maximum field lengths, formatting requirements, disallowed characters, etc.

3.3.4 Error Prevention (Legal, Financial, Data): For Web pages that cause legal commitments or financial transactions for the user to occur, that modify or delete user-controllable data in data storage systems, or that submit user test responses, at least one of the following is true:

  • Reversible: Submissions are reversible

  • Checked: Data entered by the user is checked for input errors and the user is provided an opportunity to correct them

  • Confirmed: A mechanism is available for reviewing, confirming, and correcting information before finalizing the submission.

AA

 Supports

Financial transactions are reversible via merchant gateway refunds (when supported by the payment gateway implementation).

All data entry forms are checked for input errors, and helpful and contextual messaging is used to describe errors to the user.

Many items in the system are "soft deleted", so that they are retained in the database. Undoing a deleting is not always something that the end user can do themselves, but is often available with system administrator support.

In cases where data forms are not easily reversible by the current user, a confirmation step is used.

 

4.1.1 Parsing: In content implemented using markup languages, elements have complete start and end tags, elements are nested according to their specifications, elements do not contain duplicate attributes, and any IDs are unique, except where the specifications allow these features.

A

 Supports

LearningBuilder markup is syntactically valid HTML. 

There are no duplicate IDs or HTML elements on pages; reusable components use various techniques to ensure any IDs they generate are "scoped" in some way to avoid duplicates.