Accessibility Conformance Report for Compact Demo Report

Evaluated by
Tim Damen
Commissioned by
focusring.io
Target
WCAG 2.2, Level AA
Date
June 21, 2024

Executive summary

This website is partly accessible. Some severe issues were found and described in this report.

Results by principle

Principle Results by principle
Perceivable 19 of 20
Operable 19 of 20
Understandable 12 of 13
Robust 2 of 3
Total 51 of 55

Successcriteria Description level Result
1.1.1 Non-text Content A Fail
1.2.1 Audio-only and Video-only (Prerecorded) A Passed
1.2.2 Captions (Prerecorded) A Passed
1.2.3 Audio Description or Media Alternative (Prerecorded) A Passed
1.2.4 Captions (Live) AA Passed
1.2.5 Audio Description (Prerecorded) AA Passed
1.3.1 Info and Relationships A Passed
1.3.2 Meaningful Sequence A Passed
1.3.3 Sensory Characteristics A Passed
1.3.4 Orientation AA Passed
1.3.5 Identify Input Purpose AA Passed
1.4.1 Use of Color A Passed
1.4.2 Audio Control A Passed
1.4.3 Contrast (Minimum) AA Passed
1.4.4 Resize Text AA Passed
1.4.5 Images of Text AA Passed
1.4.10 Reflow AA Passed
1.4.11 Non-text Contrast AA Passed
1.4.12 Text Spacing AA Passed
1.4.13 Content on Hover or Focus AA Passed
2.1.1 Keyboard A Fail
2.1.2 No Keyboard Trap A Passed
2.1.4 Character Key Shortcuts A Passed
2.2.1 Timing Adjustable A Passed
2.2.2 Pause, Stop, Hide A Passed
2.3.1 Three Flashes or Below Threshold A Passed
2.4.1 Bypass Blocks A Passed
2.4.2 Page Titled A Passed
2.4.3 Focus Order A Passed
2.4.4 Link Purpose (In Context) A Passed
2.4.5 Multiple Ways AA Passed
2.4.6 Headings and Labels AA Passed
2.4.7 Focus Visible AA Passed
2.4.11 Focus Not Obscured (Minimum) AA Passed
2.5.1 Pointer Gestures A Passed
2.5.2 Pointer Cancellation A Passed
2.5.3 Label in Name A Passed
2.5.4 Motion Actuation A Passed
2.5.7 Dragging Movements AA Passed
2.5.8 Target Size (Minimum) AA Passed
3.1.1 Language of Page A Passed
3.1.2 Language of Parts AA Passed
3.2.1 On Focus A Passed
3.2.2 On Input A Passed
3.2.3 Consistent Navigation AA Passed
3.2.4 Consistent Identification AA Passed
3.2.6 Consistent Help A Passed
3.3.1 Error Identification A Fail
3.3.2 Labels or Instructions A Passed
3.3.3 Error Suggestion AA Passed
3.3.4 Error Prevention (Legal, Financial, Data) AA Passed
3.3.7 Redundant Entry A Passed
3.3.8 Accessible Authentication (Minimum) AA Passed
4.1.1 Parsing (Obsolete and removed) A Passed
4.1.2 Name, Role, Value A Fail
4.1.3 Status Messages AA Passed

About this report

This report is a demo. the successcriteria reported on resample real problems found on sampled page. This demo report shows a demo report to show an example of how focusring.io delivers WCAG audits.

Methodology

For this report, we used the WCAG-EM reporting methodology.*

* because this is a demo report to show an example of how focusring.io delivers WCAG audits. Some adjustments are made to the normal way of doing a WCAG-EM audit. These things are:

  1. Sample size reduced to one page.
  2. A maximum of 5 WCAG successcriteria tested.

Scope

Pages

Scope:

Not in scope:

Accessibility support

The audited website should work in at least the following browsers and assistive technologies:

Technologies used

The audited web page relies on the following technologies:

