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
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
Priority: Best Practice Medium Page: Vertragsverlängerung Observation Permalink
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>.

Priority: Moderate Low Page: Aktionen Observation Permalink
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.

Priority: Moderate Unknown Page: Alle Geräte Observation Permalink
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.

Priority: Critical Low Page: Smartphones Observation Permalink
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.

Priority: Moderate Low Page: 5G Netz Observation Permalink
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.

Priority: Critical Medium Page: Sport Observation Permalink
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 setting role="switch", etc.

Priority: Critical High Page: Sport Observation Permalink
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 set aria-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.

  1. Image button cannot be operated, using keyboard navigation

  2. Close button cannot be operated, using keyboard navigation

  3. "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

Priority: Best Practice Low Page: Magena Sport Observation Permalink
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.

Priority: Critical Medium Page: Magena Sport Observation Permalink
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.

  1. Image button cannot be operated, using keyboard navigation

  2. 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.

Priority: Critical Medium Page: Tarife Observation Permalink
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 buttons

  • Use <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.

Priority: Critical Medium Page: Tarife Observation Permalink
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-hidden CSS 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.

Priority: Critical Medium Page: Aktionen Observation Permalink
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> elements

    • Navigation 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-roledescription

      • does 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 redundant

      • uses title attribute

      • labeled by aria-label

      • title duplicated aria-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 with role="img"

      • Duplicated by visually hidden text

      • Not at all used, because it is overwritten by aria-label on 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 section

  • keep 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>
Priority: Moderate Low Page: Shop Observation Permalink
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="...">

Priority: Critical Significant Page: Alle Geräte Observation Permalink
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.de

  • Roaming:
    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.


Produktinformationsblatt (PDF)


Preisliste, Leistungsbeschreibung und AGB

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.

Priority: Critical Significant Page: Alle Geräte Observation Permalink
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-gb

  • As 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 element

    • as 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-id

  • All 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

Priority: Moderate Unknown Page: Mobile Router Observation Permalink
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.

Priority: Critical Significant Page: Mobile Router Observation Permalink
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 €


Produktinformationsblatt (PDF)


Preisliste, Leistungsbeschreibung und AGB

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.

Priority: Critical Significant Page: Mobile Router Observation Permalink
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-gb

  • As 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 element

    • as 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-id

  • All 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".

Priority: Moderate Unknown Page: Smartphones Observation Permalink
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.

Priority: Critical Significant Page: Smartphones Observation Permalink
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.de

  • Roaming:
    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.


Produktinformationsblatt (PDF)


Preisliste, Leistungsbeschreibung und AGB

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.

Priority: Critical Significant Page: Smartphones Observation Permalink
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-gb

  • As 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 element

    • as 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-id

  • All 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

Priority: Critical Significant Page: Smartwatches Observation Permalink
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


Produktinformationsblatt (PDF)


Preisliste, Leistungsbeschreibung und AGB

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.

Priority: Critical Significant Page: Smartwatches Observation Permalink
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-gb

  • As 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 element

    • as 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-id

  • All 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

Priority: Critical Low Page: Smartwatches Observation Permalink
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.

Priority: Critical Low Page: Smartwatches Observation Permalink
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".

Priority: Critical Significant Page: Tastenhandys Observation Permalink
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.de

  • Roaming:
    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.


Produktinformationsblatt (PDF)


Preisliste, Leistungsbeschreibung und AGB

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.

Priority: Critical Significant Page: Tastenhandys Observation Permalink
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-gb

  • As 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 element

    • as 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-id

  • All 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

Priority: Critical Low Page: Tastenhandys Observation Permalink
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.

Priority: Critical Low Page: Tastenhandys Observation Permalink
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".

Priority: Moderate Unknown Page: Tablets Observation Permalink
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.

Priority: Critical Significant Page: Tablets Observation Permalink
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.de

  • Roaming:
    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.


Produktinformationsblatt (PDF)


Preisliste, Leistungsbeschreibung und AGB

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.

Priority: Critical Significant Page: Tablets Observation Permalink
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-gb

  • As 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 element

    • as 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-id

  • All 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&amp;toGet=footnotes-popup&amp;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 / dropdown

  • Handyankauf form

    • Step indicators use <button type="button" disabled> but are not buttons

    • CAPTCHA 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, #imei is not found in DOM

      • Close 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 element

    • Info "i" icon buttons (step 3) use <span aria-hidden="true"><svg>... instead of semantic (accessible) button element

      • Close 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, #imei is not found in DOM

      • Close 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" ... and select 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.

Priority: Critical Medium Page: iPhone Erleben Observation Permalink
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 href attribute

    • Weitere 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.

Priority: Moderate Low Page: Xiaomi 15 Observation Permalink
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.

Priority: Critical Low Page: Xiaomi 15 Observation Permalink
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 href attribute

    • Weitere 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.

Priority: Critical Low Page: Xiaomi 15 Observation Permalink
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>, missing href attribute)

  • 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 href attribute

  • Use of title attribute

  • Multiple 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 avoided

  • data-* attributes in description try to build accordion functionality

  • <div class="accordion__content"> is an unnecessary hierarchy level

  • A 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".

Priority: Critical Low Page: For Friends Observation Permalink
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 avoided

  • data-* attributes in description try to build accordion functionality

  • <div class="accordion__content"> is an unnecessary hierarchy level

  • A 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 avoided

  • data-* attributes in description try to build accordion functionality

  • <div class="accordion__content"> is an unnecessary hierarchy level

  • A 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>, omitting href attribute

  • 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.

Priority: Critical Medium Page: Travel Surf Observation Permalink
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.

Priority: Critical Low Page: Sonim XP100 Observation Permalink
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.

Priority: Critical Medium Page: Sonim XP100 Observation Permalink
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.

Priority: Critical Low Page: Sonim XP100 Observation Permalink
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 buttons

    • CAPTCHA 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, #imei is not found in DOM

      • Close 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 element

    • Info "i" icon buttons (step 3) use <span aria-hidden="true"><svg>... instead of semantic (accessible) button element

      • Close 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, #imei is not found in DOM

      • Close 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" ... and select 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 avoided

  • data-* attributes in description try to build accordion functionality

  • <div class="accordion__content"> is an unnecessary hierarchy level

  • A 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".