5G Netz (1 issues)
Link "Ihre Vorteile im größten 5G-Netz Deutschlands" has href="#" and is used as button
+
Aktionen (2 issues)
Interactive element does not use correct semantic HTML
+
Section with generic role with ARIA label
+
Alle Geräte (3 issues)
Interactive element uses non-semantic HTML
+
Improper use of semantic HTML
+
Interactive elements do not use semantic HTML
+
Android Betriebssystem (2 issues)
Interactive element does not use correct semantic HTML
+
Improper use of landmarks
+
Apple Watch Familienkonfiguration (2 issues)
Interactive element uses non-semantic HTML
+
Interactive element uses non-semantic HTML
+
Apple iPad Air 11 2025 (2 issues)
Interactive element does not use correct semantic HTML
+
Interactive element does not use correct semantic HTML
+
Cashback Einlösen (1 issues)
Interactive element does not use correct semantic HTML
+
For Friends (1 issues)
Interactive element does not use correct semantic HTML
+
Handy Verkaufen (2 issues)
Interactive element does not use correct semantic HTML
+
FAQ not accessible via assistive technology
+
Handyversicherung (2 issues)
Interactive element does not use correct semantic HTML
+
FAQ not accessible via assistive technology
+
IoT-Verteilerseite (1 issues)
FAQ not screen reader accessible
+
Kider Uhr GPS Oneshop (1 issues)
Interactive element does not use correct semantic HTML
+
Magena Sport (2 issues)
League information collapsible not using proper semantic HTML elements
+
Named sections used as regions
+
Magenta TV Streaming Dienste Partner DAZN (1 issues)
Close button is hidden from screen readers
+
Magenta Tarife Young (3 issues)
Interactive element does not use correct semantic HTML
+
Switch is not accessible to assistive technology
+
Interactive element uses title attribute
+
Mobile Router (5 issues)
Interactive element does not use correct semantic HTML
+
FAQ not using correct semantic HTML and ARIA attributes
+
Interactive element uses non-semantic HTML
+
Improper use of semantic HTML
+
Interactive elements do not use semantic HTML
+
Mobilfunk Netzausbau (1 issues)
Interactive element does not use correct semantic HTML
+
Prepaid Tarife (1 issues)
FAQ accordion does not use interactive elements (buttons)
+
Roaming Optionen (2 issues)
Comparison table nested inside "scrollbar"
+
Interactive element does not use correct semantic HTML
+
Senioren Smartwatch (4 issues)
Interactive element does not use correct semantic HTML
+
Collapsible button does not use button element
+
FAQ not screen reader accessible
+
Tabular data not using semantic table element
+
Shop (1 issues)
Inconsistent use of landmarks, grouping HTML elements, ARIA attributes
+
Smartphone Tarife (1 issues)
Interactive element does not use correct semantic HTML
+
Smartphones (4 issues)
FAQ not using semantic HTML and correct ARIA roles
+
Interactive element uses non-semantic HTML
+
Improper use of semantic HTML
+
Interactive elements do not use semantic HTML
+
Smartwatch mit Gesundheitsfunktionen (3 issues)
Interactive element does not use correct semantic HTML
+
FAQ not screen reader accessible
+
Collapsible elements not screen reader accessible
+
Smartwatches (4 issues)
Interactive element does not use correct semantic HTML
+
FAQ not using correct semantic HTML and ARIA attributes
+
Interactive element uses non-semantic HTML
+
Improper use of semantic HTML
+
Sonim XP100 (3 issues)
Interactive element does not use correct semantic HTML
+
Interactive element does not use correct semantic HTML
+
Interactive element uses non-semantic HTML
+
Sport (2 issues)
Sports channel images used as buttons, announced as images
+
"Empfehlung" badge in tariff options section used as but not using live region
+
Sport Megasport Option (3 issues)
Interactive element does not use correct semantic HTML
+
League information collapsible not using proper semantic HTML elements
+
Close button is hidden from screen readers
+
Tablets (3 issues)
Interactive element uses non-semantic HTML
+
Improper use of semantic HTML
+
Interactive elements do not use semantic HTML
+
Tarife (2 issues)
Interactive element uses wrong semantic HTML
+
Interactive element uses non-semantic HTML
+
Tastenhandys (4 issues)
Interactive element does not use correct semantic HTML
+
FAQ not using correct semantic HTML and ARIA attributes
+
Interactive element uses non-semantic HTML
+
Improper use of semantic HTML
+
Telefonieren SMS Ins Ausland (3 issues)
Interactive element does not use correct semantic HTML
+
Form selection changes displayed content; changes are not announced to assistive technology
+
Interactive element uses non-semantic HTML
+
Travel Mobil Optionen (2 issues)
Interactive element does not use correct semantic HTML
+
Interactive element uses non-semantic HTML
+
Travel Surf (1 issues)
Interactive element uses non-semantic HTML
+
VIP Lieferung (1 issues)
Input errors are announced while focus is set on other input
+
Vertragsverlängerung (3 issues)
Interactive element uses non-semantic HTML
+
Button uses HTML link element
+
Accordion not using semantic HTML
+
Xiaomi 15 (3 issues)
Interactive element does not use correct semantic HTML
+
Interactive element, operable by mouse, not accessible by assistive technology
+
Interactive element does not use correct semantic HTML
+
iPad Vergleich (2 issues)
FAQ not accessible via assistive technology
+
Device selection names are not unique
+
iPhone Erleben (4 issues)
Interactive element does not use correct semantic HTML
+
Interactive element does not use correct semantic HTML
+
Interactive element uses non-semantic HTML
+
Multiple main landmarks found
+
iPhone Vergleich (2 issues)
FAQ not accessible via assistive technology
+
Device selection names are not unique
+
Observation Details
Accordions (e.g. FAQ) are built with <div> and ARIA attributes. While the implementation meets the current success criterion, it introduces problems (or possible problems) in other success criteria. E.g. hidden links being focusable by keyboard, while being successfully hidden from screen readers. These discrepancies and problems can be avoided, using semantic HTML.
Remediation Notes
For accordions, evaluate the use of <detail> & <summary> elements.
Accompanying Files
Observation Details
The whole table is inside an element with ARIA role "scrollbar" rendering the table completely inaccessible. This issue results in failures of quite a few success criteria. Quite possibly, results in issues that are not auditable until this issue is fixed.
Remediation Notes
Ensure the table being accessible by avoiding nesting of semantic roles (table inside scrollbar)
Observation Details
The accordion button uses <div role="button">.
Remediation Notes
Consider using an actual interactive element <button>.
Observation Details
Section "Smartphone Highlights" uses aria-labelledby with a non-existing element ID smarphone-highlights-heading.
<section
id="smartphone-highlights"
class="SmartphoneHighlightsSmartphoneHighlights_3U6z0"
aria-labelledby="smarphone-highlights-heading"
>Remediation Notes
If a section is supposed to be labelled by a heading, chances are the section element is not needed at all, since the heading serves the purpose of structuring this part of the content already.
However in the example above, this simply is a typo in the element ID. Ensure using the correct element ID smartphone-highlights-heading for the section to become role "region" instead of "generic" or remove its aria-labelledby attribute to solve this issue, since the heading already structures the content.
Observation Details
Multiple elements are not using proper semantic HTML but instead are custom built, leading to numerous issues e.g. with keyboard accessibility (see 2.1.1 Keyboard). Including but not limited to, are the following elements:
Links ("Weiter ohne Gerät", Product cards, ...)
Buttons (Filter, Info icons, Footnote Asterisks)
Remediation Notes
Using native semantic HTML is always the preferred method.
If this is absolutely impossible in a situation, re-building can be viable but comes with dramatically increased time and effort to meet technical requirements. The BFIT-Bund Handreichung "Accessible design of user interface elements" shows technical requirements (e.g. keyboard navigation, mouse operation, etc.) for interactive elements. Looking into Accessible design of user interface elements – Links, quickly shows the complexity of what is required to meet the functionality, a properly used <a href="..."> element already includes.
Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
An accordion component consists of collapsible elements with a header and content, which can be hidden. To hide / show the content, an interactive element must be present to operate the accordion. The FAQ on the shop pages are not using any semantic interactive elements.
No interaction possibility is announced via screen reader, navigating the accordion. Instead, the only announcements made are headings and images with no alt attribute, which are announced as "image". Without "guessing", a screen reader user will not be able to know that the element is interactive.
Side note: Hovering over the accordion at any point, changes the mouse cursor to pointer. As this is set on the collapsible elements and not reversed on the content panel, the cursor looks like it is hovering an interactive element inside the whole accordion, mistakenly giving the user the impression of hovering interactive elements. While this is not part of the criterion's failure, it is highly recommended to remediate.
Remediation Notes
The use of semantic HTML is adamant to a good user experience and web accessibility. Ideally, native HTML is used. In case of an accordion, this could be realized by using the <detail> and <summary> elements.
If there is a valid reason to not use those, ensure the use of interactive elements (<button>) for the interactive parts of the accordion.
The technical requirements for building an accessible accordion component can be found in the BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
The accordion, while not strictly defined as such, can be defined as an opposite to a tab group. They both have the purpose of hiding content from the user to be revealed on user interaction. Defining accordion and tab group as opposites allows for an easy rule of usage. Tab groups are used, if and only if there must always be exactly one content panel visible. The accordion is then used, whenever the possibility of showing more than one content panel at the same time is needed or wanted. This distinction can e.g. be found in the documentation of the GOV.UK Design System at Accordion – "Decide between using accordions, tabs and details".
Observation Details
The close button of the "league collapsibles" is using ARIA to hide it from screen readers. It also is not using a semantic button element (see 1.3.1 Info and Relationships).
Remediation Notes
As the displayed content of expanded sections is not interfering with other content, this observation does not fail the current success criterion. It does however fail 1.3.1 Info and Relationships. Ensure every element that is used as a button, is actually using a semantic HTML button element to do so.
Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
The link "Ihre Vorteile im größten 5G-Netz Deutschlands" is used as a button element, opening a dialog window. It however is marked up as an HTML link, using an href="#".
The link's purpose, opening the dialog window with a video trailer, is also duplicating the "Play" button's purpose next to it.
Remediation Notes
Ensure always using semantic HTML button elements for buttons. Only use HTML links for directing the user to another resource.
Evaluate combination of button and link into one button like this:
<button>
<svg><title>Video abspielen</title> ...</svg>
Ihre Vorteile im größten 5G-Netz Deutschlands
</button>Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
The images of sports channels in section "Welchen Sport wollen Sie live bei MagentaTV sehen?" are used as buttons / button labels. Navigating with assistive technology, the image can be selected instead of the button. As such, the button is not even announced properly as an interactive element. Without guessing, there is no announcement that conveys the information of the image being used as an interactive element.
If the image (button) is then clicked using assistive technology, the button is triggered, the change however is not announced. There is
no announcement of selection state,
no announcement of changes made to the "accordion button" showing the count of selected buttons
no announcement of pop-up window with "Empfehlung ansehen" link
Without correct announcements to assistive technology, the section "Welchen Sport wollen Sie live bei MagentaTV sehen?" is rendered completely inaccessible.
Remediation Notes
Ensure accessibility for assistive technology by using existing semantic HTML element structure. Ideally, use a form structure as outlined in observation "Sports channel selection not keyboard accessible" (2.1.1 Keyboard). For more immediate fixes, these recommendations can be followed:
Instead of using
<button>...</button><label>...<img ... />...</label>, use the button's property of getting its accessible name from its content and move the image into it like<button><img alt="Bundesliga hinzufügen" /></button>Instead of buttons, use checkboxes with their property of providing a checked / unchecked state function without the need of using
aria-checked, manually settingrole="switch", etc.
Accompanying Files
Observation Details
The "Empfehlung" badge is added to the tariff option section when selection is changed in section "Welchen Sport wollen Sie live bei MagentaTV sehen?".
This change of content mimics what is usually built with ARIA live regions. Those can be used to announce content changes without moving the current focus, providing information about changed content in other parts of the page. Live regions are often used for alerts, notifications, etc.
The "Empfehlung" badge is added / removed, depending on prior button selection. Changes of adding or removing however are not announced to assistive technology. Without proper announcement, the changes will happen silently and cannot be accessed by certain user groups.
Remediation Notes
Use of ARIA live regions can remediate this issue. For information about ARIA live regions, refer to "MDN docs – Guides – ARIA live-regions", "GOV.UK Design System – Notification banner", and "dequeUniversity – Live Region Playground".
A few remarks about ARIA live regions:
Basis of an ARIA live region is an empty container that must exist on page load. Adding a container later on will not work with ARIA live regions.
As the change, happening on this page, is not an alert, the ARIA
role="status"should be used to implicitly setaria-live="polite"Do not announce every change; this can be done by setting a timeout on announcements, so a user clicking multiple image buttons is not interrupted on every click
Most of the time there also is a "work-around" for ARIA live region use-cases. ARIA live regions can solve the problem of unwanted, unexpected, and inaccessible content changes. On this page, the selection in one section, leads to a different tariff option to be recommended as "Empfehlung".
Easier than a live region structure would be a change of method altogether. Some possible ways to accommodate the functionality:
A form structure, showing the possible (and recommended) tariff option after submit
Tabular data of what sports channels / leagues are included in which tariff option
A hint / description at the beginning of the selection section, informing the user of possible changes, like "Wählen Sie alle Ligen(?), für die Sie sich interessieren. Je nach Auswahl empfehlen wir eine andere Sportoption, die Sie unter 'Die Sportoptionen im Überblick' finden können". This way, the content changes become expected and there is no need to announce every change after each click
Observation Details
The close button of the "league collapsibles" is using ARIA to hide it from screen readers. It also is not using a semantic button element (see 1.3.1 Info and Relationships).
Remediation Notes
As the displayed content of expanded sections is not interfering with other content, this observation does not fail the current success criterion. It does however fail 1.3.1 Info and Relationships. Ensure every element that is used as a button, is actually using a semantic HTML button element to do so.
Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
The league information collapsible structure in section "Das komplette Sport Programm" does not use proper semantic HTML elements for interactive elements.
Image button uses
<div role="button" tabindex="0"><img alt="XYZ Logo" /></div>.Close button uses
<span aria-hidden="true"><svg role="img" focusable="false">...</svg></span>"Trailer ansehen" dialog window button uses
<a href="#">
The collapsed content panel uses a generic <div> structure as well.
Those are three variants of buttons, none of which are using the actual semantic HTML button element, leading to numerous problems.
Image button cannot be operated, using keyboard navigation
Close button cannot be operated, using keyboard navigation
"Trailer ansehen" button is communicated as link but functions as a button, opening a dialog window
Remediation Notes
Ensure, using semantic HTML elements to get existing functionality, operability, and accessibility built-in. Links shall only be used to navigate to a different resource. Buttons shall be used for actions on a page. All three (Expanding collapsible panel by image button, collapsing panel by close button, opening dialog window by "Trailer ansehen" button) have button functionality and must use the semantically correct button functions.
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Ideally, the structure uses a more fitting HTML construct and is rebuilt using native, semantic HTML elements. To get functionality of collapsing / expanding content panels, a <details> & <summary> construct can be used which would also remediate the issues of the "disconnected" generic <div> structure of the collapsible content panel. To open dialog windows, the native <dialog> element should be evaluated. For the latter, ensure referring to BFIT-Bund Handreichung "Accessible design of user interface elements – Modal Dialog".
For more immediate remediation, build the three buttons as follows:
<button><img src="..." alt="Bundesliga – Mehr Informationen" /></button>for the image button<button aria-labelledby="button-label"><span id="button-label" hidden>Schließen</span><svg aria-hidden="true" focusable="false">...</svg></button>for the close button<button>Trailer ansehen</button>for the "Trailer ansehen" button
Observation Details
Sections, named by ARIA attributes (e.g. <section class="..." aria-label="Live-Sport überall streamen">) will get assigned role "region". Regions are considered landmarks which should be used sparingly for most important landmarks of a page, not for all sections. Page structure after using the main landmarks (header, main, footer, nav) is conveyed by heading structure, rather than manually creating custom landmarks / regions for each section.
Remediation Notes
Remove manually provided regions (named sections) and create page structure through heading structure. There is no need for manually created regions. If one is created manually, it should be a very specific use-case, usually the main function of the page, if it is not already easily accessible in another way.
If for example the main purpose of the page would be the CTA to buy MagentaSport AND the tariff option cards wouldn't already be direct context of the main heading, such section could be named as region.
Observation Details
The league information collapsible structure in section "Das komplette Sport Programm" does not use proper semantic HTML elements for interactive elements.
Image button uses
<div role="button" tabindex="0"><img alt="XYZ Logo" /></div>.Close button uses
<span aria-hidden="true"><svg role="img" focusable="false">...</svg></span>
The collapsed content panel uses a generic <div> structure as well.
Those are variants of buttons, none of which are using the actual semantic HTML button element, leading to numerous problems.
Image button cannot be operated, using keyboard navigation
Close button cannot be operated, using keyboard navigation
Remediation Notes
Ensure, using semantic HTML elements to get existing functionality, operability, and accessibility built-in. Links shall only be used to navigate to a different resource. Buttons shall be used for actions on a page. All three (Expanding collapsible panel by image button, collapsing panel by close button, opening dialog window by "Trailer ansehen" button) have button functionality and must use the semantically correct button functions.
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Ideally, the structure uses a more fitting HTML construct and is rebuilt using native, semantic HTML elements. To get functionality of collapsing / expanding content panels, a <details> & <summary> construct can be used which would also remediate the issues of the "disconnected" generic <div> structure of the collapsible content panel.
For more immediate remediation, build the buttons as follows:
<button><img src="..." alt="Bundesliga – Mehr Informationen" /></button>for the image button<button aria-labelledby="button-label"><span id="button-label" hidden>Schließen</span><svg aria-hidden="true" focusable="false">...</svg></button>for the close button
Observation Details
FAQ uses non-interactive description list <dl> to build accordion functionality. Using tabindex="0" allows (keyboard) focus of non-interactive <dt> element. Needed accessibility functionality however is not provided. Besides focus, an accordion item must accurately announce its state (collapsed / expanded) and its own interactivity (so the user knows it is operable), and a few more.
Side note: Failure of keyboard accessibility is noted in observation "FAQ not accessible via keyboard" (2.1.1 Keyboard).
Remediation Notes
Building an accordion component from generic HTML elements or using semantic HTML elements with different functionality results in inaccessible user experiences, as a long list of requirements must be met. A few important ones:
For the area labeling, the button role must be communicated
The parent / child relationships of the elements within the accordion must be communicated
The status of the area labels must be communicated
The buttons with the area labels must have a concise and expressive Accessible Name
It must be possible to access, operate and exit the buttons with the area labels with assistive technology
Updates concerning the Accessible Name, value or status of the area labels must be communicated
The size and position of the area labels and areas must be communicated
Please see BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion" for full details about necessary steps to build an accordion component, including presentation, operation, programming. Generally, for non-native complex components, functionally closest existing elements should be used (buttons, details/summary, ...).
For remediation recommendation, please also refer to observation "FAQ not accessible via keyboard" (2.1.1 Keyboard).
Observation Details
FAQ uses non-interactive description list <dl> to build accordion functionality. Using tabindex="0" allows (keyboard) focus of non-interactive <dt> element. Needed accessibility functionality however is not provided. Besides focus, an accordion item must accurately announce its state (collapsed / expanded) and its own interactivity (so the user knows it is operable), and a few more.
Side note: Failure of keyboard accessibility is noted in observation "FAQ not accessible via keyboard" (2.1.1 Keyboard).
Remediation Notes
Building an accordion component from generic HTML elements or using semantic HTML elements with different functionality results in inaccessible user experiences, as a long list of requirements must be met. A few important ones:
For the area labeling, the button role must be communicated
The parent / child relationships of the elements within the accordion must be communicated
The status of the area labels must be communicated
The buttons with the area labels must have a concise and expressive Accessible Name
It must be possible to access, operate and exit the buttons with the area labels with assistive technology
Updates concerning the Accessible Name, value or status of the area labels must be communicated
The size and position of the area labels and areas must be communicated
Please see BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion" for full details about necessary steps to build an accordion component, including presentation, operation, programming. Generally, for non-native complex components, functionally closest existing elements should be used (buttons, details/summary, ...).
For remediation recommendation, please also refer to observation "FAQ not accessible via keyboard" (2.1.1 Keyboard).
Observation Details
FAQ uses non-interactive description list <dl> to build accordion functionality. Using tabindex="0" allows (keyboard) focus of non-interactive <dt> element. Needed accessibility functionality however is not provided. Besides focus, an accordion item must accurately announce its state (collapsed / expanded) and its own interactivity (so the user knows it is operable), and a few more.
Side note: Failure of keyboard accessibility is noted in observation "FAQ not accessible via keyboard" (2.1.1 Keyboard).
Remediation Notes
Building an accordion component from generic HTML elements or using semantic HTML elements with different functionality results in inaccessible user experiences, as a long list of requirements must be met. A few important ones:
For the area labeling, the button role must be communicated
The parent / child relationships of the elements within the accordion must be communicated
The status of the area labels must be communicated
The buttons with the area labels must have a concise and expressive Accessible Name
It must be possible to access, operate and exit the buttons with the area labels with assistive technology
Updates concerning the Accessible Name, value or status of the area labels must be communicated
The size and position of the area labels and areas must be communicated
Please see BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion" for full details about necessary steps to build an accordion component, including presentation, operation, programming. Generally, for non-native complex components, functionally closest existing elements should be used (buttons, details/summary, ...).
For remediation recommendation, please also refer to observation "FAQ not accessible via keyboard" (2.1.1 Keyboard).
Accompanying Files
Observation Details
Tabular data is displayed with generic container elements. Navigation by row and or column is not possible.
Remediation Notes
Ensure providing proper semantic HTML markup for tabular data, using the HTML <table> element.
Please (also) refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Table" and observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
CTA links in content cards using
<button>for link functionality
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Only use
<button>for buttonsUse
<a href="">for links
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Observation Details
Accordion (FAQ) uses non-semantic HTML.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, using semantic HTML elements to build accordion functionality.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Observation Details
The buttons to open "Vertrag verlängern" and "Tarif wechseln" guide dialog windows use <a href="#"> instead of HTML button elements. The announcement of "link" in assistive technology will imply, moving to a different resource, may it be a different page or document. All performed actions, like opening and closing dialog windows, must use HTML button elements.
Accompanying Files
Observation Details
Pagination buttons below product carousel use non-semantic elements instead of semantic HTML button elements. Role / functionality of buttons is not correctly conveyed to assistive technology.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Observation Details
Buttons use <a href="#"> instead of semantic button element.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Button "Mehr anzeigen" in SEO content uses <a href="#"> instead of semantic button element.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
The title attribute can be used to provide additional information to the already existing accessible name of an interactive element like a link. It should not be used for the same or less information. If the attribute does not provide additional information, it should not be used.
Some assistive technology do not announce the title at all, so providing relevant information only through the title attribute should always be prevented. If assistive technology announces the title attribute, it will do so after announcing the accessible name of the element, usually resulting in duplicate announcement of the same information.
For more information about using the title attribute to provide additional information, refer to W3C Technique H33: Supplementing link text with the title attribute.
Title attribute with same content as existing accessible name found on links:
"Gerät hinzufügen" in tariff cards
"Tarif ohne Gerät" in tariff cards
"Weiter zum XYZ" in product cards
Title attribute with different content but same information as existing accessible name found on links:
"Weiter zu XYZ" in "Weitere Young Vorteile" section
Remediation Notes
Observation Details
The switch "Mit Young-Streaming-Vorteil" can be operated by keyboard and assistive technology. Operating the switch by assistive technology has the following issues:
Off state is announced as "invalid data off" (using attribute
aria-invalid="true")Changes made to the following content are not announced; the user will not know of the changes
Remediation Notes
Remove aria-invalid="true" from the button element to allow for correct announcement of "on" and "off" states.
Announcing content changes that are happening on toggling the switch can be done in multiple ways. ARIA live regions are a ways to do so but are highly complex for the limited changes made. It is recommended to avoid ARIA use if possible (see First Rule of ARIA Use), so the easiest way would be:
Announce changes prior to toggle element, to make changes expected; this can be via a description text like "50 % mehr Datenvolumen bei Buchung einer Streaming-Option sichern. Klicke den Schalter 'Mit Young-Streaming-Vorteil' und das extra Datenvolumen wird in der Tarifliste angezeigt"; it also is possible to hide some of this via a
visually-hiddenCSS class, if necessary
Another option is to use the toggle element's accessible name and not simply providing the toggle label via the visible text but adding hidden text to it as well that could read "Young-Streaming-Vorteil einschalten und extra Datenvolumen in der Tarifliste anzeigen lassen". It is important to notice, that the visible label must be changed to "Young-Streaming-Vorteil" to not fail 2.5.3 Label in Name, though.
Observation Details
Anchor links in "Seiten-Sektionen Navigation" navigation use <button> instead of semantic link element.
The navigation code markup is structured as follows:
<nav aria-label="Seiten-Sektionen Navigation">
<section aria-roledescription="carousel">
<div>
<div>
<div>
<div role="group" aria-roledescription=slide" aria-label="Slide X von 4"> <!-- nav item -->
<div>
<button
type="button"
title="Springe zur Sektion ..."
aria-label="Springe zur Sektion ..."
>
<span aria-hidden="true">
<img alt="..." />
<img alt="..." />
<!-- more images -->
<span>
<span> <!-- visible label -->
<span>
<span aria-hidden="true">
<svg role="img" focusable="false"> <!-- caret icon -->
<span> <!-- duplicating visible label -->
...Observations:
Navigation structure
Navigation label includes "Navigation"; each navigation is announced by assistive technology as "navigation" already, adding same wording to a navigation's label will duplicate announcement as "Seiten-Sektionen Navigation, navigation"
Section element used in uniquely identified navigation landmark without any sibling elements
Multiple levels of
<div>elementsNavigation does not use semantic HTML list element to list navigation items
Navigation items are links but use HTML button element; button does not set correct focus, so clicking (by keyboard or assistive technology) will scroll the page but the focus remains on the triggering element
ARIA
aria-roledescriptiondoes not add functionality
"carousel" and "slide" is not in main page language
Role "group" used for single interface object (as opposed to intended use to "identify a set of user interface objects", see MDN ARIA group role)
"Slide" labels "Slide X von 4" do not convey valuable information
Button
Attributes
<button type="button">is redundantuses
titleattributelabeled by
aria-labeltitleduplicatedaria-label
Images
Hidden from assistive technology by use of
aria-hidden="true"
Visible label
Includes
aria-hidden="true"<span>element which then includes an SVG withrole="img"Duplicated by visually hidden text
Not at all used, because it is overwritten by
aria-labelon the button element
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure proper functionality by using the correct semantic HTML elements. If used correctly, there is no need for added complexity via use of ARIA. Please refer to First Rule of ARIA Use. Please also refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
A simplified navigation structure (side note: wordings are not taken into account) could be to
label navigation by existing text which provides explicit content for all users
use the semantic list element, removing necessity of labelling item count ("Slide X von 4")
use a single
<a href="#XYZ">element per navigation item, labelled by existing content and correctly linking and scrolling to wanted sectionkeep images visible for users of assistive technology and use purpose equivalent text alternatives to describe e.g. categories that can be found in the section; e.g. category "Mobilfunk" has "Smartphones" and "Smartwatches"
remove all duplicated content, like visually hidden text when visible label is the same, unnecessary hierarchy levels, adding element attributes to hidden elements, etc.
Example structure:
<nav aria-labelledby="nav-sections">
<h2 id="nav-sections">Welche Angebote sind für Sie interessant?</h2>
<p id="nav-anchor-intro" aria-hidden="true">Springe zu den Angeboten für</p>
<ul>
<li>
<a
href="#section-mobilfunk"
id="nav-mobilfunk"
aria-labelledby="nav-anchor-intro nav-mobilfunk"
>
<span id="nav-mobilfunk-text">
Mobilfunk <svg aria-hidden="true">...</svg>
</span>
<div id="nav-mobilfunk-img">
<img alt="Smartphones" src="..." />
<img alt="Smartwatches" src="..." />
</div>
</a>
</li>
<!-- more navigation items -->
</ul>
</nav>Accompanying Files
Observation Details
Page uses landmarks. Accessible landmarks (including <article> elements) are:
Main, using
<main>Breadcrumb (Navigation), using
<nav>Region "Unsere Smartphone-Tarife", using
<section aria-labelledby="...">Article "Holt euch jetzt UNLIMITED*", using
<article aria-labelledby="...">Article "MagentaMobil Young", using
<article aria-labelledby="...">Article "Prepaid-Tarife", using
<article>Article "Datentarife", using
<article>Article "Watch- & Tracker-Tarife", using
<article>
Observations:
While section "Unsere Smartphone-Tarife" uses a labeled section which changes its accessible role to "region", section "Weitere Mobilfunk-Tarife" is not labeled, therefore has role "generic" and is not added to the landmark list
Article elements have non-generic role "article" and as such are included in the landmark list on macOS VoiceOver screen reader rotor, even when not explicitly labeled
Remediation Notes
Landmarks should typically be used for broad page navigation that cannot be done by heading structure. Usually, a good heading structure will be enough to ensure good user experience with on-page navigation.
When using an HTML section element but not adding an accessible name, the grouping should instead be done by using a generic <div> element, as an unlabeled <section> does not add any accessible information.
When using landmarks, ensure consistent use of HTML elements and ARIA attributes. When using labeled landmarks, ensure, labelling all section and article elements to create an identifiable, consistent page structure like this:
Region "Unsere Smartphone-Tarife", using
<section aria-labelledby="...">Article "Holt euch jetzt UNLIMITED*", using
<article aria-labelledby="...">Article "MagentaMobil Young", using
<article aria-labelledby="...">
Region "Weitere Mobilfunk-Tarife", using
<section aria-labelledby="...">Article "Prepaid-Tarife", using
<article aria-labelledby="...">Article "Datentarife", using
<article aria-labelledby="...">Article "Watch- & Tracker-Tarife", using
<article aria-labelledby="...">
Observation Details
Product color "variant circles" use <div value="..." aria-describedby="..." role="button" tabindex="0">. The buttons are accessible by keyboard but have no functionality at all, which results in multiple (color count) non-interactive but focusable elements. For each card, a user of keyboard navigation has to click up to six times to get to the next card.
aria-describedby="tooltip-content-id" refers to a <span> element in the sidebar, with the following content. This whole content is the accessible name of each of the color circle "buttons":
Jubiläumsaktion: Als Neukunde 240 € Wechselbonus sichern
Internet
50 GB Highspeed-Volumen (mit LTE Max/5G)
Mit einer Pluskarte zu 19,95 € monatlich: deutschlandweit unbegrenztes Datenvolumen für den Hauptvertrag und alle Pluskarten
Geschwindigkeit im Download: bis zu 300 MBit/s
Geschwindigkeit im Upload: bis zu 50 MBit/s
Nach Verbrauch des Highspeed-Volumens wird die Geschwindigkeit im jeweiligen Monat auf max. 64 KBit/s (Download) und 16 KBit/s (Upload) reduziert.
Inklusivleistungen
Telefonie- und SMS-Flat in alle deutschen Netze:
Telefonieren Sie unbegrenzt ins deutsche Mobilfunk- und Festnetz und versenden Sie unbegrenzt SMS.Hotspot Flat:
Mit einem Telekom HotSpot in Ihrer Nähe können Sie auch unterwegs surfen, ohne dabei das eigene Datenvolumen zu verbrauchen. Mehr Infos unter www.hotspot.deRoaming:
In der EU inkl. Schweiz & Großbritannien surfen und telefonieren Sie auf vorübergehenden Reisen ohne zusätzliche Kosten wie im Inland.
Tarife ohne Mindestlaufzeit
Infos zu Tarifen ohne Mindestlaufzeit, die lediglich ohne Gerät erhältlich sind, finden Sie unter www.telekom.de/flex-mobil oder in der Preisliste.
As the accessible name, this whole text content is announced by assistive technology for every color variant circle.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only using button functionality for actual buttons. When button functionality is needed, ensure using a semantic HTML button element, instead trying rebuilding button functionality with generic non-semantic HTML elements.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Assistive technology relies on use of proper semantic HTML. The screenshots show lists of elements, a user of assistive technology gets, using e.g. macOS VoiceOver screen reader rotor:
Landmarks list
Links list
Buttons list
All of these give an idea of improper use of semantic HTML. Observations:
Landmarks
Main and navigation landmarks are used
Each product price uses three(!) semantic article elements, two of which are empty
Each product price (e.g. "889,95 €") is marked up as follows:
<div class="...">
<div class="...">
<div class="...">
<section class="...">
Einmalig
</section>
<article class="...">
<div class="...">
889,95 €
</div>
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
</div>
</div>
<section class="...">
<div class="...">
<article class="...">
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
<div class="...">
<article class="...">
</article>
</div>
</div>
</section>
</div>Links
Product card link elements are empty
assistive technology will always try to find a fallback for missing information; in this case, the last part of the link's URL path (stripping query parameters) is used;
href="/shop/geraet/apple/apple-ipad-air-13-2025-m3/space-grau-256-gb?tariffId=MF17498&tariffSubTenId=MF17496&categoryId=alle-geraete"→space-grau-256-gbAs the product color and storage is part of the URL path, multiple products with same color and storage will have the same fallback name (see e.g. "space-schwarz-256-gb")
"Weitere Geräte anzeigen" has button functionality but is using a semantic link element
"Tarif ändern" has button functionality but is using a semantic link element
"Tarif entfernen" has button functionality but is using a semantic link element
"Preisübersicht anzeigen"
has button functionality but is using a semantic link element
uses a
<div role="link">inside the aforementioned link elementas two nested links are used, the link is duplicated in the link list
Buttons
Color variant circles use buttons as
<div value="#262529" class="..." aria-describedby="tooltip-content-id" role="button" tabindex="0">...</div>;Color variants use buttons without any functionality
Color variant buttons are labeled by sidebar content
tooltip-content-idAll color variant buttons are labeled the same, thus cannot be differentiated
"* Schaltfläche" announces footnotes. All footnote buttons are announced the same: "*" / "STAR"
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Ensure,
only links (that lead to resources) are using HTML link elements
only buttons (that perform actions) are using HTML button elements
no generic element is used, if a native, semantic HTML element with wanted functionality exists
all interactive elements are labeled uniquely, to be identifiable by assistive technology
Observation Details
Multiple elements are not using proper semantic HTML but instead are custom built, leading to numerous issues e.g. with keyboard accessibility (see 2.1.1 Keyboard). Including but not limited to, are the following elements:
Links (Product cards, ...)
Buttons (Filter, Sorting dropdown, Info icons,)
Remediation Notes
Using native semantic HTML is always the preferred method.
If this is absolutely impossible in a situation, re-building can be viable but comes with dramatically increased time and effort to meet technical requirements. The BFIT-Bund Handreichung "Accessible design of user interface elements" shows technical requirements (e.g. keyboard navigation, mouse operation, etc.) for interactive elements. Looking into Accessible design of user interface elements – Links, quickly shows the complexity of what is required to meet the functionality, a properly used <a href="..."> element already includes.
Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Product color "variant circles" use <div value="..." aria-describedby="..." role="button" tabindex="0">. The buttons are accessible by keyboard but have no functionality at all, which results in multiple (color count) non-interactive but focusable elements. For each card, a user of keyboard navigation has to click up to six times to get to the next card.
aria-describedby="tooltip-content-id" refers to a <span> element in the sidebar, with the following content. This whole content is the accessible name of each of the color circle "buttons":
Internet
100 GB Highspeed-Volumen (mit LTE Max/5G)
Datennutzung im Telekom Mobilfunknetz
Gilt für Datenverkehr in Deutschland.
Geschwindigkeit im Download: bis zu 300 MBit/s (bei externer Stromversorgung) bzw. 20 MBit/s (im Akkubetrieb)
Geschwindigkeit im Upload: bis zu 50 MBit/s (bei externer Stromversorgung) bzw. 5 MBit/s (im Akkubetrieb)
Ab einem Verbrauch von 100 GB pro Monat wird die Internetverbindung im jeweiligen Monat automatisch beendet.
Mit SpeedOn haben Sie die Möglichkeit, die Internetverbindung wiederherzustellen.
Zubuchbare SpeedOn Pässe (31 Tage ab Buchung gültig)
15 GB: 14,95 €
50 GB: 29,95 €
100 GB: 44,95 €
As the accessible name, this whole text content is announced by assistive technology for every color variant circle.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only using button functionality for actual buttons. When button functionality is needed, ensure using a semantic HTML button element, instead trying rebuilding button functionality with generic non-semantic HTML elements.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Assistive technology relies on use of proper semantic HTML. The screenshots show lists of elements, a user of assistive technology gets, using e.g. macOS VoiceOver screen reader rotor:
Landmarks list
Links list
Buttons list
All of these give an idea of improper use of semantic HTML. Observations:
Landmarks
Main and navigation landmarks are used
Each product price uses three(!) semantic article elements, two of which are empty
Each product price (e.g. "889,95 €") is marked up as follows:
<div class="...">
<div class="...">
<div class="...">
<section class="...">
Einmalig
</section>
<article class="...">
<div class="...">
889,95 €
</div>
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
</div>
</div>
<section class="...">
<div class="...">
<article class="...">
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
<div class="...">
<article class="...">
</article>
</div>
</div>
</section>
</div>Links
Product card link elements are empty
assistive technology will always try to find a fallback for missing information; in this case, the last part of the link's URL path (stripping query parameters) is used;
href="/shop/geraet/apple/apple-ipad-air-13-2025-m3/space-grau-256-gb?tariffId=MF17498&tariffSubTenId=MF17496&categoryId=alle-geraete"→space-grau-256-gbAs the product color and storage is part of the URL path, multiple products with same color and storage will have the same fallback name (see e.g. "space-schwarz-256-gb")
"Weitere Geräte anzeigen" has button functionality but is using a semantic link element
"Tarif ändern" has button functionality but is using a semantic link element
"Tarif entfernen" has button functionality but is using a semantic link element
"Preisübersicht anzeigen"
has button functionality but is using a semantic link element
uses a
<div role="link">inside the aforementioned link elementas two nested links are used, the link is duplicated in the link list
Buttons
Color variant circles use buttons as
<div value="#262529" class="..." aria-describedby="tooltip-content-id" role="button" tabindex="0">...</div>;Color variants use buttons without any functionality
Color variant buttons are labeled by sidebar content
tooltip-content-idAll color variant buttons are labeled the same, thus cannot be differentiated
"* Schaltfläche" announces footnotes. All footnote buttons are announced the same: "*" / "STAR"
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Ensure,
only links (that lead to resources) are using HTML link elements
only buttons (that perform actions) are using HTML button elements
no generic element is used, if a native, semantic HTML element with wanted functionality exists
all interactive elements are labeled uniquely, to be identifiable by assistive technology
Observation Details
Buttons use <a> without href attribute and <div> with tabindex="0", instead of semantic button element.
Tarif ändern
Tarif entfernen
Preisübersicht anzeigen
Button uses span tabindex="0" role="button" aria-label="..." aria-describedby="..." instead of semantic button element.
Info Icon in sidebar
Buttons uses <section> instead of semantic button element.
Filter button
Links use <div class="clickable"> instead of semantic link element.
Shop category links (Handys, Smartwatches, Tablets, ...)
side note: category links are arguably a navigation element and as such should use
<nav><ul><li><a href="">structure
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
FAQ items use visually hidden text that duplicates existing content twice (button label & region label)
<span id="ODSAccordion-ContentSpan-:r0:" class="sr-only">
<span class="ods-accordion-heading">
Was ist der Vorteil von Surfsticks und mobilen 5G-Routern mit Vertrag?
</span>
content
</span>Remediation Notes
Visually hidden text should only be added if absolutely necessary, because there is no other way to achieve the wanted result.
Especially when content is already accessible to assistive technology, there should not be any duplication by using unnecessary ARIA attributes or visually hidden text content.
The use of semantic HTML is adamant to a good user experience and web accessibility. Ideally, native HTML is used. In case of an accordion, this could be realized by using the <detail> and <summary> elements.
If there is a valid reason to not use those, ensure the use of interactive elements (<button>) for the interactive parts of the accordion.
The technical requirements for building an accessible accordion component can be found in the BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
The accordion, while not strictly defined as such, can be defined as an opposite to a tab group. They both have the purpose of hiding content from the user to be revealed on user interaction. Defining accordion and tab group as opposites allows for an easy rule of usage. Tab groups are used, if and only if there must always be exactly one content panel visible. The accordion is then used, whenever the possibility of showing more than one content panel at the same time is needed or wanted. This distinction can e.g. be found in the documentation of the GOV.UK Design System at Accordion – "Decide between using accordions, tabs and details".
Observation Details
Multiple elements are not using proper semantic HTML but instead are custom built, leading to numerous issues e.g. with keyboard accessibility (see 2.1.1 Keyboard). Including but not limited to, are the following elements:
Links (Product cards)
Buttons (Filter, Info icons, Footnote Asterisks)
Remediation Notes
Using native semantic HTML is always the preferred method.
If this is absolutely impossible in a situation, re-building can be viable but comes with dramatically increased time and effort to meet technical requirements. The BFIT-Bund Handreichung "Accessible design of user interface elements" shows technical requirements (e.g. keyboard navigation, mouse operation, etc.) for interactive elements. Looking into Accessible design of user interface elements – Links, quickly shows the complexity of what is required to meet the functionality, a properly used <a href="..."> element already includes.
Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Product color "variant circles" use <div value="..." aria-describedby="..." role="button" tabindex="0">. The buttons are accessible by keyboard but have no functionality at all, which results in multiple (color count) non-interactive but focusable elements. For each card, a user of keyboard navigation has to click up to six times to get to the next card.
aria-describedby="tooltip-content-id" refers to a <span> element in the sidebar, with the following content. This whole content is the accessible name of each of the color circle "buttons":
Jubiläumsaktion: Als Neukunde 240 € Wechselbonus sichern
Internet
50 GB Highspeed-Volumen (mit LTE Max/5G)
Mit einer Pluskarte zu 19,95 € monatlich: deutschlandweit unbegrenztes Datenvolumen für den Hauptvertrag und alle Pluskarten
Geschwindigkeit im Download: bis zu 300 MBit/s
Geschwindigkeit im Upload: bis zu 50 MBit/s
Nach Verbrauch des Highspeed-Volumens wird die Geschwindigkeit im jeweiligen Monat auf max. 64 KBit/s (Download) und 16 KBit/s (Upload) reduziert.
Inklusivleistungen
Telefonie- und SMS-Flat in alle deutschen Netze:
Telefonieren Sie unbegrenzt ins deutsche Mobilfunk- und Festnetz und versenden Sie unbegrenzt SMS.Hotspot Flat:
Mit einem Telekom HotSpot in Ihrer Nähe können Sie auch unterwegs surfen, ohne dabei das eigene Datenvolumen zu verbrauchen. Mehr Infos unter www.hotspot.deRoaming:
In der EU inkl. Schweiz & Großbritannien surfen und telefonieren Sie auf vorübergehenden Reisen ohne zusätzliche Kosten wie im Inland.
Tarife ohne Mindestlaufzeit
Infos zu Tarifen ohne Mindestlaufzeit, die lediglich ohne Gerät erhältlich sind, finden Sie unter www.telekom.de/flex-mobil oder in der Preisliste.
As the accessible name, this whole text content is announced by assistive technology for every color variant circle.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only using button functionality for actual buttons. When button functionality is needed, ensure using a semantic HTML button element, instead trying rebuilding button functionality with generic non-semantic HTML elements.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Assistive technology relies on use of proper semantic HTML. The screenshots show lists of elements, a user of assistive technology gets, using e.g. macOS VoiceOver screen reader rotor:
Landmarks list
Links list
Buttons list
All of these give an idea of improper use of semantic HTML. Observations:
Landmarks
Main and navigation landmarks are used
Each product price uses three(!) semantic article elements, two of which are empty
Each product price (e.g. "889,95 €") is marked up as follows:
<div class="...">
<div class="...">
<div class="...">
<section class="...">
Einmalig
</section>
<article class="...">
<div class="...">
889,95 €
</div>
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
</div>
</div>
<section class="...">
<div class="...">
<article class="...">
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
<div class="...">
<article class="...">
</article>
</div>
</div>
</section>
</div>Links
Product card link elements are empty
assistive technology will always try to find a fallback for missing information; in this case, the last part of the link's URL path (stripping query parameters) is used;
href="/shop/geraet/apple/apple-ipad-air-13-2025-m3/space-grau-256-gb?tariffId=MF17498&tariffSubTenId=MF17496&categoryId=alle-geraete"→space-grau-256-gbAs the product color and storage is part of the URL path, multiple products with same color and storage will have the same fallback name (see e.g. "space-schwarz-256-gb")
"Weitere Geräte anzeigen" has button functionality but is using a semantic link element
"Tarif ändern" has button functionality but is using a semantic link element
"Tarif entfernen" has button functionality but is using a semantic link element
"Preisübersicht anzeigen"
has button functionality but is using a semantic link element
uses a
<div role="link">inside the aforementioned link elementas two nested links are used, the link is duplicated in the link list
Buttons
Color variant circles use buttons as
<div value="#262529" class="..." aria-describedby="tooltip-content-id" role="button" tabindex="0">...</div>;Color variants use buttons without any functionality
Color variant buttons are labeled by sidebar content
tooltip-content-idAll color variant buttons are labeled the same, thus cannot be differentiated
"* Schaltfläche" announces footnotes. All footnote buttons are announced the same: "*" / "STAR"
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Ensure,
only links (that lead to resources) are using HTML link elements
only buttons (that perform actions) are using HTML button elements
no generic element is used, if a native, semantic HTML element with wanted functionality exists
all interactive elements are labeled uniquely, to be identifiable by assistive technology
Observation Details
Product color "variant circles" use <div value="..." aria-describedby="..." role="button" tabindex="0">. The buttons are accessible by keyboard but have no functionality at all, which results in multiple (color count) non-interactive but focusable elements. For each card, a user of keyboard navigation has to click up to six times to get to the next card.
aria-describedby="tooltip-content-id" refers to a <span> element in the sidebar, with the following content. This whole content is the accessible name of each of the color circle "buttons":
Internet
Tracking-Flat im Telekom Mobilfunknetz
1 GB Inklusiv-Volumen
Geschwindigkeit im Download: bis zu 1 MBit/s
Geschwindigkeit im Upload: bis zu 1 MBit/s
Nach Verbrauch des Inklusiv-Volumens wird die Geschwindigkeit im jeweiligen Monat auf max. 64 KBit/s im Upload reduziert.
Die GPS-Ortung funktioniert auch bei reduzierter Übertragungsgeschwindigkeit.
Kommunikation
Telefonie in alle deutsche Netze: 150 Min./Monat inklusive, danach 0,09 €/Min.
SMS in alle deutsche Netze: 150 SMS/Monat inklusive, danach 0,09 €/SMS
Inklusivleistungen
EU-Roaming inkl. Großbritannien, Schweiz, Island und Norwegen
(Bei der Apple Watch wird Roaming nur mit der MultiSIM unterstützt, nicht mit der Familienkonfiguration)Vertragslaufzeit
24 Monate Mindestvertragslaufzeit
As the accessible name, this whole text content is announced by assistive technology for every color variant circle.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only using button functionality for actual buttons. When button functionality is needed, ensure using a semantic HTML button element, instead trying rebuilding button functionality with generic non-semantic HTML elements.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Assistive technology relies on use of proper semantic HTML. The screenshots show lists of elements, a user of assistive technology gets, using e.g. macOS VoiceOver screen reader rotor:
Landmarks list
Links list
Buttons list
All of these give an idea of improper use of semantic HTML. Observations:
Landmarks
Main and navigation landmarks are used
Each product price uses three(!) semantic article elements, two of which are empty
Each product price (e.g. "889,95 €") is marked up as follows:
<div class="...">
<div class="...">
<div class="...">
<section class="...">
Einmalig
</section>
<article class="...">
<div class="...">
889,95 €
</div>
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
</div>
</div>
<section class="...">
<div class="...">
<article class="...">
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
<div class="...">
<article class="...">
</article>
</div>
</div>
</section>
</div>Links
Product card link elements are empty
assistive technology will always try to find a fallback for missing information; in this case, the last part of the link's URL path (stripping query parameters) is used;
href="/shop/geraet/apple/apple-ipad-air-13-2025-m3/space-grau-256-gb?tariffId=MF17498&tariffSubTenId=MF17496&categoryId=alle-geraete"→space-grau-256-gbAs the product color and storage is part of the URL path, multiple products with same color and storage will have the same fallback name (see e.g. "space-schwarz-256-gb")
"Weitere Geräte anzeigen" has button functionality but is using a semantic link element
"Tarif ändern" has button functionality but is using a semantic link element
"Tarif entfernen" has button functionality but is using a semantic link element
"Preisübersicht anzeigen"
has button functionality but is using a semantic link element
uses a
<div role="link">inside the aforementioned link elementas two nested links are used, the link is duplicated in the link list
Buttons
Color variant circles use buttons as
<div value="#262529" class="..." aria-describedby="tooltip-content-id" role="button" tabindex="0">...</div>;Color variants use buttons without any functionality
Color variant buttons are labeled by sidebar content
tooltip-content-idAll color variant buttons are labeled the same, thus cannot be differentiated
"* Schaltfläche" announces footnotes. All footnote buttons are announced the same: "*" / "STAR"
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Ensure,
only links (that lead to resources) are using HTML link elements
only buttons (that perform actions) are using HTML button elements
no generic element is used, if a native, semantic HTML element with wanted functionality exists
all interactive elements are labeled uniquely, to be identifiable by assistive technology
Observation Details
Buttons use <a> without href attribute and <div> with tabindex="0", instead of semantic button element.
Tarif ändern
Tarif entfernen
Preisübersicht anzeigen
Button uses span tabindex="0" role="button" aria-label="..." aria-describedby="..." instead of semantic button element.
Info Icon in sidebar
Buttons uses <section> instead of semantic button element.
Filter button
Links use <div class="clickable"> instead of semantic link element.
Shop category links (Handys, Smartwatches, Tablets, ...)
side note: category links are arguably a navigation element and as such should use
<nav><ul><li><a href="">structure
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
FAQ items use visually hidden text that duplicates existing content twice (button label & region label)
<span id="ODSAccordion-ContentSpan-:r0:" class="sr-only">
<span class="ods-accordion-heading">
Was ist der Vorteil von Surfsticks und mobilen 5G-Routern mit Vertrag?
</span>
content
</span>Remediation Notes
Visually hidden text should only be added if absolutely necessary, because there is no other way to achieve the wanted result.
Especially when content is already accessible to assistive technology, there should not be any duplication by using unnecessary ARIA attributes or visually hidden text content.
The use of semantic HTML is adamant to a good user experience and web accessibility. Ideally, native HTML is used. In case of an accordion, this could be realized by using the <detail> and <summary> elements.
If there is a valid reason to not use those, ensure the use of interactive elements (<button>) for the interactive parts of the accordion.
The technical requirements for building an accessible accordion component can be found in the BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
The accordion, while not strictly defined as such, can be defined as an opposite to a tab group. They both have the purpose of hiding content from the user to be revealed on user interaction. Defining accordion and tab group as opposites allows for an easy rule of usage. Tab groups are used, if and only if there must always be exactly one content panel visible. The accordion is then used, whenever the possibility of showing more than one content panel at the same time is needed or wanted. This distinction can e.g. be found in the documentation of the GOV.UK Design System at Accordion – "Decide between using accordions, tabs and details".
Observation Details
Product color "variant circles" use <div value="..." aria-describedby="..." role="button" tabindex="0">. The buttons are accessible by keyboard but have no functionality at all, which results in multiple (color count) non-interactive but focusable elements. For each card, a user of keyboard navigation has to click up to six times to get to the next card.
aria-describedby="tooltip-content-id" refers to a <span> element in the sidebar, with the following content. This whole content is the accessible name of each of the color circle "buttons":
Jubiläumsaktion: Als Neukunde 240 € Wechselbonus sichern
Internet
50 GB Highspeed-Volumen (mit LTE Max/5G)
Mit einer Pluskarte zu 19,95 € monatlich: deutschlandweit unbegrenztes Datenvolumen für den Hauptvertrag und alle Pluskarten
Geschwindigkeit im Download: bis zu 300 MBit/s
Geschwindigkeit im Upload: bis zu 50 MBit/s
Nach Verbrauch des Highspeed-Volumens wird die Geschwindigkeit im jeweiligen Monat auf max. 64 KBit/s (Download) und 16 KBit/s (Upload) reduziert.
Inklusivleistungen
Telefonie- und SMS-Flat in alle deutschen Netze:
Telefonieren Sie unbegrenzt ins deutsche Mobilfunk- und Festnetz und versenden Sie unbegrenzt SMS.Hotspot Flat:
Mit einem Telekom HotSpot in Ihrer Nähe können Sie auch unterwegs surfen, ohne dabei das eigene Datenvolumen zu verbrauchen. Mehr Infos unter www.hotspot.deRoaming:
In der EU inkl. Schweiz & Großbritannien surfen und telefonieren Sie auf vorübergehenden Reisen ohne zusätzliche Kosten wie im Inland.
Tarife ohne Mindestlaufzeit
Infos zu Tarifen ohne Mindestlaufzeit, die lediglich ohne Gerät erhältlich sind, finden Sie unter www.telekom.de/flex-mobil oder in der Preisliste.
As the accessible name, this whole text content is announced by assistive technology for every color variant circle.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only using button functionality for actual buttons. When button functionality is needed, ensure using a semantic HTML button element, instead trying rebuilding button functionality with generic non-semantic HTML elements.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Assistive technology relies on use of proper semantic HTML. The screenshots show lists of elements, a user of assistive technology gets, using e.g. macOS VoiceOver screen reader rotor:
Landmarks list
Links list
Buttons list
All of these give an idea of improper use of semantic HTML. Observations:
Landmarks
Main and navigation landmarks are used
Each product price uses three(!) semantic article elements, two of which are empty
Each product price (e.g. "889,95 €") is marked up as follows:
<div class="...">
<div class="...">
<div class="...">
<section class="...">
Einmalig
</section>
<article class="...">
<div class="...">
889,95 €
</div>
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
</div>
</div>
<section class="...">
<div class="...">
<article class="...">
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
<div class="...">
<article class="...">
</article>
</div>
</div>
</section>
</div>Links
Product card link elements are empty
assistive technology will always try to find a fallback for missing information; in this case, the last part of the link's URL path (stripping query parameters) is used;
href="/shop/geraet/apple/apple-ipad-air-13-2025-m3/space-grau-256-gb?tariffId=MF17498&tariffSubTenId=MF17496&categoryId=alle-geraete"→space-grau-256-gbAs the product color and storage is part of the URL path, multiple products with same color and storage will have the same fallback name (see e.g. "space-schwarz-256-gb")
"Weitere Geräte anzeigen" has button functionality but is using a semantic link element
"Tarif ändern" has button functionality but is using a semantic link element
"Tarif entfernen" has button functionality but is using a semantic link element
"Preisübersicht anzeigen"
has button functionality but is using a semantic link element
uses a
<div role="link">inside the aforementioned link elementas two nested links are used, the link is duplicated in the link list
Buttons
Color variant circles use buttons as
<div value="#262529" class="..." aria-describedby="tooltip-content-id" role="button" tabindex="0">...</div>;Color variants use buttons without any functionality
Color variant buttons are labeled by sidebar content
tooltip-content-idAll color variant buttons are labeled the same, thus cannot be differentiated
"* Schaltfläche" announces footnotes. All footnote buttons are announced the same: "*" / "STAR"
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Ensure,
only links (that lead to resources) are using HTML link elements
only buttons (that perform actions) are using HTML button elements
no generic element is used, if a native, semantic HTML element with wanted functionality exists
all interactive elements are labeled uniquely, to be identifiable by assistive technology
Observation Details
Buttons use <a> without href attribute and <div> with tabindex="0", instead of semantic button element.
Tarif ändern
Tarif entfernen
Preisübersicht anzeigen
Button uses span tabindex="0" role="button" aria-label="..." aria-describedby="..." instead of semantic button element.
Info Icon in sidebar
Buttons uses <section> instead of semantic button element.
Filter button
Links use <div class="clickable"> instead of semantic link element.
Shop category links (Handys, Smartwatches, Tablets, ...)
side note: category links are arguably a navigation element and as such should use
<nav><ul><li><a href="">structure
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
FAQ items use visually hidden text that duplicates existing content twice (button label & region label)
<span id="ODSAccordion-ContentSpan-:r0:" class="sr-only">
<span class="ods-accordion-heading">
Was ist der Vorteil von Surfsticks und mobilen 5G-Routern mit Vertrag?
</span>
content
</span>Remediation Notes
Visually hidden text should only be added if absolutely necessary, because there is no other way to achieve the wanted result.
Especially when content is already accessible to assistive technology, there should not be any duplication by using unnecessary ARIA attributes or visually hidden text content.
The use of semantic HTML is adamant to a good user experience and web accessibility. Ideally, native HTML is used. In case of an accordion, this could be realized by using the <detail> and <summary> elements.
If there is a valid reason to not use those, ensure the use of interactive elements (<button>) for the interactive parts of the accordion.
The technical requirements for building an accessible accordion component can be found in the BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
The accordion, while not strictly defined as such, can be defined as an opposite to a tab group. They both have the purpose of hiding content from the user to be revealed on user interaction. Defining accordion and tab group as opposites allows for an easy rule of usage. Tab groups are used, if and only if there must always be exactly one content panel visible. The accordion is then used, whenever the possibility of showing more than one content panel at the same time is needed or wanted. This distinction can e.g. be found in the documentation of the GOV.UK Design System at Accordion – "Decide between using accordions, tabs and details".
Observation Details
Multiple elements are not using proper semantic HTML but instead are custom built, leading to numerous issues e.g. with keyboard accessibility (see 2.1.1 Keyboard). Including but not limited to, are the following elements:
Links (Product cards)
Buttons (Filter, Info icons)
Remediation Notes
Using native semantic HTML is always the preferred method.
If this is absolutely impossible in a situation, re-building can be viable but comes with dramatically increased time and effort to meet technical requirements. The BFIT-Bund Handreichung "Accessible design of user interface elements" shows technical requirements (e.g. keyboard navigation, mouse operation, etc.) for interactive elements. Looking into Accessible design of user interface elements – Links, quickly shows the complexity of what is required to meet the functionality, a properly used <a href="..."> element already includes.
Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Product color "variant circles" use <div value="..." aria-describedby="..." role="button" tabindex="0">. The buttons are accessible by keyboard but have no functionality at all, which results in multiple (color count) non-interactive but focusable elements. For each card, a user of keyboard navigation has to click up to six times to get to the next card.
aria-describedby="tooltip-content-id" refers to a <span> element in the sidebar, with the following content. This whole content is the accessible name of each of the color circle "buttons":
Internet
5 GB Highspeed-Volumen (1 GB zus. Datenvolumen mit MagentaEINS: 6 GB)
Daten-Flat im Telekom Mobilfunknetz
Geschwindigkeit im Download: LTE Max/5G
Geschwindigkeit im Upload: bis zu 50 MBit/s
Inklusivleistungen
HotSpot Flat:
Mit einem Telekom HotSpot in Ihrer Nähe können Sie auch unterwegs surfen, ohne dabei das eigene Datenvolumen zu verbrauchen.
Mehr Infos unter www.hotspot.deRoaming:
In der EU inkl. Schweiz & Großbritannien surfen Sie auf vorübergehenden Reisen ohne zusätzliche Kosten wie im Inland.
Zubuchbare Datenpässe
WeekPass (+ 3 GB): 5,95 €
WeekPass (+ 10 GB): 14,95 €
4-WeekPass (+ 20 GB): 19,95 €
4-WeekPass (+ 40 GB): 29,95 €
DayFlat unlimited: 9,95 €
So buchen Sie SpeedOn Datenpässe:
Sie erhalten jeweils eine SMS, wenn Sie Ihr Highspeed-Volumen zu 80 % und komplett verbraucht haben. Klicken Sie auf den kostenlosen Link http://pass.telekom.de in der SMS: hier können Sie Ihren aktuellen Verbrauch kontrollieren und bei Bedarf neues Highspeed-Volumen mit SpeedOn nachkaufen.
Die Buchung der SpeedOn Datenpässe ist auch in der MeinMagenta App möglich.
Tarife ohne Mindestlaufzeit
Infos zu Tarifen ohne Mindestlaufzeit, die lediglich ohne Gerät erhältlich sind, finden Sie unter www.telekom.de/flex-mobil oder in der Preisliste.
As the accessible name, this whole text content is announced by assistive technology for every color variant circle.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only using button functionality for actual buttons. When button functionality is needed, ensure using a semantic HTML button element, instead trying rebuilding button functionality with generic non-semantic HTML elements.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Assistive technology relies on use of proper semantic HTML. The screenshots show lists of elements, a user of assistive technology gets, using e.g. macOS VoiceOver screen reader rotor:
Landmarks list
Links list
Buttons list
All of these give an idea of improper use of semantic HTML. Observations:
Landmarks
Main and navigation landmarks are used
Each product price uses three(!) semantic article elements, two of which are empty
Each product price (e.g. "889,95 €") is marked up as follows:
<div class="...">
<div class="...">
<div class="...">
<section class="...">
Einmalig
</section>
<article class="...">
<div class="...">
889,95 €
</div>
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
</div>
</div>
<section class="...">
<div class="...">
<article class="...">
<div class="...">
<svg class="...">
<line y1="80%" x2="100%" y2="20%"></line>
<line y1="80%" x2="100%" y2="20%"></line>
</svg>
<div class="...">
<div class="..." data-qa="...">
</div>
</div>
</div>
</article>
<div class="...">
<article class="...">
</article>
</div>
</div>
</section>
</div>Links
Product card link elements are empty
assistive technology will always try to find a fallback for missing information; in this case, the last part of the link's URL path (stripping query parameters) is used;
href="/shop/geraet/apple/apple-ipad-air-13-2025-m3/space-grau-256-gb?tariffId=MF17498&tariffSubTenId=MF17496&categoryId=alle-geraete"→space-grau-256-gbAs the product color and storage is part of the URL path, multiple products with same color and storage will have the same fallback name (see e.g. "space-schwarz-256-gb")
"Weitere Geräte anzeigen" has button functionality but is using a semantic link element
"Tarif ändern" has button functionality but is using a semantic link element
"Tarif entfernen" has button functionality but is using a semantic link element
"Preisübersicht anzeigen"
has button functionality but is using a semantic link element
uses a
<div role="link">inside the aforementioned link elementas two nested links are used, the link is duplicated in the link list
Buttons
Color variant circles use buttons as
<div value="#262529" class="..." aria-describedby="tooltip-content-id" role="button" tabindex="0">...</div>;Color variants use buttons without any functionality
Color variant buttons are labeled by sidebar content
tooltip-content-idAll color variant buttons are labeled the same, thus cannot be differentiated
"* Schaltfläche" announces footnotes. All footnote buttons are announced the same: "*" / "STAR"
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Ensure,
only links (that lead to resources) are using HTML link elements
only buttons (that perform actions) are using HTML button elements
no generic element is used, if a native, semantic HTML element with wanted functionality exists
all interactive elements are labeled uniquely, to be identifiable by assistive technology
Accompanying Files
Observation Details
Links use <button> instead of semantic link element.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic link elements are used for link functionality. <button> → <a href="#...">
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
"Zum Angebot" link does not use <a href=""> but omits href attribute. Clicking the link scrolls the page to the desired location but does not set focus correctly. Using assistive technology, clicking the link will keep the focus on the triggering element.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, all HTML link elements use the mandatory href attribute correctly. Linking to an existing id="anchor-id", the appropriate <a href="#anchor-id"> syntax must be used.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components. Building a link, not using existing, semantic <a href="..."> syntax, requires dramatically more maintenance, as shown on BFIT-Bund Handreichung "Accessible design of user interface elements – Link".
Observation Details
Footnote button in section "Jetzt Apple Watch SE mit Smart Connect M bestellen" is marked up as follows:
<span
data-url="/unterwegs/ajax?ssb_block=dynamic-mapping&toGet=footnotes-popup&productId=tariff:16309"
class="..."
data-tealium-rel="content"
id="legal-notes-18794751934">
::before
</span>All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Use semantic HTML button element <button> instead.
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Button" for technical requirements for building interactive user interface components (buttons).
Observation Details
Observations:
Dropdown "Wählen Sie ein iPhone aus" uses
span role="combobox" tabindex="0"instead of semantic input field for selection / dropdownHandyankauf form
Step indicators use
<button type="button" disabled>but are not buttonsCAPTCHA reload button uses
span aria-hidden="true"instead of button element"Wo finde ich die IMEI-Nummer" uses
a href="#imei" title="..."instead of button element; side note,#imeiis not found in DOMClose button in dialog window uses
<button type="button">which is redundant and unnecessary
"Zurück" button use
a href="#" title="Zurück"instead of button elementInfo "i" icon buttons (step 3) use
<span aria-hidden="true"><svg>...instead of semantic (accessible) button elementClose button in dialog window uses
<button type="button">which is redundant and unnecessary
"Wo finde ich die Angabe" uses
a href="#imei" title="..."instead of button element; side note,#imeiis not found in DOMClose button in dialog window uses
<button type="button">which is redundant and unnecessary
"Prüfen" button uses
<button type="button">which is redundant and unnecessary"Ohne Aktion fortfahren" button uses
<button type="button">which is redundant and unnecessary"Anrede" dropdown uses
span role="button" tabindex="0" ...andselect id="..." name="title"(with non-unique id) instead of semantic input element
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Footnote dialog window is not keyboard accessible.
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Multiple (nested) main elements found. Ensure only a single main landmark is used per page.
Accompanying Files
Observation Details
Dropdown / selection "Wählen Sie ein iPhone aus" uses <span role="combobox" tabindex="0" ...>. Dropdown caret icon uses <span aria-hidden="true"><svg role="img" focusable="false">.
Navigating by screen reader, after the section heading, the main image is selected. After that, the right container half is skipped by the screen reader.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Manually setting tabindex rarely has a use-case. Use of proper semantic interactive elements will almost always fit the needs. Ensure, only semantic elements are used for wanted functionality.
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Button "Preisübersicht anzeigen" in sidebar uses <a tabindex="0"> instead of semantic button element.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Buttons and links not used correctly.
Dialog windows should be triggered by button elements, instead, many are triggered by link elements with missing
hrefattributeWeitere Details
Anderes Gerät verkaufen
Tarif ändern
Tarif entfernen
Preisübersicht anzeigen
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Device color buttons do not use semantic button element
While not a failure of this criterion, device color choice arguably should be a radio button group instead; as should storage option and "Einmalzahlung" option
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
Device color buttons do not use semantic button element; no content given, no label given
assistive technology announces wrong colors
assistive technology announces button, group
While not a failure of this criterion, device color choice arguably should be a radio button group instead; as should storage option and "Einmalzahlung" option
"Handyversicherung" is displayed as radio button group but is not using proper radio button group syntax
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Also, refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements of Radio Button Groups.
Observation Details
Buttons and links not used correctly.
Dialog windows should be triggered by button elements, instead, many are triggered by link elements with missing
hrefattributeWeitere Details
Jetzt gebrauchtes Handy verkaufen / Anderes Gerät verkaufen
"Details" links in "Handyversicherung"
Tarif ändern
Tarif entfernen
Preisübersicht anzeigen
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
Interactive elements not announced interactive, making it inaccessible to users of assistive technology
Device thumbnails announced as images
"Speichergröße"
"Einmalzahlung"
"Handyversicherung"
Details button
"radio buttons"
Interactive elements not using correct semantic HTML
"Spezifikationen" collapsible button is announced; assistive technology can navigate into content but is trapped inside until collapsible is closed again
Interactive element can be operated by mouse but not by keyboard. The issue may occur when:
Non-semantic HTML elements (e.g.
<div>,<span>) are used for interactive purposes (e.g. links, buttons, inputs), instead of semantic HTML elements (e.g.<a href="">,<button>). This often also leads to other issues, concerning 4.1.2 Name, Role, Value.Semantic elements are used but required attributes are missing (e.g.
<a>, missinghrefattribute)Semantic HTML elements are mis-used (e.g.
<a>used as a button, or<button>used as a link)
Remediation Notes
Ensure, using native, semantic HTML elements for interactive elements and not re-building existing functionality with generic elements like <div> and <span>.
Ensure, choosing the proper elements, depending on purpose (e.g. links, using <a href=""> to link to resources, and <button> to perform actions).
This way, the need for added JavaScript (e.g. on click events / event handlers) and ARIA methodologies is reduced to a minimum, which will ensure clean and simple code and backwards compatibility, will future-proof functionality, and will avoid issues with keyboard navigation or other assistive technology (see also 4.1.2 Name, Role, Value).
The "Spezifikationen" collapsed content is not part of DOM while panel is aria-expanded="false". When clicking "Spezifikationen" button, it becomes aria-expanded="true" and <div id="accordion-content-amvib80gg" role="region" aria-hidden="false" aria-labelledby="accordion-header-undefined"> gets added to DOM.
As functionality reflects this of a <details><summary> construct, it is recommended to evaluate use of this semantic HTML method to collapse content. For more information, refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion" and HTML specs for the details element.
Accompanying Files
Observation Details
Anchor links use <li data-scroll-trigger="scrollTarget"> instead of semantic link element with <a href="#scrollTarget">.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, using semantic link elements for all link content.
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
The button teaser__subline-expander does not use semantic button element. Instead it uses <div data-subline-addition="expander">.
Remediation Notes
Ensure, using proper semantic HTML button elements for button content.
Alternatively, in this instance, consider using the native <details><summary> structure.
Observation Details
Buttons use <a href="#"> instead of semantic button element.
"Paketdetails" in tariff option card
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
See observation details for "FAQ not screen reader accessible"
Remediation Notes
See remediation notes for "FAQ not screen reader accessible"
Accompanying Files
Observation Details
Links use <a data-scroll-trigger="scrollTarget"> instead of semantic <a href="#scrollTarget">. An HTML anchor element without href attribute, basically loses its link role and as such is not accessible to keyboard navigation and use via assistive technology.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Accompanying Files
Observation Details
FAQ "Häufig gestellte Fragen zur 5G Netzabdeckung" uses <ul role="tablist">.
Observations:
The whole list is one focusable element; TAB can navigate to it, but the next TAB will already leave the FAQ and navigate to the next focusable element; expected behavior is to use TAB to navigate to each individual FAQ item
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, using appropriate semantic HTML elements to construct accordion components. For technical requirements and possible implementations, please refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
Accompanying Files
Observation Details
Multiple main landmarks used
Main is nested within other landmark
Sections / Regions are used instead of correct heading structure
Landmarks may be used for on page navigation by users of assistive technology and as such should follow best practices.
Accompanying Files
Observation Details
Navigation links use <a href="#"> instead of semantic button element. Observations:
Improper use of
hrefattributeUse of
titleattributeMultiple links have the same visible label "Mehr erfahren"; the first occurrence is in the "Sternstunde der Fotografie" slide in the hero section; as the visible label is e.g. used by users of speech recognition software, it is important to have unique link labels for every unique link target; using the same visible label implies the same link target
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Accompanying Files
Observation Details
Links use <a href=""></a><div><span>LINK TEXT</span></div> instead of labeling the link by its content.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure proper usage of semantic HTML link element. For the card example above, please also refer to previous observations and card examples. E.g.: /observations/9ef22c7a-5c20-4107-aed4-23f56268e95a
Observation Details
FAQ section cannot be operated (expand / collapse) by assistive technology as the interactive elements are custom built and do not use correct semantic HTML. The FAQ accordion uses an HTML description list <dl>. Example code:
<dt class="accordion__term" data-accordion="term" tabindex="0">
<h3 class="accordion__title">...</h3>
</dt>
<dd
class="accordion__description accordion__description--hidden"
data-open-class="accordion__description--open"
data-hidden-class="accordion__description--hidden"
data-accordion="description"
>
<div class="accordion__content">
<p class="paragraph">...</p>
</div>
</dd>Observations about the example code:
Description lists consist of terms and descriptions. An FAQ question item can not be considered a term.
Setting
tabindex="0"to allow keyboard focus of non-interactive element is bad practice and should be avoideddata-*attributes in description try to build accordion functionality<div class="accordion__content">is an unnecessary hierarchy levelA CSS paragraph class
<p class="paragraph">should not ever be needed
Remediation Notes
Ensure, using correct semantic HTML elements for all interactive elements. In case of accordions, these could be <detail> and <summary> constructs or ones with <button> as the accordion item "header".
For custom building an accessible accordion component, please refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
Accompanying Files
Observation Details
Collapsible button uses <a href="#"> instead of semantic button element.
"Die neuen PlusKarten im Vergleich"
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Device selection input elements use the same label and as such cannot be easily operated by assistive technology.
Remediation Notes
Ensure, interactive elements have unique accessible names, as these are used to operate by assistive technology.
Observation Details
Device selection input elements use the same label and as such cannot be easily operated by assistive technology.
Remediation Notes
Ensure, interactive elements have unique accessible names, as these are used to operate by assistive technology.
Observation Details
FAQ section cannot be operated (expand / collapse) by assistive technology as the interactive elements are custom built and do not use correct semantic HTML. The FAQ accordion uses an HTML description list <dl>. Example code:
<dt class="accordion__term" data-accordion="term" tabindex="0">
<h3 class="accordion__title">...</h3>
</dt>
<dd
class="accordion__description accordion__description--hidden"
data-open-class="accordion__description--open"
data-hidden-class="accordion__description--hidden"
data-accordion="description"
>
<div class="accordion__content">
<p class="paragraph">...</p>
</div>
</dd>Observations about the example code:
Description lists consist of terms and descriptions. An FAQ question item can not be considered a term.
Setting
tabindex="0"to allow keyboard focus of non-interactive element is bad practice and should be avoideddata-*attributes in description try to build accordion functionality<div class="accordion__content">is an unnecessary hierarchy levelA CSS paragraph class
<p class="paragraph">should not ever be needed
Remediation Notes
Ensure, using correct semantic HTML elements for all interactive elements. In case of accordions, these could be <detail> and <summary> constructs or ones with <button> as the accordion item "header".
For custom building an accessible accordion component, please refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
Observation Details
FAQ section cannot be operated (expand / collapse) by assistive technology as the interactive elements are custom built and do not use correct semantic HTML. The FAQ accordion uses an HTML description list <dl>. Example code:
<dt class="accordion__term" data-accordion="term" tabindex="0">
<h3 class="accordion__title">...</h3>
</dt>
<dd
class="accordion__description accordion__description--hidden"
data-open-class="accordion__description--open"
data-hidden-class="accordion__description--hidden"
data-accordion="description"
>
<div class="accordion__content">
<p class="paragraph">...</p>
</div>
</dd>Observations about the example code:
Description lists consist of terms and descriptions. An FAQ question item can not be considered a term.
Setting
tabindex="0"to allow keyboard focus of non-interactive element is bad practice and should be avoideddata-*attributes in description try to build accordion functionality<div class="accordion__content">is an unnecessary hierarchy levelA CSS paragraph class
<p class="paragraph">should not ever be needed
Remediation Notes
Ensure, using correct semantic HTML elements for all interactive elements. In case of accordions, these could be <detail> and <summary> constructs or ones with <button> as the accordion item "header".
For custom building an accessible accordion component, please refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
Observation Details
Buttons use <a href="#"> instead of semantic button element.
Dialog windows "Ländergruppe"
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Tariff carousel pagination buttons use
<span>FAQ item buttons use
div role="button"instead of button element
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Observation Details
Changing radio selection in form will change the displayed tariff option cards. The content change is not announced to assistive technology.
Remediation Notes
The changes in content must be properly announced to assistive technology (e.g. by use of ARIA live regions) or explained prior to changes being applied.
The easiest option would be a description at the beginning of the form.
<p>Wählen Sie ihren Tarif aus, damit Ihnen alle passenden Tarifoptionen angezeigt werden können. Die Optionen werden automatisch in der nachstehenden Liste angezeigt.</p>
<!-- FORM CONTENT -->Accompanying Files
Observation Details
Buttons use <a href="#"> or missing href attribute completely, instead of semantic button element.
Dialog windows "Länderliste..."
Dialog windows "Zum Wunschtermin buchen"
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a href=""> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Tariff carousel pagination buttons use
<span>"Zum Wunschtermin buchen" dialog window buttons use
<a>, omittinghrefattributeFAQ item buttons use
div role="button"instead of button element
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Accompanying Files
Observation Details
Selection input element uses generic HTML elements instead of
<select>element
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure using semantic HTML instead of generic elements. For a selection element, the following markup provides a starting point:
<div>
<label for="location">
Reiseland auswählen
</label>
<div id="location-hint">
Das Land, in das Sie reisen oder reisen werden
</div>
<select id="location" name="location" aria-describedby="location-hint">
<option value="Auswählen" selected>Reiseland auswählen</option>
<option value="afghanistan">Afghanistan</option>
<!-- MORE COUNTRY OPTIONS -->
</select>
</div>Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components. Ensure to especially look at dropdown list / selection list.
Observation Details
Navigating the form by assistive technology, leaving an input field in error state will announce the error to the assistive technology. In the scenario we are
moving to the form by assistive technology,
moving to the empty "Vorname" input field,
leaving it empty and
moving to the "Nachname" input field.
The "Vorname" input will error, announcing the error message "Vorname", "Bitte geben Sie Ihren Vornamen ein." – as the focus right now is already set to input "Nachname", but announcement is "Bitte geben Sie Ihren Vornamen ein.", users of assistive technology will inevitable send wrong data via the form.
Remediation Notes
Shift input validation to form submit instead of validating each input field on moving focus to avoid this issue. As the error messages merely duplicate the labels anyways, no value is added by validating and announcing errors right away. Also, as the "Code" input still is validated on submit, all validation can take place then.
Observation Details
Button "Preisübersicht anzeigen" in sidebar uses <a tabindex="0"> instead of semantic button element.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, only semantic button elements are used for button functionality. <a> → <button>
Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.
Observation Details
Elements include multiple buttons that do not use semantic button elements, including:
"Farbe" button
"Speichergröße" button
Close button in "Handyankauf" dialog window
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.
Observation Details
Buttons using link elements and vice versa, Link elements without text. Link elements without href attribute, with empty href attribute or using href attribute not for link target.
Including:
"Preisübersicht anzeigen"
"Tarif ändern"
"Tarif entfernen"
"Zurück" in "Handyankauf" dialog window
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, using proper semantic HTML. This means, all interactive elements for actions use <button> elements and <a> elements are only used for moving to a different document (page, website, file). <a> elements must be used with href attribute which has a relative or absolute link target and uses # notation for on-page / anchor targets to existing IDs.
Please refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements of links, buttons, etc.
Observation Details
"Aktionen Auswahl" tabs ("Mobilfunk" / "Internet & Festnetz") are not using semantically correct HTML elements.
Navigating the tabs by assistive technology, focussing a tab panel automatically reveals the tab's content, making it difficult for users of assistive technology to reach the first tab's content.
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Ensure, all content is easily accessible for users of assistive technology. For the given tab component, it means, all tabs' content must be easily accessible. Focussing the tab panel (button) should not automatically reveal the tab content. Not for keyboard navigation and not for users of assistive technology.
For technical requirements of tabs, refer to BFIT-Bund Handreichung "Accessible design of user interface elements", the W3C patterns or a best practice example on GOV.UK Design System.
Observation Details
Observations:
Handyankauf form
Step indicators use
<button type="button" disabled>but are not buttonsCAPTCHA reload button uses
span aria-hidden="true"instead of button element"Wo finde ich die IMEI-Nummer" uses
a href="#imei" title="..."instead of button element; side note,#imeiis not found in DOMClose button in dialog window uses
<button type="button">which is redundant and unnecessary
"Zurück" button use
a href="#" title="Zurück"instead of button elementInfo "i" icon buttons (step 3) use
<span aria-hidden="true"><svg>...instead of semantic (accessible) button elementClose button in dialog window uses
<button type="button">which is redundant and unnecessary
"Wo finde ich die Angabe" uses
a href="#imei" title="..."instead of button element; side note,#imeiis not found in DOMClose button in dialog window uses
<button type="button">which is redundant and unnecessary
"Prüfen" button uses
<button type="button">which is redundant and unnecessary"Ohne Aktion fortfahren" button uses
<button type="button">which is redundant and unnecessary"Anrede" dropdown uses
span role="button" tabindex="0" ...andselect id="..." name="title"(with non-unique id) instead of semantic input element
All interactive elements that do not use the correct interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with incorrect HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Observation Details
FAQ section cannot be operated (expand / collapse) by assistive technology as the interactive elements are custom built and do not use correct semantic HTML. The FAQ accordion uses an HTML description list <dl>. Example code:
<dt class="accordion__term" data-accordion="term" tabindex="0">
<h3 class="accordion__title">...</h3>
</dt>
<dd
class="accordion__description accordion__description--hidden"
data-open-class="accordion__description--open"
data-hidden-class="accordion__description--hidden"
data-accordion="description"
>
<div class="accordion__content">
<p class="paragraph">...</p>
</div>
</dd>Observations about the example code:
Description lists consist of terms and descriptions. An FAQ question item can not be considered a term.
Setting
tabindex="0"to allow keyboard focus of non-interactive element is bad practice and should be avoideddata-*attributes in description try to build accordion functionality<div class="accordion__content">is an unnecessary hierarchy levelA CSS paragraph class
<p class="paragraph">should not ever be needed
Remediation Notes
Ensure, using correct semantic HTML elements for all interactive elements. In case of accordions, these could be <detail> and <summary> constructs or ones with <button> as the accordion item "header".
For custom building an accessible accordion component, please refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Accordion".
Interactive element uses non-semantic HTML
+
Observation Details
All interactive elements that do not use native, interactive HTML elements must be built in a way, that semantic information is provided and updates to semantic information are accessible via assistive technology. Building interactive components with non-semantic HTML elements results in inaccessible content. These accessibility issues might occur:
Interactivity of element is not announced → user will not know, that element is interactive
Changes to states (e.g. collapsed/expanded) is not announced → user will not know of the change
Target resource is not announced → e.g. user will not know, where a link leads to
Interactive action is not announced → e.g. user will not know, that a dialog window will be opened
Issues in 4.1.2 Name, Role, Value often occur together with other issues e.g. in 2.1.1 Keyboard and 2.4.7 Focus Visible.
Remediation Notes
Using non-native, non-semantic HTML elements to build functionality, native, semantic HTML elements already provide should be a rare occasion. As the first rule of ARIA use describes, if there is a semantic HTML with needed or wanted functionality this should always be used instead of ARIA.
Ensure, semantic HTML elements are used for all interactive elements and components. Refer to BFIT-Bund Handreichung "Accessible design of user interface elements" for technical requirements for building interactive user interface components.