Sample

Representative sample

Issues

  1. Image lacks descriptive alt text (1.1.1)
  2. Call-to-action link does not work with keyboard (2.1.1)
  3. Required fields lack clear indication (3.3.1)
  4. Buttons lack accessible name (4.1.2)

1. Perceivable

Information and user interface components must be presentable to users in ways they can perceive.

1.1 Text Alternatives

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.

level A

1.1.1 Non-text Content

All non-text content that is presented to the user has a text alternative that serves the equivalent purpose, except for the situations listed below.

Controls, Input

If non-text content is a control or accepts user input, then it has a name that describes its purpose. (Refer to Success Criterion 4.1.2 for additional requirements for controls and content that accepts user input.)

Time-Based Media

If non-text content is time-based media, then text alternatives at least provide descriptive identification of the non-text content. (Refer to Guideline 1.2 for additional requirements for media.)

Test

If non-text content is a test or exercise that would be invalid if presented in text, then text alternatives at least provide descriptive identification of the non-text content.

Sensory

If non-text content is primarily intended to create a specific sensory experience, then text alternatives at least provide descriptive identification of the non-text content.

CAPTCHA

If the purpose of non-text content is to confirm that content is being accessed by a person rather than a computer, then text alternatives that identify and describe the purpose of the non-text content are provided, and alternative forms of CAPTCHA using output modes for different types of sensory perception are provided to accommodate different disabilities.

Decoration, Formatting, Invisible

If non-text content is pure decoration, is used only for visual formatting, or is not presented to users, then it is implemented in a way that it can be ignored by assistive technology.

Result

❌ Fail: the evaluated sample of web pages fails this success criterion.

Evaluation Findings
Image lacks descriptive alt text
Problem

The image within the article does not have descriptive alt text. Leaving it empty or missing in this context can make it difficult for users relying on screen readers to understand the content of the image.

The image is marked up like this:

<img src="awesome_cat.jpg" alt="" />
Solution

Provide a descriptive alt text for the image to ensure it is accessible to users relying on screen readers. The alt attribute should describe the content and function of the image, like this:

<img src="awesome_cat.jpg" alt="A cute cat lounging comfortably" />

Descriptive alt text helps convey the information or function of the image to users who cannot see it, thereby improving accessibility and compliance with WCAG guidelines.

Difficulty:
Low
Severity:
Medium
Sample:
blog-post

1.2 Time-based Media

Provide alternatives for time-based media.

level A

1.2.1 Audio-only and Video-only (Prerecorded)

For prerecorded audio-only and prerecorded video-only media, the following are true, except when the audio or video is a media alternative for text and is clearly labeled as such:

Prerecorded Audio-only

An alternative for time-based media is provided that presents equivalent information for prerecorded audio-only content.

Prerecorded Video-only

Either an alternative for time-based media or an audio track is provided that presents equivalent information for prerecorded video-only content.

Result

✅ Pass

level A

1.2.2 Captions (Prerecorded)

Captions are provided for all prerecorded audio content in synchronized media, except when the media is a media alternative for text and is clearly labeled as such.

Result

✅ Pass

level A

1.2.3 Audio Description or Media Alternative (Prerecorded)

An alternative for time-based media or audio description of the prerecorded video content is provided for synchronized media, except when the media is a media alternative for text and is clearly labeled as such.

Result

✅ Pass

level AA

1.2.4 Captions (Live)

Captions are provided for all live audio content in synchronized media.

Result

✅ Pass

level AA

1.2.5 Audio Description (Prerecorded)

Audio description is provided for all prerecorded video content in synchronized media.

Result

✅ Pass

level AAA

1.2.6 Sign Language (Prerecorded)

Sign language interpretation is provided for all prerecorded audio content in synchronized media.

Result

✅ Pass

level AAA

1.2.7 Extended Audio Description (Prerecorded)

