Page URL
https://www.telekom.de/shop/geraete/tastenhandys

Issues List

Page Notes and General Remarks
Non-text Content 1.1.1 (A)
Device images do not have purpose equivalent text alternative
Non-text Content 1.1.1 (A)
Info Icon does not have purpose equivalent text alternative
Non-text Content 1.1.1 (A)
Decorative icons have non-null alt attribute or no text alternative at all
Info and Relationships 1.3.1 (A)
Sidebar Content not matching visual presentation and code markup
Info and Relationships 1.3.1 (A)
Device list presentation does not match markup
Info and Relationships 1.3.1 (A)
Device category navigation not using navigation landmark
Info and Relationships 1.3.1 (A)
Empty paragraph element found
Info and Relationships 1.3.1 (A)
List of services "rund um Ihre Bestellung" is not using correct semantic HTML
Use of Color 1.4.1 (A)
Links in body copy are indicated by color only
Contrast (Minimum) 1.4.3 (AA)
"Bonus" info (magenta) in "Tarif ändern" dialog window is not meeting minimum contrast
Resize text 1.4.4 (AA)
Resizing text leaves very limited space in "Tarif ändern" dialog window
Reflow 1.4.10 (AA)
Vertical space in dialog window on small viewport extremely limited (67px)
Text Spacing 1.4.12 (AA)
Changing text spacing lets parts of text spill out of their containers
Keyboard 2.1.1 (A)
Device category links not accessible via keyboard
Keyboard 2.1.1 (A)
Filter dialog window cannot be opened or operated
Bypass Blocks 2.4.1 (A)
Repeated blocks cannot be bypassed
Focus Order 2.4.3 (A)
Filter Dialog Window not in order
Link Purpose (In Context) 2.4.4 (A)
Product card link purpose not determinable
Focus Visible 2.4.7 (AA)
Product card focusable, but focus is not visible
Focus Visible 2.4.7 (AA)
Elements in filter dialog focusable, but focus is not visible
Pointer Gestures 2.5.1 (A)
Device Category links navigation can only be operated by dragging motion on mobile
Label in Name 2.5.3 (A)
Filter button labels not part of accessible name
Target Size (Minimum) 2.5.8 (AA)
Info icon "i" not meeting minimum target size
Name, Role, Value 4.1.2 (A)
Interactive element does not use correct semantic HTML
Name, Role, Value 4.1.2 (A)
FAQ not using correct semantic HTML and ARIA attributes
Name, Role, Value 4.1.2 (A)
Interactive element uses non-semantic HTML
Name, Role, Value 4.1.2 (A)
Improper use of semantic HTML
Priority: Critical Significant Page: Tastenhandys Observation Permalink
Observation Details

Page is

  • child page of "Alle Geräte" and

  • sibling page of "Smartphones".

All (or most) of issues in parent pages and sibling pages are also found on this page. Ensure, following global issues and page specific issues of parent pages and sibling pages closely. Remediation of this page is only done, when all parent pages, all sibling pages, and all global issues are remediated.


Please refer to global 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
Accompanying Files
Observation Details

Device images use device name as text alternative, not serving the equivalent purpose of the image and simply duplicating text content that is already presented down below.

Please read remediation notes carefully.

Remediation Notes

There are multiple ways to remediate this issue.

Image description

The ideal way would be to use the actual image description.

Declare decorative

A less ideal way would be to declare the device image as decorative by using a null alt attribute, removing it from the accessibility tree. There are a few caveats to this "tactic", though and if using it, there are multiple other steps to be done, to ensure conformance with this success criterion.

  • While this would improve the current use of the images' text alternatives, removing the content duplication, it does not really solve the issue of the images' purpose not being communicated.

  • A decorative image only is purely decorative, if not adding any information that is not communicated otherwise. While device name and device color might be information which is available elsewhere, the actual description of the device is not.

  • Declaring the images decorative, you additionally MUST ensure, all other information (color, promotions, add-ons, extra devices like styluses, etc.) is available as text in the product card.

