Report:
Report for 8 selected Sunweb pages
- Evaluator
- Michiel, Swink; Ralph, Swink
- Date
- 5 June 2025
- Commissioner
- Sunweb
Summary of the evaluation findings
The website Sunweb (be/dk/fr/nl) does not comply to WCAG 2.1 level AA yet. 19 out of 50 success criteria contain one or more issues. This document describes to what extent the website meets the accessibility requirements captured in WCAG, the Web Content Accessibility Guidelines.
The 8 selected pages have been examined from May 26th to June 5th 2025. A large array of accessibility issues were found. An initial automated test by means of Axe-Devtools found 74 issues on a React-based page ("B variant") whereas 238 issues on the same page without there implementations. It was not possible within the time of this research to give a list of all issues found. Some issues found were not tested on all pages due to the audits' timeframe. It is therefore guiding to trace documented issues on all sample pages. This audit can not be used in a accessibility statement because not all sample pages were examined. Some elements of the website have a highly complex functionality that caused several accessibility problems. It is advised to continue rebuilds them with not only usability but also accessibility in mind.
Some of the more serious issues found:
- Interactive elements without accessible names cannot be read by screenreaders.
- Keyboard navigation was hindered because it's not always visible which element has focus and some functionality could not be used with a keyboard only.
- Assistive software is not be able to interpret certain elements and their status properly due to incorrect use of WIA-ARIA tagging.
- Some texts were hard to read because of low color contrast.
The audit focuses specifically on the accessibility of the website for people with a disability, such as people who are blind, deaf, low-literate or have other functional problems. For them it is important that the website is technically and substantively designed in such a way that the site is usable. Optimizing a website for accessibility has more advantages; it makes the website more usable for everyone (for example also for people who look at their mobile phone in a sunny environment) and it makes the site easier to find in search engines.
Scope of the evaluation
Website name | Sunweb (be/dk/fr/nl) |
---|---|
Scope of the website |
Within the scope of this inspection:
|
Conformance target | WCAG 2.1 level AA |
Accessibility support baseline | Common web browsers and assistive technologies. |
Overview of audit results
Principle | Passed | Failed | Can't tell |
---|---|---|---|
1 Perceivable | 7 | 9 | 4 |
2 Operable | 6 | 8 | 3 |
3 Understandable | 6 | 0 | 4 |
4 Robust | 1 | 2 | 0 |
Total | 20 | 19 | 11 |
Reading Guide
This evaluation is a snapshot. The website might have been changed. The problems found are only examples. Therefore, check for any problem whether this also occurs in other places. This evaluation is just a sample of a few pages. As many different types of pages are included in the sample as possible to get the best impression of the accessibility. Pay attention! New problems may arise when making improvements or changes to the website/app. Success criteria marked with "Not present" are automatically approved. Success criteria marked with "Unknown" or "Can't tell" are not approved.
Detailed audit results
1. Perceivable
1.1 Text Alternatives
1.1.1 Non-text Content (Level A)
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 Guideline 4.1 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.
Information about success criterion 1.1.1 Non-text Content
Outcome: Failed
Findings: React / B-variant: The Sunweb logo in the header of each page has the accessible text "Sunweb". The fact that this is a logo carries important information, this signifies that this is a webpage from the Sunweb organization. Add the word "logo" to the alt text. The logo links to the homepage, it is suggested to add the link target to the alt text in order to also conform to 2.4.4.
Non-React: The Sunweb logo in the header of each page is a SVG without accessible text. A logo carries important information and can not be considered decorative. Give informative SVG images an attribute role="img" for browsers to present them as an image and add a text alternative by means of adding a title-element as first child-element. Make sure the present link target "home pagina" remains in order to conform to 2.4.4.
React / B-variant: The header of each page includes icons, not all include a text alternative such as the globe and a magnifying glass. Therefore the buttons they represent have no accessible name, see 4.2.1. Give informative SVG images an attribute role="img" for browsers to present them as an image and add a text alternative by means of adding a title-element as first child-element.
Non-React: In the header of each page there are icons of a globe and a magnifying glass. These images carry meaning but have no text alternative. Therefore the buttons they represent have no accessible name, see 4.2.1. Give icons with meaning always an accessible text, for example by placing them as img with an alt attribute in the html.
React / B-variant: The footer of each page includes social media icons without text alternatives. Therefore the buttons they represent have no accessible name, see 4.2.1. Give informative SVG images an attribute role="img" for browsers to present them as an image and add a text alternative by means of adding a title-element as first child-element.
Non-React: The footer of each page includes social media icons without text alternatives. Therefore the buttons they represent have no accessible name, see 4.2.1. Give icons with meaning always an accessible text, for example by placing them as img with an alt attribute in the html.
React / B-variant: The header of each page *includes an icon with a heart and a number which links to a "favorites" page. Visually the purpose of the link is clear, but assistive technology only displays the number. Add a link tekst only for software. This can be done for example with an aria-label.
Non-React: identical issue.
React / B-variant: The BE/NL search result page contains images with visual text labels such as "LAST MINUTE". This is the same on the other language search pages, such as "AFBUDSREJSER" on the DK search result page. These images have no alt attributes. In many cases supportive software will display the filename of the image. Add an alt attribute that describes the image. It's better not to use an textual image, see 1.4.5.
Non-React: identical issue.
React / B-variant: not present.
Non-React: The BE/NL property specific search result page features the modal "Gun jezelf het voordeel van vakantie" which can appear without warning. The modal consists of an image with text. The text is not available for supportive software and the image has no text alternative. All information in the image is lost to blind visitors. Give the image a text alternative that contains all text and visual information in the image, or add the text as html text on the page to conform 1.4.5.
Note: This modal is discussed under various criteria in this report. As a summary, also keep in mind that the modal must be keyboard accessible, it has a correct place in the focus sequence (focus remains in the modal till the user has closed it) and it's presence is announced by screenreaders upon appearance.
1.2 Time-based Media
1.2.1 Audio-only and Video-only (Prerecorded) (Level A)
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.
Information about success criterion 1.2.1 Audio-only and Video-only (Prerecorded)
Outcome: Inapplicable
1.2.2 Captions (Prerecorded) (Level A)
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.
Information about success criterion 1.2.2 Captions (Prerecorded)
Outcome: Passed
1.2.3 Audio Description or Media Alternative (Prerecorded) (Level A)
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.
Information about success criterion 1.2.3 Audio Description or Media Alternative (Prerecorded)
Outcome: Failed
Findings: React / B-variant: on the property-specific pages, the image carousel may contain embedded YouTube videos. When it contains no voice but only music, blind visitors don't know what is shown in the video. Add a media alternative or an audio description. The text in the page can be considered as media alternative, but this has to be announced. Add for example a text to the title of the iframe with the video "All information in the video is available in the text on this page". However, this is not sufficient for 1.2.5.
Non-React: identical issue.
1.2.4 Captions (Live) (Level AA)
Captions are provided for all live audio content in synchronized media.
Information about success criterion 1.2.4 Captions (Live)
Outcome: Inapplicable
1.2.5 Audio Description (Prerecorded) (Level AA)
Audio description is provided for all prerecorded video content in synchronized media.
Information about success criterion 1.2.5 Audio Description (Prerecorded)
Outcome: Failed
Findings: React / B-variant: on the property-specific pages, the image carousel may contain embedded YouTube videos. When it contains no voice but only music, blind visitors don't know what is shown in the video. Add a media alternative or an audio description. The text in the page can be considered as media alternative, but this has to be announced. Add for example a text to the title of the iframe with the video "All information in the video is available in the text on this page". However, this is not sufficient for 1.2.5.
Non-React: identical issue.
1.3 Adaptable
1.3.1 Info and Relationships (Level A)
Information, structure, and relationships conveyed through presentation can be programmatically determined or are available in text.
Information about success criterion 1.3.1 Info and Relationships
Outcome: Failed
Findings: React / B-variant: upon use of the search field in the header, a selection of results appear under various visual headings. These headings are not marked as such in HTML. There are various solutions to this, from placing them in H-elements to changing the structure of the search results. The result should however be that accessibility aids can identify/differentiate the categories and the underlying links to the user.
Non-React: identical issue.
React / B-variant: many pages feature numbered navigation, such as the "Search" and "Search results". The accessible names of the buttons are "1", "2", "3" etc. For sighted visitors it's obvious that these are page numbers, however for blind visitors it's not clear that these links point to other pages with search results. Add the word "page" to the accessible name of these buttons.
Non-React: identical issue.
React / B-variant: the footer of each page contains an img element "Travelife" with the alternative text "sustainablity". It is nested directly in an unordered list which may only contain list elements, as it cannot be described by assistive technology in it's current form. Put the img element inside a list item.
Non-React: identical issue.
1.3.2 Meaningful Sequence (Level A)
When the sequence in which content is presented affects its meaning, a correct reading sequence can be programmatically determined.
Information about success criterion 1.3.2 Meaningful Sequence
Outcome: Can't tell
1.3.3 Sensory Characteristics (Level A)
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.
Information about success criterion 1.3.3 Sensory Characteristics
Outcome: Can't tell
1.3.4 Orientation (Level AA)
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.
Information about success criterion 1.3.4 Orientation
Outcome: Passed
1.3.5 Identify Input Purpose (Level AA)
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.
Information about success criterion 1.3.5 Identify Input Purpose
Outcome: Inapplicable
1.4 Distinguishable
1.4.1 Use of Color (Level A)
Color is not used as the only visual means of conveying information, indicating an action, prompting a response, or distinguishing a visual element.
Information about success criterion 1.4.1 Use of Color
Outcome: Failed
Findings: React / B-variant: many pages feature numbered navigation, such as the "Search" and "Search results" pages. A darker hue around a page number indicates the current page. Visually impaired or color blind visitors might miss this information. Use an other indication apart from color contrast, for example an outline, or make sure the difference in color has a ratio larger than 3:1 in order to meet this criterium.
Non-React: identical issue.
1.4.2 Audio Control (Level A)
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.
Information about success criterion 1.4.2 Audio Control
Outcome: Passed
1.4.3 Contrast (Minimum) (Level AA)
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 minimum contrast requirement.
Information about success criterion 1.4.3 Contrast (Minimum)
Outcome: Failed
Findings: React / B-variant: the "Search results" page features red text (HEX #FF333F) on white background, for example the crossed out price and "Lees meer" (BE/NL page). The contrast of these texts is too low, color blind visitors or visitors with impaired vision might not be able to read them. The contrast ratio is 3,6:1 where it should be at least 4,5:1. The white text "Bekijk prijzen" on the same red background has the identical contrast ratio. On the same pages the red percentage on the pink background (HEX #FACAC9) next to the button "Bekijk prijzen" has a too low contrast ratio of 2,9:1.
Non-React: identical issue.
React / B-variant: the "Search results" page features text in different shades of grey on white or light grey backgrounds that do not meet color contrast requirements. For example on the page the text "### Beoordelingen" or "### ervaringen" (BE/NL page) (HEX #837868) on a white background has a contrast ratio of 4,3:1 where this should be at least 4,5:1. On both pages the text "Wees er snel bij!" (HEX #837868) on beige (HEX #F3EFEB) has a contrast ratio of 3,8:1. Make sure all texts have enough contrast in order to be readable by everyone.
Non-React: identical issue.
React / B-variant: the "Search results" page features the white text "Selections" on an orange background (HEX #F66E20) that does not meet the color contrast requirements. The contrast ratio is 2,9:1 where it should be at least 4,5:1.
Non-React: identical issue.
1.4.4 Resize text (Level AA)
Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality.
Information about success criterion 1.4.4 Resize text
Outcome: Passed
1.4.5 Images of Text (Level AA)
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.
Information about success criterion 1.4.5 Images of Text
Outcome: Failed
Findings: React / B-variant: not present.
Non-React: The BE/NL property specific search result page features the modal "Gun jezelf het voordeel van vakantie" which can appear without warning. The modal consists of an image with text. Visitors with impaired vision can not adapt this text to their needs. Add the text in the image also as html text in the page in order to pass this criterium.
1.4.10 Reflow (Level AA)
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;
Except for parts of the content which require two-dimensional layout for usage or meaning.
Information about success criterion 1.4.10 Reflow
Outcome: Can't tell
1.4.11 Non-text Contrast (Level AA)
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.
Information about success criterion 1.4.11 Non-text Contrast
Outcome: Failed
Findings: React / B-variant: on the property-specific pages, yellow stars (HEX #F4BE15) indicate the rating. The contrast of these stars with the white background is too low. The contrast ratio is 1.7:1 where this should be at least 3:1. (Note they are beige grey on the "search results" pages where they do meet the standards. Should the yellow color be preferred, a dark outline would also solve the issue at hand).
Non-React: identical issue.
1.4.12 Text Spacing (Level AA)
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.
Information about success criterion 1.4.12 Text Spacing
Outcome: Failed
Findings: React / B-variant: "search results" pages feature a carrousel of various properties, where text content is placed on a white card. If text spacing is used in accordance to the values set by this criterium, text may appear under the card and on the background image. In some cases the contrast between the black text and the image is too low. Good reflow of the card would solve this issue. (This issue also covers criteria 1.1.1 and 1.4.10 but is only mentioned here for efficiency purposes).
Non-React: identical issue.
1.4.13 Content on Hover or Focus (Level AA)
Where receiving and then removing pointer hover or keyboard focus triggers additional content to become visible and then hidden, the following are true:
- Dismissable: 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.
Information about success criterion 1.4.13 Content on Hover or Focus
Outcome: Can't tell
2. Operable
2.1 Keyboard Accessible
2.1.1 Keyboard (Level A)
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.
Information about success criterion 2.1.1 Keyboard
Outcome: Failed
Findings: React / B-variant: the header on each features a profile button opening a dropdown menu ("mijn Sunweb" on the BE/NL page). The link "Inloggen" and "Maak een account aan" do not get keyboard focus and therefore they cannot be activated. Make sure all interactive elements can be operated by means of the keyboard.
Non-React: identical issue.
React / B-variant: the "search results" pages feature a slider for price adjustments. The slider can be controlled by means of the keyboard (arrow keys) although it updates on every keystroke. Setting a price range means having to re-adjust focus for each keystroke, which is a needlessly difficult activity. Mouse users on the other hand can drag and drop with ease. Make sure there is a mechanism to enter a price range for keyboard users, perhaps only appearing upon keyboard focus as skiplinks do.
Non-React: identical issue.
React / B-variant: not present.
Non-React: on property-specific search result pages, images are placed in a slider. Keyboard navigation requires one to tab through all of the images before continuing on the page. In case one opts to use such a slider, make sure a pause button is available. See the React / B-variant page for a good alternative.
2.1.2 No Keyboard Trap (Level A)
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.
Information about success criterion 2.1.2 No Keyboard Trap
Outcome: Passed
2.1.4 Character Key Shortcuts (Level A)
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 use one or more non-printable keyboard characters (e.g. Ctrl, Alt, etc);
- Active only on focus: The keyboard shortcut for a user interface component is only active when that component has focus.
Information about success criterion 2.1.4 Character Key Shortcuts
Outcome: Failed
Findings: React / B-variant: on the property-specific pages, the image carousel may contain embedded YouTube videos. This video player uses one key functionality, for example "f" for fullscreen and "m" for mute. This functionality can cause problems for visitors using speech software because they rely on one key commands for website navigation. Solve this by adding the "disablekb=1" command to the embedcode to disable this functionality.
Non-React: identical issue.
2.2 Enough Time
2.2.1 Timing Adjustable (Level A)
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.
Information about success criterion 2.2.1 Timing Adjustable
Outcome: Can't tell
2.2.2 Pause, Stop, Hide (Level A)
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.
Information about success criterion 2.2.2 Pause, Stop, Hide
Outcome: Failed
2.3 Seizures and Physical Reactions
2.3.1 Three Flashes or Below Threshold (Level A)
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.
Information about success criterion 2.3.1 Three Flashes or Below Threshold
Outcome: Passed
2.4 Navigable
2.4.1 Bypass Blocks (Level A)
A mechanism is available to bypass blocks of content that are repeated on multiple Web pages.
Information about success criterion 2.4.1 Bypass Blocks
Outcome: Failed
Findings: React / B-variant: each page lacks a mechanism to avoid repetitive content, for example the header, and the search filters on "search results" pages. Visitors that navigate the website by means of the keyboard have to click past the same interactive elements on each page before they get to the main content. This can be solved by adding a link tot he page (a skiplink) that moves the focus to the first unique content of a page. This link has to be the first link on the page. It can be hidden for all visitors and only shown when it gets keyboard focus. Multiple skiplinks may be used.
Non-React: identical issue.
2.4.2 Page Titled (Level A)
Web pages have titles that describe topic or purpose.
Information about success criterion 2.4.2 Page Titled
Outcome: Passed
2.4.3 Focus Order (Level A)
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.
Information about success criterion 2.4.3 Focus Order
Outcome: Failed
Findings: React / B-variant: upon use of the search field in the header, a selection of results appear under various visual headings, followed by a button to view more results of that specific category ("Meer bekijken" in BE/NL). Upon keyboard activation of the button and continued navigation by means of the tab key, the next category receives focus instead of the first newly added search result. Place these new results in the tab order before the next category.
Non-React: identical issue.
React / B-variant: the header on each features a profile button opening a dropdown menu ("mijn Sunweb" on the BE/NL page). When that happens the tab key is no longer active because the element with role="menu" now contains a tabindex=0 attribute making it non-focusable and the nav, main and footer elements are hidden for assistive software by means of an aria-hidden attribute. Visitors relying on navigation by means of the keyboard have only one option to continue and that's the escape key. Make sure the process has a logical tab order and page navigation is not disrupted.
Non-React: identical issue.
React / B-variant: not present.
Non-React: the BE/NL property specific search result page features the modal "Gun jezelf het voordeel van vakantie" which can appear without warning. The modal blocks the view of part of the page behind it but keyboard focus is still on this page and can be on links that are not visible behind the modal window. When a modal blocks part of a page keyboard focus should be only on elements that are inside this modal until it is closed. Do not give keyboard focus to the underlying page.
React / B-variant: the BE/NL property specific search result page features a menu with 6 items underneath the property name ("Algemeen" till "Omgeving"). These items do not fall in the focus order and are therefore skipped by keyboard navigators. Make sure they receive focus as on the non-react variant pages.
Non-React: no issue.
React / B-variant: issue solved.
Non-React: the NL/BE property-specific search result page feature various dropdown elements under the header "Kamertypes". The images within these dropdown menus are focusable even when the menu's are closed. Make sure elements that are not visible don't get keyboard focus.
2.4.4 Link Purpose (In Context) (Level A)
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.
Information about success criterion 2.4.4 Link Purpose (In Context)
Outcome: Failed
Findings: React / B-variant: issue solved.
Non-React: The logo of Sunweb in the header of each page is a link to the homepage, but the accessible name of the image is "Sunweb". Add the linktarget, for example by adding it to the alt text.
React / B-variant: the first time a visitor visits the website on the BE/NL version, a cookie warning appears. The Sunweb logo is a link to https://www.cookieinfo.net/. This link target does not correspond with the text "Sunweb". Also the link does not have an accessible name, so for blind visitors it is not clear what the target of the link is. Give the link a proper visual text that describes the target and that's also accessible.
Non-React: identical issue.
React / B-variant: the first time a visitor visits the website on the BE/NL version, a cookie warning appears. In the modal that opens with the button "Beheren" there are a number of triangular dropdown options that all have the same accessible link tekst "Details". For blind visitors it is not clear which details will be shown. Add for example the text of the label of the checkbox to the accessible link text.
Non-React: identical issue.
2.4.5 Multiple Ways (Level AA)
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.
Information about success criterion 2.4.5 Multiple Ways
Outcome: Passed
2.4.6 Headings and Labels (Level AA)
Headings and labels describe topic or purpose.
Information about success criterion 2.4.6 Headings and Labels
Outcome: Can't tell
2.4.7 Focus Visible (Level AA)
Any keyboard operable user interface has a mode of operation where the keyboard focus indicator is visible.
Information about success criterion 2.4.7 Focus Visible
Outcome: Failed
Findings: React / B-variant: issue solved.
Non-React: the BE/NL property specific search result page features various room types under the header "Kamertypes". These dropdown elements do not feature a focus border. Make sure each element that has keyboard focus has one for good visible indication.
2.5 Input Modalities
2.5.1 Pointer Gestures (Level A)
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.
Information about success criterion 2.5.1 Pointer Gestures
Outcome: Passed
2.5.2 Pointer Cancellation (Level A)
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.
Information about success criterion 2.5.2 Pointer Cancellation
Outcome: Failed
Findings: React / B-variant:
the "search results" pages contain a filter menu that features a range slider that allows one to enter a minimum and maximum price. When clicking on one point on the slider that indicator will move towards the mouse pointer. It's not possible to stop or cancel this motion or undo the change in price. Do not use a Down-Event in order to comply with this criterium.
Non-react: identical issue.
2.5.3 Label in Name (Level A)
For user interface components with labels that include text or images of text, the name contains the text that is presented visually.
Information about success criterion 2.5.3 Label in Name
Outcome: Can't tell
2.5.4 Motion Actuation (Level A)
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.
Information about success criterion 2.5.4 Motion Actuation
Outcome: Passed
3. Understandable
3.1 Readable
3.1.1 Language of Page (Level A)
The default human language of each Web page can be programmatically determined.
Information about success criterion 3.1.1 Language of Page
Outcome: Passed
3.1.2 Language of Parts (Level AA)
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.
Information about success criterion 3.1.2 Language of Parts
Outcome: Can't tell
3.2 Predictable
3.2.1 On Focus (Level A)
When any component receives focus, it does not initiate a change of context.
Information about success criterion 3.2.1 On Focus
Outcome: Can't tell
3.2.2 On Input (Level A)
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.
Information about success criterion 3.2.2 On Input
Outcome: Can't tell
3.2.3 Consistent Navigation (Level AA)
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.
Information about success criterion 3.2.3 Consistent Navigation
Outcome: Passed
3.2.4 Consistent Identification (Level AA)
Components that have the same functionality within a set of Web pages are identified consistently.
Information about success criterion 3.2.4 Consistent Identification
Outcome: Passed
3.3 Input Assistance
3.3.1 Error Identification (Level A)
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.
Information about success criterion 3.3.1 Error Identification
Outcome: Inapplicable
3.3.2 Labels or Instructions (Level A)
Labels or instructions are provided when content requires user input.
Information about success criterion 3.3.2 Labels or Instructions
Outcome: Can't tell
3.3.3 Error Suggestion (Level AA)
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.
Information about success criterion 3.3.3 Error Suggestion
Outcome: Inapplicable
3.3.4 Error Prevention (Legal, Financial, Data) (Level AA)
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.
Information about success criterion 3.3.4 Error Prevention (Legal, Financial, Data)
Outcome: Inapplicable
4. Robust
4.1 Compatible
4.1.1 Parsing (Level A)
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.
Information about success criterion 4.1.1 Parsing
Outcome: Passed
4.1.2 Name, Role, Value (Level A)
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.
Information about success criterion 4.1.2 Name, Role, Value
Outcome: Failed
Findings: React / B-variant: the first time a visitor visits the website on the BE/NL version, a cookie warning appears. In the modal that opens with the button "Beheren" the button that shows the previous page has no accessible name. Blind visitors do not know the purpose of the button. Make sure every interactive element has an accessible name.
Non-react: identical issue.
React / B-variant: the first time a visitor visits the website on the BE/NL version, a cookie warning appears. In the modal that opens with the button "Beheren" there are a number of links with the accessible text "Details" that open or close a block with more information. Sighted visitors can see if a block of information is folded or unfolded. Blind or visually impaired visitors that rely on screen reading software miss the status and don't know whether this information is available or not. Add the status to the code by means of aria-expanded or a similar technique.
Non-react: identical issue.
React / B-variant: the header of each page contains buttons with no text alternatives, only icons: a globe and a magnifying glass. These buttons have no accessible name. Blind visitors don't know what the buttons do. Make sure every interactive element has an accessible name. Also see 1.1.1.
The same problem appears more often on website, for example all buttons with a heart icon that add a destination to favourites an the buttons with an "i" that provide extra information have no accessible name.
Non-react: identical issue.
React / B-variant: on the property-specific search result page underneath the header "Kamertypes" there are a number of room options that open as pop-ups. The button with a downward/upward arrow has no accessible name, only that fact it is a button will be announced by accessibility aids. Blind visitors don't know the purpose of the button.
Non-react: a similar issue is found with the same room descriptions which are featured in dropdown elements here. While sighted visitors can see if the folded or unfolded, blind or visually impaired visitors rely on accessibility aids to convey this status. Add the status to the code by means of aria-expanded or a similar technique.
React / B-variant: various pages feature numbered navigation, such as the "Search" and "Search results" pages. The buttons with arrows to go to the previous or next page have no accessible name. Blind visitors don't know what the buttons do. Give each interactive element an accessible name.
Non-react: identical issue.
React / B-variant: each page features a search option under the header with 4 buttons that open more options ("Wanneer", "Hoelang" etc. on the BE/NL version). The div element that encloses the button has an aria-expanded attribute but this attribute can only be added to interactive elements. Supportive software can not determine whether the options are available or not. This might be solved by moving the aria-expanded attribute to the button inside the div.
Non-react: identical issue.
React / B-variant: the "Search" and "Search results" pages feature a destination filter ("Bestemming" on the BL/NL version). There are three fields with complex interaction. Both when using navigation with the keyboard or when using reading software unexpected behaviour occurs. It is not possible to mention all issues but this functionality fails 1.3.1, 2.4.3, 2.4.7 and 4.1.2. The best way to make this function accessible is a coordinated effort between a frontend programmer and the UX design/accessibility side of things.
4.1.3 Status Messages (Level AA)
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.
Information about success criterion 4.1.3 Status Messages
Outcome: Failed
Findings: React / B-variant: each page features a search option under the header. Upon input search results automatically appear, although this is not announced. Integrate the role="status" attribute so users of accessibility aids are notified of the new content.
Non-react: identical issue.
Basis for this evaluation
The audit was conducted based on the evaluation method of the W3C, WCAG-EM. This is largely done manually by taking a sample. For a quickscan we use parts of this methodology. Despite all the researcher's care and experience, it is possible that a problem has not been identified. Keep in mind that in a next audit certain parts could be assessed differently because of further development of techniques and assistive software. Tools are used in the manual audit.
Sample of audited web pages
- https://www.sunweb.be/nl/vakantie/zoeken-b-variant
- https://www.sunweb.be/nl/vakantie/zoeken
- https://www.sunweb.dk/rejser/sog-b-variant
- https://www.sunweb.dk/rejser/sog
- https://www.sunweb.fr/vacances/recherche-b-variant
- https://www.sunweb.fr/vacances/recherche
- https://www.sunweb.nl/vakantie/egypte/rode-zee/el-gouna/hotel-three-corners-rihana-resort-rihana-inn
- https://www.sunweb.be/nl/vakantie/egypte/rode-zee/el-gouna/hotel-the-three-corners-rihana-resort-rihana-inn
Relied upon techniques
Web browsers (User Agents) and other software
The following software was used in this evaluation:- Chrome, version 137
- Edge, version 137
- Firefox, version 139
- Color Contrast Analyser
- NVDA
Resources:
-
Website Accessibility Conformance Evaluation Methodology (WCAG-EM)
www.w3.org/WAI/eval/conformance -
Web Content Accessibility Guidelines (WCAG)
www.w3.org/WAI/intro/wcag -
How to Meet WCAG 2.1 Quick Reference
www.w3.org/WAI/WCAG21/quickref/
This report is mainly created with the online W3C report tool.