Where pauses in foreground audio are insufficient to allow audio descriptions to convey the sense of the video, extended audio description is provided for all prerecorded video content in synchronized media.

Result

✅ Pass

level AAA

1.2.8 Media Alternative (Prerecorded)

An alternative for time-based media is provided for all prerecorded synchronized media and for all prerecorded video-only media.

Result

✅ Pass

level AAA

1.2.9 Audio-only (Live)

An alternative for time-based media that presents equivalent information for live audio-only content is provided.

Result

✅ Pass

1.3 Adaptable

Create content that can be presented in different ways (for example simpler layout) without losing information or structure.

level A

1.3.1 Info and Relationships

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

Result

✅ Pass

level A

1.3.2 Meaningful Sequence

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

Result

✅ Pass

level A

1.3.3 Sensory Characteristics

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

Result

✅ Pass

level AA

1.3.4 Orientation

Content does not restrict its view and operation to a single display orientation, such as portrait or landscape, unless a specific display orientation is essential.

Result

✅ Pass

level AA

1.3.5 Identify Input Purpose

The purpose of each input field collecting information about the user can be programmatically determined when:

  • The input field serves a purpose identified in the Input Purposes for user interface components section; and
  • The content is implemented using technologies with support for identifying the expected meaning for form input data.

Result

✅ Pass

level AAA

1.3.6 Identify Purpose

In content implemented using markup languages, the purpose of user interface components, icons, and regions can be programmatically determined.

Result

✅ Pass

1.4 Distinguishable

Make it easier for users to see and hear content including separating foreground from background.

level A

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.

Result

✅ Pass

level A

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.

Result

✅ Pass

level AA

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 the following:

Large Text

Large-scale text and images of large-scale text have a contrast ratio of at least 3:1;

Incidental

Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.

Logotypes

Text that is part of a logo or brand name has no contrast requirement.

Result

✅ Pass

level AA

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.

Result

✅ Pass

level AA

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:

Customizable

The image of text can be visually customized to the user's requirements;

Essential

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

Result

✅ Pass

level AAA

1.4.6 Contrast (Enhanced)

The visual presentation of text and images of text has a contrast ratio of at least 7:1, except for the following:

Large Text

Large-scale text and images of large-scale text have a contrast ratio of at least 4.5:1;

Incidental

Text or images of text that are part of an inactive user interface component, that are pure decoration, that are not visible to anyone, or that are part of a picture that contains significant other visual content, have no contrast requirement.

Logotypes

Text that is part of a logo or brand name has no contrast requirement.

Result

✅ Pass

level AAA

1.4.7 Low or No Background Audio

For prerecorded audio-only content that (1) contains primarily speech in the foreground, (2) is not an audio CAPTCHA or audio logo, and (3) is not vocalization intended to be primarily musical expression such as singing or rapping, at least one of the following is true:

No Background

The audio does not contain background sounds.

Turn Off

The background sounds can be turned off.

20 dB

The background sounds are at least 20 decibels lower than the foreground speech content, with the exception of occasional sounds that last for only one or two seconds.

Note

Per the definition of "decibel," background sound that meets this requirement will be approximately four times quieter than the foreground speech content.

Result

✅ Pass

level AAA

1.4.8 Visual Presentation

For the visual presentation of blocks of text, a mechanism is available to achieve the following:

  • Foreground and background colors can be selected by the user.
  • Width is no more than 80 characters or glyphs (40 if CJK).
  • Text is not justified (aligned to both the left and the right margins).
  • Line spacing (leading) is at least space-and-a-half within paragraphs, and paragraph spacing is at least 1.5 times larger than the line spacing.
  • Text can be resized without assistive technology up to 200 percent in a way that does not require the user to scroll horizontally to read a line of text on a full-screen window.

Result

✅ Pass

level AAA

1.4.9 Images of Text (No Exception)

Images of text are only used for pure decoration or where a particular presentation of text is essential to the information being conveyed.