Priority: Moderate Low Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

Decorative icons are announced by screen reader. This happens when images have a non-null alt attribute or in the case of SVGs a non-null <title> element or none at all without being hidden manually.

On the /shop pages, this concerns the

  • device category navigation at the page's top,

  • icons used in the services list in section "Verlässlicher Service rund um Ihre Bestellung"

  • the "Vertragsverlängerung" icon in the sidebar section "Ich möchte"

Remediation Notes

Ensure, purely decorative images have a null alt attribute set. SVGs must have an empty <title> element instead and ideally be hidden manually via aria-hidden="true".

For more information about accessible icon buttons, refer to Sara Soueidan's "Accessible Icon Buttons" article.

If an image is declared to be informative rather than decorative, a purpose equivalent text alternative must be programmatically determinable. Duplicating already existing text content never is purpose equivalent of an image. See the W3C Alt-decision tree for more information about types of non-text content.

Accompanying Files
Observation Details

Info icon in sticky sidebar has no text alternative, thus no accessible name. The icons are used as interactive elements and MUST have an accessible name.

Remediation Notes

Change the text alternative to communicate the icon's purpose, e.g. by setting alt="Tarifdetails anzeigen/ausblenden".

Accompanying Files
Observation Details

The sidebar section "Vorteile im Überblick" uses visual presentation (and CSS classes) of a heading structure that is not reflected in the HTML markup. Visual presentation MUST match code markup.

Remediation Notes

Use proper semantic HTML headings to indicate the structure of the sidebar content.

<h2>Vorteile im Überblick</h2>

<h3>Unbegrenztes Datenvolumen</h3>
<p>...</p>
<p><a href="...">...</a></p>

<h3>MagentaEINS Vorteil</h3>
<p>...</p>
<p><a href="...">...</a></p>
Priority: Minor Unknown Page: Tastenhandys Observation Permalink
Observation Details

The section "Verlässlicher Service rund um Ihre Bestellung" arguably houses a list of services but is not using semantic HTML list elements. While this is not a strict failure of this success criterion, remediation is recommended.

Accompanying Files
Observation Details

The FAQ section houses at least one empty <p> element (class names for reachability: sc-feUZmu ibaGoG).

Paragraphs have an ARIA role paragraph always making them be announced by screen readers. Empty paragraph elements lead to the announcement of "empty group".

Paragraph elements must never be empty.

Remediation Notes

Ideally, creation of empty paragraph elements will technically be prohibited.

Content management however must ensure, not creating empty paragraph elements, not in rich text nor source code editor.

Side note: while this issue is about the found empty paragraph element, there are rare occasions, any element should be empty.

Priority: Moderate Low Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

The navigational items in the device category list above the page's main heading are not using semantic HTML navigation element <nav>.

Remediation Notes

Use proper semantic HTML structure to create navigation landmark. Ensure, labelling the <nav> element to differentiate from main, breadcrumb and other menu(s).

Priority: Serious High Page: Tastenhandys Observation Permalink
Observation Details

The device list presentation suggests the code to be marked up like this:

<!-- Device list -->
<div>
  <!-- Device card -->
  <article>
    <span><!-- Badge --></span>
    <img /><!-- Device image -->
    <h2><!-- Device name --></h2>
    <p><!-- Storage --></p>
    <p><!-- Price info --></p>
    <p><!-- Price --></p>
  </article>

  <!-- More device cards -->
</div>

Instead, there are no headings, sections, articles, divs and spans are nested many hierarchy levels and an empty link is present.

Remediation Notes

Ensure, code markup matches the visual presentation. One possible solution could be a structure as follows:

<h2></h2> <!-- Heading to introduce device list -->
<!-- Device list -->
<ul>
  <li>
    <!-- Device card -->
    <article>
      <h3></h3> <!-- Device name -->
      <span></span> <!-- Badge with promotion/info -->

      <dl>
        <div>
          <dt class="visually-hidden">Verfügbar in den Farben</dt>
          <dd>
            <ul></ul> <!-- Available colors -->
          </dd>
        </div>

        <div>
          <dt>Preis, einmalig</dt>
          <dd></dd> <!-- Price -->
        </div>
      </dl>

      <img /><!-- Device image -->
    </article>
  </li>

  <!-- More device cards -->
</ul>

Improvements made and notes to implement:

  • Clear structure without unnecessary nesting, without sections/articles nested, etc.

  • Use actual semantic list (<ul>) for the list

  • Each product is an <article> so it can be navigated to easily via screen reader

  • Product is defined by semantic heading <h3> as first child of product card

  • <span> with badge positioned right after heading, so it will be announced after the device name; badge can be positioned absolute or visually be moved up by using CSS order: -1

  • Product description is moved into description list to make each description detail easily navigable

  • Lists within the description (color list, storage option list) are using semantic list elements

  • Some <dt> can use a class="visually-hidden" to be accessible to screen readers while not being visible; check example class below

.visually-hidden:not(:focus):not(:active) {
  clip: rect(0 0 0 0); 
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap; 
  width: 1px;
}

Added side-effect of a semantic structure like this is the improved simplicity to build a responsive layout for the list, using CSS grid and Flexbox.

Observation Details

Links are only differentiated from normal body text (black, rgb(38, 38, 38)) by use of color (blue, rgb(0, 115, 159)).

In addition, the contrast ratio of link text color and body text color also is insufficient (2.8:1 < 3:1).

Links can be found, e.g. in

  • "Tarif ändern" dialog window as "Preisliste, Leistungsbeschreibung und AGB"

Remediation Notes

Ensure, links do not rely on color alone to be differentiated from (surrounding) body text. Preferably use underline to indicate text links as it is the default –thus user friendly– method.

Priority: Moderate Medium Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

On base viewport size of 320×256px and page zoom of 100%, the available vertical space in the "Tarif ändern" dialog window, due to fixed top and bottom bars, is just 67px.

Remediation Notes

While not a failure for the given success criterion, the limited vertical space in the dialog window makes navigating the dialog's contents extremely difficult. Evaluation of the need for the fixed top bar and the large fixed bottom bar should be done.

Consistency with other dialog windows could remove the (empty) top bar and/or add the close button to a fixed position of the scrollable dialog window.

The fixed bottom bar could e.g. be shrunken by

  • decreasing margins and/or paddings,

  • decreasing the size of the primary button,

  • changing the layout to display price information and primary button side-by-side.

Priority: Critical High Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

Some text, when text spacing is changed, spills out of its parent containers, making some text hard, other text impossible to read. This includes:

  • Product card (storage options)

  • Badges

  • Selection input (Sortieren)

Remediation Notes

Containers of any type (e.g. badges, teasers, stages) must not use fixed dimensions, if they contain text content.

Accompanying Files
Observation Details

Magenta text on magenta background has contrast ratio of 4.3:1 which does not meet color contrast ratio minimum of 4.5:1 for text content.

Remediation Notes

Ensure all text content meets minimum color contrast requirements.

Priority: Serious Medium Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

On base viewport size of 1024×768px and page zoom of 200%, the available:

  • vertical space in the "Tarif ändern" dialog window, due to fixed top and bottom bars, is less than 400px.

  • horizontal space, due to page zoom, is limited and cuts of hover tooltips

All content must be presented without loss of information or functionality.

Remediation Notes

The contents of the tooltip must stay accessible on smaller viewports. Ensure to display the contents within the boundaries of the viewport.

As the site is already working with dialog windows and collapsible elements, the easiest way to achieve this is to eliminate the tooltip functionality, as they (tooltip, dialog window, collapsible) serve the same purpose of hiding information. For this, the other used method must meet all success criteria, but this would eliminate the need of meeting them with yet another mechanism.