Result

✅ Pass

level AA

1.4.10 Reflow

Content can be presented without loss of information or functionality, and without requiring scrolling in two dimensions for:

  • Vertical scrolling content at a width equivalent to 320 CSS pixels;
  • Horizontal scrolling content at a height equivalent to 256 CSS pixels;

Result

✅ Pass

level AA

1.4.11 Non-text Contrast

The visual presentation of the following have a contrast ratio of at least 3:1 against adjacent color(s):

User Interface Components
Visual information required to identify user interface components and states, except for inactive components or where the appearance of the component is determined by the user agent and not modified by the author;
Graphical Objects
Parts of graphics required to understand the content, except when a particular presentation of graphics is essential to the information being conveyed.

Result

✅ Pass

level AA

1.4.12 Text Spacing

In content implemented using markup languages that support the following text style properties, no loss of content or functionality occurs by setting all of the following and by changing no other style property:

  • Line height (line spacing) to at least 1.5 times the font size;
  • Spacing following paragraphs to at least 2 times the font size;
  • Letter spacing (tracking) to at least 0.12 times the font size;
  • Word spacing to at least 0.16 times the font size.

Result

✅ Pass

level AA

1.4.13 Content on Hover or Focus

Where receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true:

Dismissible
A mechanism is available to dismiss the additional content without moving pointer hover or keyboard focus, unless the additional content communicates an input error or does not obscure or replace other content;
Hoverable
If pointer hover can trigger the additional content, then the pointer can be moved over the additional content without the additional content disappearing;
Persistent
The additional content remains visible until the hover or focus trigger is removed, the user dismisses it, or its information is no longer valid.

Result

✅ Pass

2. Operable

User interface components and navigation must be operable.

2.1 Keyboard Accessible

Make all functionality available from a keyboard.

level A

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 movement and not just the endpoints.

Result

❌ Fail: the evaluated sample of web pages fails this success criterion.

Evaluation Findings
Problem

The call-to-action link within the header section does not work with just a keyboard, which violates WCAG Success Criterion 2.1.1 (Keyboard Accessible). The button is marked up link this:

<div class="link" onClick="navigateCallToAction()">
  Get a Quote!
</div>
Solution

Use <a> tags for links, and use the href attribute for the location to link to, like this:

<a class="link" href="/request-a-quote" >Get a Quote!</a>

The <a>-tag works with keyboard out of the box, does not rely on JavaScript and makes it easier for search engines to understand what is going on.

Difficulty:
Low
Severity:
Medium
Sample:
header-section
level A

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 unmodified arrow or tab keys or other standard exit methods, the user is advised of the method for moving focus away.

Result

✅ Pass

level AAA

2.1.3 Keyboard (No Exception)

All functionality of the content is operable through a keyboard interface without requiring specific timings for individual keystrokes.

Result

✅ Pass

level A

2.1.4 Character Key Shortcuts

If a keyboard shortcut is implemented in content using only letter (including upper- and lower-case letters), punctuation, number, or symbol characters, then at least one of the following is true:

Turn off
A mechanism is available to turn the shortcut off;
Remap
A mechanism is available to remap the shortcut to include one or more non-printable keyboard keys (e.g., Ctrl, Alt);
Active only on focus
The keyboard shortcut for a user interface component is only active when that component has focus.

Result

✅ Pass

2.2 Enough Time

Provide users enough time to read and use content.

level A

2.2.1 Timing Adjustable

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

Turn off

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

Adjust

The user is allowed to adjust the time limit before encountering it over a wide range that is at least ten times the length of the default setting; or

Extend

The user is warned before time expires and given at least 20 seconds to extend the time limit with a simple action (for example, "press the space bar"), and the user is allowed to extend the time limit at least ten times; or

Real-time Exception

The time limit is a required part of a real-time event (for example, an auction), and no alternative to the time limit is possible; or

Essential Exception

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

20 Hour Exception