Hiding information from the user never is good user experience but the use of dialog windows or collapsible elements is widespread. While the use is no clear failure of accessibility criteria, concerning WCAG, one could argue it being at least a grey area for 3.2.4 Consistent Identification: "Components that have the same functionality within a set of Web pages are identified consistently." – this audit will not add this as a failure but asks to evaluate the use of multiple components that have the same purpose. Ideally, the functionality "hide from user" has a single way to be done. Splitting into a trigger being "block level" (FAQ) and "inline level" (Footnotes) seems reasonable, but adding another mechanism does not seem necessary.


While not a failure for the given success criterion, I also attached a screenshot showing the limited vertical space in the dialog window, which makes navigating the dialog's contents extremely difficult. Evaluation of the need for the top bar and the large bottom bar should be done.

Priority: Critical Low Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

Device category links do not use interactive semantic HTML elements. Thus is not accessible via keyboard and is not announced as interactive for screen reader users as well.

Remediation Notes

Use anchor elements for links instead of trying to build custom interactive components. All <a> elements MUST have an href attribute. To demonstrate, this is one of the links:

<div class="style__StyledNavigationChips-sc-h2fd9x-0 IhoCS dt_navigationChips clickable selected"
     data-qa="LST_DeviceCategory_smartphones">
  <article class="style__StyledIconWrapper-sc-h2fd9x-1 jAhAws">
    <div class="iconWrapper" role="image" aria-label="Handys">
      <div class="sc-imWYAI iYZqNY es_preloadImage">
        <img class="sc-kpDqfm bxTqZb dt_mainImage customStyle imgLoaded"
          alt="Handys"
          src="..."
          data-img="isSafari_false isSsr_undefined">
        <div class="sc-jXbUNg jYexhV dt_placeholderImage">
          <svg width="100%" height="100%" viewBox="0 0 121 242"
            fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="..."
              fill="#F3F3F3"></path>
          </svg>
        </div>
      </div>
    </div>
  </article>
  <div class="sc-YysOf esSDcz dt_typography variant_smallBold">
    Handys
  </div>
</div>

When it easily could be:

<nav aria-labelledby="heading-device-categories" id="menu-device-categories">
  <h2 id="heading-device-categories">Geräte-Kategorien</h2>
  <ul>
    <li><img alt="" src="..."><a href="">Handys</a>
    <li><img alt="" src="..."><a href="">Smartwatches</a>
    <li><img alt="" src="..."><a href="">Tablets</a>
    <li><img alt="" src="..."><a href="">Mobile Router</a>
    <li><img alt="" src="..."><a href="">Tastenhandys</a>
  </ul>
</nav>

for the whole navigation to be perfectly accessible. The clean semantic structure with the id on the navigation element allows for all necessary CSS selectors to be created from the id alone without the need of countless CSS classes.

Simple structured HTML outperforms in many ways.


Please also refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.

Priority: Critical High Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

Filter button is not accessible. All filtering is impossible to be operated by keyboard.

Inside filter dialog window, only collapsible and "main buttons" at dialog window bottom are accessible via keyboard navigation. All other elements are not.

All interactive elements MUST be accessible via keyboard. As a Level A success criterion, it is crucial for operating a website.

Remediation Notes

Ensure complete navigation and operation by keyboard is possible. All interactive elements MUST be reachable by keyboard.

Only use semantic HTML elements to create interactive elements to ensure the base accessibility. If building custom interactive elements instead, you MUST refer to something like BFIT-Bund Handreichung "Accessible design of user interface elements" to ensure all necessary functionality is available. This MUST be done for all interactive elements that are custom built. Every button, every input, every link, ... Thus, using proper semantic HTML will decrease time and necessary effort to complete dramatically.

Please refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.

For example, filtering dialog window should use buttons, radio button groups, checkmark groups, etc. instead of relying on dozens/hundreds of nested <div> to "rebuild" functionality, native HTML elements already deliver.

The "Filter" button to open the filter dialog window looks as follows:

<div class="... clickable" data-qa="LST_FilterButton">
  <i class="..." id="svg_wrapper_undefined">
    <svg width="1em" height="1em" viewBox="0 0 20 20" color="currentColor">
      <path>...</path>
    </svg>
  </i>
  <p class="...">Filter</p>
</div>

When it could just be:

<button><svg aria-hidden="true">...</svg>Filter</button>
Priority: Serious Medium Page: Tastenhandys Observation Permalink
Observation Details

Shop Pages are repeating certain content blocks.

  • Breadcrumb navigation

  • Optional product highlights

  • Product group navigation

  • Main heading and description

  • Filtering and sorting mechanisms

  • Product list

  • Side bar with payment information and offer details

  • SEO content/landing page content, including FAQ section

Those parts are not correctly identifiable by common mechanisms like landmarks (only main landmark used) or heading structure (only main heading and headings in optional landing page/SEO content). Reaching certain parts of the page is made very difficult for users of keyboard or other assistive technology like screen readers.

Remediation Notes

Ensure use of proper structure of of the page and easy identification of repeated content blocks by using a combination of landmarks, and HTML headings. An example structure for the shop pages containing product lists, could be as followed:

  1. HTML header

    1. The current header element is not part of this audit, thus its current contents are not listed in here.

    2. Breadcrumb navigation as HTML <nav> element, labeled to differentiate from main menu, and including an ordered list <ol>

    3. Option product highlights identified by <h2> heading

    4. Device group navigation, using <nav> navigation element, labeled to differentiate from other menus

  2. <main> landmark

    1. <h1> main heading and description text content

    2. <section> for filtering and sorting

      1. evaluate use of ARIA role search

      2. add <h2> heading with id attribute and

      3. label the section by using aria-labelledby="" with the heading ID

    3. <section> for product list as your main content

      1. add <h2> heading with id attribute and

      2. label the section by using aria-labelledby="" with the heading ID

      3. The actual device list should use <ul>

      4. Each product card should be <article> including <h3> with product name

      5. No further nesting of landmarks should be needed inside this section as the structure is well defined by the article elements and their nested heading

    4. <section> for sidebar content; ideally labeled by a visible heading <h2> that describes all sidebar content; sections inside sidebar should not use <section> but only <h3> for structure

    5. <section> for landing page, SEO content and FAQ; sections inside should not use <section> but only <h2> and <h3> for structure

  3. HTML footer

Additionally, the use of skip links should be evaluated. Skip links are not only meant to be the first links on a page, but can also be used before certain repeated content blocks. For example, at the start of the main landmark, there could be a skip link that skips the product list and brings the user to the sidebar content or the FAQ section. Skip links can also be used at the end of a section or landmark to go back to its beginning. For example, at the end of the product list, which can be quite long, there could be a skip link to reach the start of the product list again.


Using proper structure of HTML headings usually makes "custom landmarks" (by sections) a redundant mechanism to navigate on a page, so they should not be used on everything. Only use landmarks for broad page structure.

The same goes for skip links. If a proper heading structure and optional landmarks already exist, there usually is no need for additional skip links.


Please (also) refer to observation 1.3.1 Info and Relationships – "Semantic HTML" for general remarks about the use of semantic HTML.

Priority: Moderate Unknown Page: Tastenhandys Observation Permalink
Observation Details

From filter button, a dialog window with filtering options opens. There is one focusable element in that dialog window which is ordered after all main content.

Remediation Notes

Ensure, contents of the filtering dialog window are in correct focus order (after filter button)

Priority: Critical Medium Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

The product card link is empty, resulting in a null accessible name. As such it is announced only as "link" to assistive technology.