The time limit is longer than 20 hours.

Result

✅ Pass

level A

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.

Result

✅ Pass

level AAA

2.2.3 No Timing

Timing is not an essential part of the event or activity presented by the content, except for non-interactive synchronized media and real-time events.

Result

✅ Pass

level AAA

2.2.4 Interruptions

Interruptions can be postponed or suppressed by the user, except interruptions involving an emergency.

Result

✅ Pass

level AAA

2.2.5 Re-authenticating

When an authenticated session expires, the user can continue the activity without loss of data after re-authenticating.

Result

✅ Pass

level AAA

2.2.6 Timeouts

Users are warned of the duration of any user inactivity that could cause data loss, unless the data is preserved for more than 20 hours when the user does not take any actions.

Result

✅ Pass

2.3 Seizures and Physical Reactions

Do not design content in a way that is known to cause seizures or physical reactions.

level A

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.

Result

✅ Pass

level AAA

2.3.2 Three Flashes

Web pages do not contain anything that flashes more than three times in any one second period.

Result

✅ Pass

level AAA

2.3.3 Animation from Interactions

Motion animation triggered by interaction can be disabled, unless the animation is essential to the functionality or the information being conveyed.

Result

✅ Pass

2.4 Navigable

Provide ways to help users navigate, find content, and determine where they are.

level A

2.4.1 Bypass Blocks

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

Result

✅ Pass

level A

2.4.2 Page Titled

Web pages have titles that describe topic or purpose.

Result

✅ Pass

level A

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.

Result

✅ Pass

level A

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.

Result

✅ Pass

level AA

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.

Result

✅ Pass

level AA

2.4.6 Headings and Labels

Headings and labels describe topic or purpose.

Result

✅ Pass

level AA

2.4.7 Focus Visible

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

Result

✅ Pass

level AAA

2.4.8 Location

Information about the user's location within a set of Web pages is available.

Result

✅ Pass

level AAA

2.4.9 Link Purpose (Link Only)

A mechanism is available to allow the purpose of each link to be identified from link text alone, except where the purpose of the link would be ambiguous to users in general.

Result

✅ Pass

level AAA

2.4.10 Section Headings

Section headings are used to organize the content.

Result

✅ Pass

level AA

2.4.11 Focus Not Obscured (Minimum)

When a user interface component receives keyboard focus, the component is not entirely hidden due to author-created content.

Result

✅ Pass

level AAA

2.4.12 Focus Not Obscured (Enhanced)

When a user interface component receives keyboard focus, no part of the component is hidden by author-created content.

Result

✅ Pass

level AAA

2.4.13 Focus Appearance

When the keyboard focus indicator is visible, an area of the focus indicator meets all the following:

  • is at least as large as the area of a 2 CSS pixel thick perimeter of the unfocused component or sub-component, and
  • has a contrast ratio of at least 3:1 between the same pixels in the focused and unfocused states.

Result

✅ Pass

2.5 Input Modalities

Make it easier for users to operate functionality through various inputs beyond keyboard.

level A

2.5.1 Pointer Gestures

All functionality that uses multipoint or path-based gestures for operation can be operated with a single pointer without a path-based gesture, unless a multipoint or path-based gesture is essential.

Result

✅ Pass

level A

2.5.2 Pointer Cancellation

For functionality that can be operated using a single pointer, at least one of the following is true:

No Down-Event
The down-event of the pointer is not used to execute any part of the function;
Abort or Undo
Completion of the function is on the up-event, and a mechanism is available to abort the function before completion or to undo the function after completion;
Up Reversal
The up-event reverses any outcome of the preceding down-event;
Essential
Completing the function on the down-event is essential.

Result

✅ Pass

level A

2.5.3 Label in Name

For user interface components with labels that include text or images of text, the name contains the text that is presented visually.

Result

✅ Pass

level A

2.5.4 Motion Actuation