As the product cards are not semantically structured e.g. by using <article> for the whole card and a heading <h3> with the product name, there is no programmatically determinable context that makes the link purpose clear to the user.

Interactive, focusable elements like links must have an accessible name. The name should state the link's purpose. If not directly, it must be determinable by context.

Remediation Notes

Ensure, link purpose is determinable. This can be done by adding "GERÄT XYZ in den Warenkorb legen" as text alternative. Ideally, a proper semantic structure on product card is used.

<article>
  <h3 id="heading-PRODUCT">PRODUCT NAME</h3>
  ...
  <a href="..." id="link-PRODUCT" aria-labelledby="heading-PRODUCT link-PRODUCT">
    Produktdetails
  </a>
</article>
Priority: Critical Medium Page: Tastenhandys Observation Permalink
Observation Details

Focusing product card by keyboard navigation does not add visible focus state.

Remediation Notes

A focus state must be defined for all interactive, focusable elements. Ideally, a visual distinct focus state uses an outline or other larger area changes to the product card.

If using color change for focus state, ensure to meet minimum color contrast between different states (1.4.3 Contrast (Minimum)) and to not only rely on color change (1.4.1 Use of Color).

Priority: Critical Medium Page: Tastenhandys Observation Permalink
Accompanying Files
Observation Details

Focusing the focusable elements inside the filter dialog window ("Weiter anzeigen", "Zurücksetzen", "Filter anwenden") by keyboard navigation does not add visible focus state.

Remediation Notes

A focus state must be defined for all interactive, focusable elements. Ideally, a visual distinct focus state uses an outline or other larger area changes to the focused element.

If using color change for focus state, ensure to meet minimum color contrast between different states (1.4.3 Contrast (Minimum)) and to not only rely on color change (1.4.1 Use of Color).

Observation Details

The device category links navigation can only be operated by horizontal scroll on desktop and by dragging movement on a mobile device. As the dragging needs a base precision to stop the movement at the right time to reach the wanted category link, a single pointer alternative for operation / navigation must be offered.

The viewport tested is 375×635px, simulating an Apple iPhone 11 Pro. While this is an old device and more current phones do tend to have increased viewport widths, this test would look even more drastic on the 320px viewport width, the WCAG sets for e.g. 1.4.10 Reflow.

Remediation Notes

Possible methods to remediate and to ensure access to the links:

  • Adding pagination (single pointer arrow buttons)

  • Reflow to multiple lines (also see 1.4.10 Reflow)

Note, that the WCAG, and success criterion 2.5.7 Dragging Movements specifically, do not require presentation / layout parity of different devices, viewports, etc. This means, while functionality and information parity is a must, the layout and presentation can be different.

Priority: Critical Medium Page: Tastenhandys Observation Permalink
Observation Details

The filter buttons have no accessible name but are "labeled" by their text and/or image content.

Remediation Notes

The buttons MUST be user accessible interface components. Ideally, use a native semantic HTML <button> element for the filter button, <fieldset> including <input type="checkbox"> for the "direct manufacturer filter" buttons, and explicit labels to go with them. As is, there is neither a programmatically determinable connection between the "labels" and the buttons, nor does the buttons have any accessible name, let alone one including the label.

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: Tastenhandys Observation Permalink
Observation Details

The info icon "i" to activate a footnote dialog window does not meet minimum target size (24×24px). The icon's target size is ~18×18px, making it hard for certain people to reliably click it. This includes people with motor disabilities, people using devices like styluses, people in moving vehicles, and mobile users altogether.

Remediation Notes

Ensure, making all interactive elements at least 24×24px in size. This does not necessarily mean to make the icon itself 24×24px, if you can ensure a surrounding area of said size to be the clickable area of the icon.

A better approach would however be to not use interactive elements below this minimum size. Also consider mobile users when designing these elements. An increased target size of 44×44px (see success criterion 2.5.5 Target Size (Enhanced) [AAA]) will immensely help mobile users as well.

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