Functionality that can be operated by device motion or user motion can also be operated by user interface components and responding to the motion can be disabled to prevent accidental actuation, except when:

Supported Interface
The motion is used to operate functionality through an accessibility supported interface;
Essential
The motion is essential for the function and doing so would invalidate the activity.

Result

✅ Pass

level AAA

2.5.5 Target Size (Enhanced)

The size of the target for pointer inputs is at least 44 by 44 CSS pixels except when:

Equivalent
The target is available through an equivalent link or control on the same page that is at least 44 by 44 CSS pixels;
Inline
The target is in a sentence or block of text;
User Agent Control
The size of the target is determined by the user agent and is not modified by the author;
Essential
A particular presentation of the target is essential to the information being conveyed.

Result

✅ Pass

level AAA

2.5.6 Concurrent Input Mechanisms

Web content does not restrict use of input modalities available on a platform except where the restriction is essential, required to ensure the security of the content, or required to respect user settings.

Result

✅ Pass

level AA

2.5.7 Dragging Movements

All functionality that uses a dragging movement for operation can be achieved by a single pointer without dragging, unless dragging is essential or the functionality is determined by the user agent and not modified by the author.

Result

✅ Pass

level AA

2.5.8 Target Size (Minimum)

The size of the target for pointer inputs is at least 24 by 24 CSS pixels, except where:

  • Spacing: Undersized targets (those less than 24 by 24 CSS pixels) are positioned so that if a 24 CSS pixel diameter circle is centered on the bounding box of each, the circles do not intersect another target or the circle for another undersized target;
  • Equivalent: The function can be achieved through a different control on the same page that meets this criterion;
  • Inline: The target is in a sentence or its size is otherwise constrained by the line-height of non-target text;
  • User agent control: The size of the target is determined by the user agent and is not modified by the author;
  • Essential: A particular presentation of the target is essential or is legally required for the information being conveyed.

Result

✅ Pass

3. Understandable

Information and the operation of the user interface must be understandable.

3.1 Readable

Make text content readable and understandable.

level A

3.1.1 Language of Page

The default human language of each Web page can be programmatically determined.

Result

✅ Pass

level AA

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.

Result

✅ Pass

level AAA

3.1.3 Unusual Words

A mechanism is available for identifying specific definitions of words or phrases used in an unusual or restricted way, including idioms and jargon.

Result

✅ Pass

level AAA

3.1.4 Abbreviations

A mechanism for identifying the expanded form or meaning of abbreviations is available.

Result

✅ Pass

level AAA

3.1.5 Reading Level

When text requires reading ability more advanced than the lower secondary education level after removal of proper names and titles, supplemental content, or a version that does not require reading ability more advanced than the lower secondary education level, is available.

Result

✅ Pass

level AAA

3.1.6 Pronunciation

A mechanism is available for identifying specific pronunciation of words where meaning of the words, in context, is ambiguous without knowing the pronunciation.

Result

✅ Pass

3.2 Predictable

Make Web pages appear and operate in predictable ways.

level A

3.2.1 On Focus

When any user interface component receives focus, it does not initiate a change of context.

Result

✅ Pass

level A

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.

Result

✅ Pass

level AA

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.

Result

✅ Pass

level AA

3.2.4 Consistent Identification

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

Result

✅ Pass

level AAA

3.2.5 Change on Request

Changes of context are initiated only by user request or a mechanism is available to turn off such changes.

Result

✅ Pass

level A

3.2.6 Consistent Help

If a Web page contains any of the following help mechanisms, and those mechanisms are repeated on multiple Web pages within a set of Web pages, they occur in the same order relative to other page content, unless a change is initiated by the user:

  • Human contact details;
  • Human contact mechanism;
  • Self-help option;
  • A fully automated contact mechanism.

Result

✅ Pass

3.3 Input Assistance

Help users avoid and correct mistakes.

level A

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.

Result

❌ Fail: the evaluated sample of web pages fails this success criterion.

Evaluation Findings
Required fields lack clear indication
Problem

The form inputs within the form section have required fields, but there is no clear indication that these fields are required, which violates WCAG Success Criterion 3.3.1 (Error Identification). The inputs are marked up like this:

<div class="input-field">
  <label for="fullname">Fullname:</label>
  <input type="text" id="fullname" required />
</div>
<div class="input-field">
  <label for="email">Email:</label>
  <input type="email" id="email" required />
</div>
Solution

Clearly indicate which fields are required by adding a visual cue such as an asterisk (*) next to the field labels and providing a note that explains the meaning of the asterisk. The updated markup should look like this:

<div class="input-field">
  <label for="fullname"
    >Fullname: <span aria-hidden="true">(Required)</span></label
  >
  <input type="text" id="fullname" required />
</div>
<div class="input-field">
  <label for="email">Email: <span aria-hidden="true">(Required)</span></label>
  <input type="email" id="email" required />
</div>

The addition of the asterisk next to the required field labels and an explanatory note improves form usability by making it clear to all users which fields are mandatory, thereby enhancing accessibility and compliance with WCAG guidelines.

Difficulty:
Medium
Severity:
Medium
Sample:
form-section
level A

3.3.2 Labels or Instructions

Labels or instructions are provided when content requires user input.

Result

✅ Pass

level AA

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.

Result

✅ Pass

level AA

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.

Result

✅ Pass

level AAA

3.3.5 Help

Context-sensitive help is available.

Result

✅ Pass

level AAA

3.3.6 Error Prevention (All)

For Web pages that require the user to submit information, 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.

Result

✅ Pass

level A

3.3.7 Redundant Entry

Information previously entered by or provided to the user that is required to be entered again in the same process is either:

  • auto-populated, or
  • available for the user to select.

Result

✅ Pass

level AA

3.3.8 Accessible Authentication (Minimum)

A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:

Alternative
Another authentication method that does not rely on a cognitive function test.
Mechanism
A mechanism is available to assist the user in completing the cognitive function test.
Object Recognition
The cognitive function test is to recognize objects.
Personal Content
The cognitive function test is to identify non-text content the user provided to the Web site.

Result

✅ Pass

level AAA

3.3.9 Accessible Authentication (Enhanced)

A cognitive function test (such as remembering a password or solving a puzzle) is not required for any step in an authentication process unless that step provides at least one of the following:

Alternative
Another authentication method that does not rely on a cognitive function test.
Mechanism
A mechanism is available to assist the user in completing the cognitive function test.

Result

✅ Pass

4. Robust

Content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive technologies.

4.1 Compatible

Maximize compatibility with current and future user agents, including assistive technologies.

level undefined

4.1.1 Parsing (Obsolete and removed)

Result

✅ Pass

level A

4.1.2 Name, Role, Value

For all user interface components (including but not limited to: form elements, links and components generated by scripts), the name and role can be programmatically determined; states, properties, and values that can be set by the user can be programmatically set; and notification of changes to these items is available to user agents, including assistive technologies.

Result

❌ Fail: the evaluated sample of web pages fails this success criterion.

Evaluation Findings
Buttons lack accessible name
Problem

The buttons do not have accessible name. Currently only icons are used, which can be confusing for users who rely on screen readers to navigate the page. Every interactive element must have an accessible name that describes its purpose or function.

The buttons are marked up like this:

<button class="btn" onclick="search()">
 🔎
</button>
<button class="btn" onclick="submitForm()">
 📨
</button>
Solution

Provide accessible text for the buttons using aria-label attributes to ensure they are accessible to screen readers. The updated markup should look like this:

<button class="btn" onclick="search()" aria-label="Search">
 🔎
</button>
<button class="btn" onclick="submitForm()" aria-label="Submit Form">
 📨
</button>
Difficulty:
Low
Severity:
Medium
Sample:
button-section
level AA

4.1.3 Status Messages

In content implemented using markup languages, status messages can be programmatically determined through role or properties such that they can be presented to the user by assistive technologies without receiving focus.

Result

✅ Pass

  1. Image lacks descriptive alt text (1.1.1)
  2. Call-to-action link does not work with keyboard (2.1.1)
  3. Required fields lack clear indication (3.3.1)
  4. Buttons lack accessible name (4.1.2)
Image lacks descriptive alt text
Problem

The image within the article does not have descriptive alt text. Leaving it empty or missing in this context can make it difficult for users relying on screen readers to understand the content of the image.

The image is marked up like this:

<img src="awesome_cat.jpg" alt="" />
Solution

Provide a descriptive alt text for the image to ensure it is accessible to users relying on screen readers. The alt attribute should describe the content and function of the image, like this:

<img src="awesome_cat.jpg" alt="A cute cat lounging comfortably" />

Descriptive alt text helps convey the information or function of the image to users who cannot see it, thereby improving accessibility and compliance with WCAG guidelines.

WCAG criterion:
1.1.1: Non-text Content (external link)
Difficulty:
Low
Severity:
Medium
Sample:
blog-post
Problem

The call-to-action link within the header section does not work with just a keyboard, which violates WCAG Success Criterion 2.1.1 (Keyboard Accessible). The button is marked up link this:

<div class="link" onClick="navigateCallToAction()">
  Get a Quote!
</div>
Solution

Use <a> tags for links, and use the href attribute for the location to link to, like this:

<a class="link" href="/request-a-quote" >Get a Quote!</a>

The <a>-tag works with keyboard out of the box, does not rely on JavaScript and makes it easier for search engines to understand what is going on.

WCAG criterion:
2.1.1: Keyboard (external link)
Difficulty:
Low
Severity:
Medium
Sample:
header-section
Required fields lack clear indication
Problem

The form inputs within the form section have required fields, but there is no clear indication that these fields are required, which violates WCAG Success Criterion 3.3.1 (Error Identification). The inputs are marked up like this:

<div class="input-field">
  <label for="fullname">Fullname:</label>
  <input type="text" id="fullname" required />
</div>
<div class="input-field">
  <label for="email">Email:</label>
  <input type="email" id="email" required />
</div>
Solution

Clearly indicate which fields are required by adding a visual cue such as an asterisk (*) next to the field labels and providing a note that explains the meaning of the asterisk. The updated markup should look like this:

<div class="input-field">
  <label for="fullname"
    >Fullname: <span aria-hidden="true">(Required)</span></label
  >
  <input type="text" id="fullname" required />
</div>
<div class="input-field">
  <label for="email">Email: <span aria-hidden="true">(Required)</span></label>
  <input type="email" id="email" required />
</div>

The addition of the asterisk next to the required field labels and an explanatory note improves form usability by making it clear to all users which fields are mandatory, thereby enhancing accessibility and compliance with WCAG guidelines.

WCAG criterion:
3.3.1: Error Identification (external link)
Difficulty:
Medium
Severity:
Medium
Sample:
form-section
Buttons lack accessible name
Problem

The buttons do not have accessible name. Currently only icons are used, which can be confusing for users who rely on screen readers to navigate the page. Every interactive element must have an accessible name that describes its purpose or function.

The buttons are marked up like this:

<button class="btn" onclick="search()">
 🔎
</button>
<button class="btn" onclick="submitForm()">
 📨
</button>
Solution

Provide accessible text for the buttons using aria-label attributes to ensure they are accessible to screen readers. The updated markup should look like this:

<button class="btn" onclick="search()" aria-label="Search">
 🔎
</button>
<button class="btn" onclick="submitForm()" aria-label="Submit Form">
 📨
</button>
WCAG criterion:
4.1.2: Name, Role, Value (external link)
Difficulty:
Low
Severity:
Medium
Sample:
button-section