Page URL
https://www.telekom.de/unterwegs/hersteller/apple/iphone-erleben

Issues List

Non-text Content 1.1.1 (A)
Image text alternative does not serve equivalent purpose
Non-text Content 1.1.1 (A)
Image is missing alt attribute
Non-text Content 1.1.1 (A)
CAPTCHA used; no text alternative present
Non-text Content 1.1.1 (A)
Image text alternative does not serve equivalent purpose
Non-text Content 1.1.1 (A)
Icons used non-decoratively in "Zusammenfassung" list but are hidden from assistive technology
Info and Relationships 1.3.1 (A)
Visual presentation of heading structure does not match code markup
Info and Relationships 1.3.1 (A)
Visual presentation of heading structure does not match code markup
Info and Relationships 1.3.1 (A)
Improper use of semantic HTML list elements
Info and Relationships 1.3.1 (A)
Improper use of semantic HTML list elements
Identify Input Purpose 1.3.5 (AA)
Handyankauf form inputs not using appropriate autocomplete values
Use of Color 1.4.1 (A)
Links are indicated by color only
Use of Color 1.4.1 (A)
Interactive element's focus state indicated by color only
Use of Color 1.4.1 (A)
Links are indicated by color only
Contrast (Minimum) 1.4.3 (AA)
Disabled form field does not have enough color contrast
Text Spacing 1.4.12 (AA)
Text content overflows containers with user changed text spacing
Keyboard 2.1.1 (A)
Interactive element, operable by mouse, not accessible by keyboard
Keyboard 2.1.1 (A)
Dialog window does not receive keyboard focus
Focus Order 2.4.3 (A)
Visually hidden elements in focus order are not shown on focus
Focus Order 2.4.3 (A)
User-activated dynamic content not in correct focus order
Headings and Labels 2.4.6 (AA)
Input group does not use fieldset
Focus Visible 2.4.7 (AA)
Element's focused state is not visible
Focus Not Obscured (Minimum) 2.4.11 (AA)
Dialog windows obscure focus of underlying elements
Pointer Gestures 2.5.1 (A)
Overflowing elements rely on pointer gesture to be navigated
Label in Name 2.5.3 (A)
Visible label is not matching interactive element's accessible name
On Focus 3.2.1 (A)
Tab, focused by assistive technology, initiates context cchange
On Focus 3.2.1 (A)
Auto completing input field auto selects focused element
Labels or Instructions 3.3.2 (A)
Pflichtfelder marked "*" but not explanation is present
Labels or Instructions 3.3.2 (A)
Form input IMEI-Nummer requires specific format
Labels or Instructions 3.3.2 (A)
Radio button group is not using semantic grouping
Error Suggestion 3.3.3 (AA)
Error suggestions messing on form inputs "Handyankauf"
Error Prevention (Legal, Financial, Data) 3.3.4 (AA)
No error prevention on Handyankauf form
Redundant Entry 3.3.7 (A)
Duplicate entry of data is required
Name, Role, Value 4.1.2 (A)
Interactive element does not use correct semantic HTML
Name, Role, Value 4.1.2 (A)
Interactive element does not use correct semantic HTML
Name, Role, Value 4.1.2 (A)
Interactive element uses non-semantic HTML
Name, Role, Value 4.1.2 (A)
Multiple main landmarks found
Unrelated to Success Criteria / Best Practice
Handyankauf form step has no way to go "back"
Observation Details

When dynamically added content can be activated by the user, correct focus order must be ensured. This includes:

  • Opening a dialog window

  • Expanding an accordion item

  • Dynamically loading more content (e.g. more products in a product list) via "Load more" button

Adding and removing dynamic content must not remove focus from the triggering element. E.g. a footnote or info icon opening (adding) a dialog window. When the dialog window is closed (removed) again, focus must be on the triggering element.

Remediation Notes

Ensure, for all dynamically added content that can be activated by user,

  • focus cannot be set to focusable elements inside content, before content is being visually added (e.g. collapsed accordion items, or not yet opened dialog windows)

  • dynamic content should be placed directly below the triggering element in the DOM order

  • Opening e.g. a dialog window, will set the focus on the first focusable element inside the dialog window

  • Activating a "Load more" button must ensure, focus, after content is loaded, either

    • is set to the first focusable element of newly loaded content or

    • is set to the first preceding focusable element of newly loaded content.

Ensure, for all dynamically added and then removed content that can be activated by user,

  • keyboard focus

    • remains (e.g. collapsing/expanding accordion items) on the triggering element or

    • is set to (e.g. opening and closing a dialog window) the triggering element again.

Priority: Critical Medium Page: iPhone Erleben Observation Permalink
Accompanying Files
Observation Details

Focusable elements must have a visually distinct focus state. Moving keyboard focus to a focusable element must clearly identify the element as being focused. If this is not the case, sighted users of keyboard navigation will have difficulties navigating a page. Especially when multiple focusable elements do not show visible focus indicators, properly navigating the page may become impossible.

Elements in "Handyankauf" form:

  • "In welchem Zustand ist Ihr..." Radio buttons

Remediation Notes

Ensure, all focusable elements have a visible focus indicator.

  • The focus indicator should ideally be clearly visible

  • The focus indicator should not solely rely on change of color (see 1.4.1 Use of Color)

  • The focus indicator should not create contrast issues of focused text content (see 1.4.3 Contrast (Minimum))

  • The browser's native focus indicator can be used if it itself passes contrast minimum requirements to the element's background (see 1.4.11 Non-text Contrast).

Observation Details

Open dialog windows can obscure focus of underlying interactive elements. Obscuring can be partial or complete. This will impact users of keyboard navigation as focus cannot be tracked while a dialog window is open. Dialog windows may be triggered by:

  • Footnotes

  • Info Icons

  • Buttons

Remediation Notes

When opened,

  • dialog windows must receive keyboard focus and

  • keyboard focus must be trapped inside the dialog window.

Ensuring placed and trapped keyboard focus to the opened dialog window will remediate this issue, as no interactive element outside of the opened dialog window should be focusable, thus cannot be focus obscured.

For more information about technical requirements of modal dialogs, refer to BFIT-Bund Handreichung "Accessible design of user interface elements – Modal Dialog". Also, consider/evaluate use of HTML dialog element <dialgo>. See HTML specifications – The dialog element and Can I Use – Dialog for browser support information.

Priority: Critical Medium Page: iPhone Erleben Observation Permalink
Observation Details

When (non-native) functionality relies on non-single pointer gestures, like swiping sliders, table columns, or opening sidebars by swipe, these must also have a single pointer variant accessible. The situation may occur, when changing to smaller viewports and the component in question is set to not use native overflow methods and to not reflow.

Users, not able to use complex pointer gestures, will not be able to access the elements in question and most likely will have difficulties to access information that is overflowing the viewport.

The page uses carousels for all major content cards on smaller viewports, not implementing pagination/navigation buttons to navigate by single pointer.

Remediation Notes

Ideally, elements overflowing the viewport would reflow instead. This way, the elements can rely on the user-agents functionality, and additional functionality must not be implemented. Another option would be to allow native overflow with scroll. If not using native methods to address these. If no native method is used:

Ensure, no functionality solely relies on complex pointer gestures. E.g. when using swiping functionality to navigate through slider items or table columns, ensure additionally adding accessible single pointer methods with equal functionality.

  • Sliders should use navigation (e.g. left/right arrow) or buttons

  • Responsive table columns should use navigation (e.g. left/right arrow) or buttons

Accompanying Files
Observation Details

Interactive elements, like links, buttons, inputs, must have a label that is visible at all times and an accessible name that is programmatically determinable. The visible label of interactive elements must be equal to, or part of the accessible name.

If the accessible name is changed programmatically to differ from the natively set name, the visible label must be part of it in the exact wording. If the accessible name is changed, ideally, the visible label is the first part of the accessible name.

Assistive technology like voice control software uses the accessible name to control interactive elements. By stating the accessible name, the interactive element can be activated. So to activate a button, labeled "Submit", a user of voice control software can say "Click button Submit". If the accessible name of the button has been changed to "Send Form", the user is not able to access the button this way. If the accessible name of the button has been changed to "Submit Form", the name differs from the visible label but still includes the visible name as first part, making it still accessible to voice control software.

Mismatch of text content and accessible name:

  • "Mehr erfahren" has accessible name "Entdecken Sie die innovative Mobilfunktechnologie"

  • "Fragen? Wir helfen auch persönlich." has accessible name "Weiter zum Apple Business Chat"

  • "Mehr erfahren" has accessible name "Erfahre mehr wie wir uns für einen verantwortungsvollen Umgang mit der Umwelt einsetzen"

  • "Jetzt iPhone Modelle vergleichen" has accessible name "iPhone vergleichen: Alle Modelle im Überblick"

  • "iPhone Vergleich" has accessible name "Zum iPhone Vergleich"

  • "Smartphone-Tarif" has accessible name "Zu unseren Smartphone-Tarifen"

  • "Prepaid-Tarife" has accessible name "Zu unseren Prepaid-Tarifen"

  • "monatlich kündbaren Handyverträge" has accessible name "Wechselassistent für Smartphones"

  • "Handyvergleich" has accessible name "Zu unserem Handyvergleich"

  • "iPad" has accessible name "Alle iPads bei der Telekom entdecken"

title attribute on link:

  • "Wo finde ich die Angaben?" uses title attribute that duplicates accessible name

  • "Zurück" uses title attribute that duplicates accessible name

Cards show button style link; mismatch of text content and accessible name:

  • "iPhone 'Zum Angebot'" have accessible names "Zum iPhone X Angebot"

Remediation Notes

Ensure visible text labels match the accessible name. If not, the visible label must be the first part of the accessible name ("more info" → "more info about X").


The title attribute is not a way to give an accessible name. It is to provide additional information that is not important, thus there is rarely a reason to use it on links.



Given the following example of heading and CTA of a product card:

<h2 id="heading-product-x">Product X</h2>
<a id="link-product-x" href="#">Zum Angebot</a>

Whenever possible, use native accessible names for interactive elements and do not overwrite them. E.g. links and button will use their contents as the accessible name. Overwriting them with ARIA methods most like is not necessary, as the element's contents can be changed to reflect the wanted or needed accessible name.

<h2 id="heading-product-x">Product X</h2>
<a id="link-product-x" href="#">Zum product X Angebot</a>

If this is not possible, ARIA can be used to enrich an element's accessible name for users of assistive technology. Using ARIA in an accessible way will introduce code complexity, as shown below, so the native way of changing the visible label is most always preferred. See also W3C WAI – First Rule of ARIA Use.

As this method is especially used for users of assistive technology, it is important to use it accessibly as well, by keeping the exact wording of the visible label in place and use it as the first part of the accessible name.

<h2 id="heading-product-x">Product X</h2>
<a id="link-product-x" aria-labelledby="link-product-x link-product-x-about heading-product-x" href="#">
  Zum Angebot <span class="visually-hidden" id="link-product-x-about">für das</span>
</a>

This will result in visible label being "Zum Angebot" and accessible name being "Zum Angebot für das Product X", using "für das" from the visually hidden <span> and "Product X" from the already existing, visible heading <h2>.

Dynamically building web applications, aria-label often is used to enrich an element's accessible name by implicitly using existing visible content as opposed to explicitly use it with aria-labelledby.

<h2 id="heading-product-x">Product X</h2>
<a id="link-product-x" aria-label="Zum Angebot für das Product X" href="#">Zum Angebot</a>

This method, while not a failure per se, can introduce other issues. While this reduces complexity as opposed to aria-labelledby, and will result in an accessible name that passes this success criterion, aria-label may be overwritten by aria-labelledby at any time.

When using existing content anyways, ensure using aria-labelledby to do so.

Priority: Critical Medium Page: iPhone Erleben Observation Permalink
Observation Details

Focusing the tabs "Bereit für ein neues iPhone?" & "Bereit für den Wechsel zum iPhone?" by assistive technology will automatically select the tab. This results in behavior, that the first tab can be selected by assistive technology but moving to the main content is not possible, as navigating through the page will automatically select the second tab.

Remediation Notes

Ensure, selecting tab by assistive technology like screen reader is done by clicking the button instead of focusing it.

Priority: Serious Unknown Page: iPhone Erleben Observation Permalink
Observation Details

Observations on input field "Modell, z. B. Apple iPhone 11":

  • Moving screen reader focus to input field announces editable text field.

  • Entering character shows list.

  • The first item in list is automatically selected.

    • This traps focus of screen reader in the list box.

    • Entering next character will auto select first item.

    • Selection is possible via ARROW UP / DOWN

Remediation Notes

Ensure full accessibility of interactive elements for assistive technology. The use of native semantic HTML elements is important to ensure proper functionality and operability.

Accompanying Files
Observation Details

Handyankauf form marks (some) "Pflichtfelder" with "*". But there is not explanation present.

  • Step 1: Modell is Pflichtfeld but not marked

  • Step 6

    • Anrede is Pflichtfeld but not marked

    • Checkboxes are Pflichtfeld but not marked

Remediation Notes
  • Ensure, the logic of mandatory and optional fields is explained prior to the form inputs.

  • Ensure, all Pflichtfelder use the "*" consistently

Observation Details

IMEI-Nummer form input requires "15-stellig" which is part of visible label. It also requires the input without spaces, which is not part of the visible label.

Remediation Notes

Ensure, all known requirements for input formats are mentioned.

Observation Details

Radio button groups in "In welchem Zustand ist Ihr X?" in Handyankauf form step 3 do label each individual radio button by visible text content. The radio button group however does not have appropriate label linked to the inputs.

Remediation Notes

Consider use of semantic grouping of radio buttons by using fieldset and legend. For an example, look at the following code snippet from GOV.UK Design System – Radios:

<div class="govuk-form-group">
  <fieldset class="govuk-fieldset">
    <legend class="govuk-fieldset__legend govuk-fieldset__legend--l">
      <h1 class="govuk-fieldset__heading">
        Where do you live?
      </h1>
    </legend>
    <div class="govuk-radios" data-module="govuk-radios">
      <div class="govuk-radios__item">
        <input class="govuk-radios__input" id="whereDoYouLive" name="whereDoYouLive" type="radio" value="england">
        <label class="govuk-label govuk-radios__label" for="whereDoYouLive">
          England
        </label>
      </div>
      <div class="govuk-radios__item">
        <input class="govuk-radios__input" id="whereDoYouLive-2" name="whereDoYouLive" type="radio" value="scotland">
        <label class="govuk-label govuk-radios__label" for="whereDoYouLive-2">
          Scotland
        </label>
      </div>
      <div class="govuk-radios__item">
        <input class="govuk-radios__input" id="whereDoYouLive-3" name="whereDoYouLive" type="radio" value="wales">
        <label class="govuk-label govuk-radios__label" for="whereDoYouLive-3">
          Wales
        </label>
      </div>
      <div class="govuk-radios__item">
        <input class="govuk-radios__input" id="whereDoYouLive-4" name="whereDoYouLive" type="radio" value="northern-ireland">
        <label class="govuk-label govuk-radios__label" for="whereDoYouLive-4">
          Northern Ireland
        </label>
      </div>
    </div>
  </fieldset>
</div>
Accompanying Files
Observation Details

Handyankauf form input throws errors but known suggestions are not made.

  • Step 2: "IMEI ungültig" does not hint to specific format requirements (e.g. number of characters, as shown in label, omitting spaces, etc.)

  • Step 5: "Code/IMEI-Nummer ungültig." does not suggest Code/IMEI format requirements (compared to e.g. step 2)

  • Step 5: "Achten Sie genau auf die Buchstaben oder Nummern." is not accurate wording for input of IMEI number

  • Step 6:

    • "Der Vorname ist ungültig."

    • "Der Nachname ist ungültig."

    • "Die IBAN ist ungültig"

Remediation Notes

Ensure, all known error suggestions are displayed in error message or visible label.

Especially when arbitrary requirements are implemented (length minimum on "Vorname" and "Nachname"), display the requirements in the error message. Side note: setting these arbitrary requirements will exclude people.

Priority: Critical Medium Page: iPhone Erleben Observation Permalink
Observation Details

Handyankauf form does not implement error prevention. At least one of the following must be true for submitting data:

  • Reversible – Submissions are reversible.

  • Checked – Data entered by the user is checked for input errors and the user is provided an opportunity to correct them.

  • Confirmed – A mechanism is available for reviewing, confirming, and correcting information before finalizing the submission.

Remediation Notes

Ensure at least one of the mechanisms is implemented. A confirmation screen with summary of entered data and a possibility to correct information is ideal for the use-case.

Observation Details

The "Handyankauf" form provides two steps for entering a device IMEI. The IMEI is not auto-populated to the second occurrence.

Remediation Notes

Ensure, all data that is required to be entered multiple times, is auto-populated. Ideally, no data needs to be entered multiple times, or the user should be able to choose auto-population vs. manual entry.

Observation Details

Form inputs in "Handyankauf" form Step 6 do not use appropriate autocomplete values.

  • "PLZ" → "new-password"

  • "Ort" → "new-password"

  • "Straße" → "new-password"

  • "Hausnr." → "new-password"

Some form inputs have autocomplete="off"

  • (Anrede) – not using semantic HTML input element

  • "Vorname"

  • "Nachname"

  • "E-Mail Adresse"

  • "IBAN"

Remediation Notes

Ensure, all form inputs, requiring user specific data input, turn on autocomplete functionality and set the autocomplete attribute to the appropriate values.

Refer to WCAG "Input Purposes for User Interface Components":

  • (Anrede): honorific-prefix

  • Vorname: given-name

  • Nachname: family-name

  • Straße: address-line1 (evaluate use of street-address for Straße & Hausnr.)

  • Hausnr.: address-line2 (evaluate use of street-address for Straße & Hausnr.)

  • PLZ: postal-code

  • Ort: address-level2

  • E-Mail-Adresse: email

  • IBAN: cc-number

Priority: Best Practice Low Page: iPhone Erleben Observation Permalink
Observation Details

Input form "Handyankauf" has no "Zurück" button on

  • step 6 as opposed to all previous steps. As data, entered to the form, is not saved, and the only way to go back from step 6 is to reload the page, all entered data will be erased. By ensuring, users can navigate all steps back and forth, ideally also being able to jump to specific steps, users will have an easier time, navigating the multi-step form.

  • step 3 when choosing "wrong" radio buttons. When choice of radio buttons will terminate the form process, those radio buttons should be separated from the others. When 3 of 4 radio buttons are required to be marked as "YES", this information should be available to the user beforehand. Information like "Wir können Ihr Gerät nur ankaufen, wenn es keine der folgenden Schäden hat" is important to know in advance and is better suited to be displayed as a type="checkbox", where the user can confirm all 3 items ("Ich versichere, dass mein Handy funktionsfähig ist – 1. Das Handy lässt sich einschalten, bleibt mindestens 45 Sekunden lang eingeschaltet und lässt sich aufladen [✔︎], ...") Then adding the last "optional" question that determines the Ankaufs value, could remain a radio button group to differentiate from the mandatory "YES" questions.

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.

Priority: Serious Medium Page: iPhone Erleben Observation Permalink
Accompanying Files
Observation Details

Elements that are visually hidden should not receive keyboard focus.

See links "Gerät ändern", "Wie wird der Wrt berechnet", "Weitere Informationen"

Remediation Notes

Ensure, visually hidden elements cannot receive keyboard focus.

Especially elements in collapsed accordion items, non-active tabs, and un-opened dialog windows should not receive keyboard focus.

If they can receive keyboard focus, the elements must be made clearly visible on receiving keyboard focus. This is a common method to hide skip links and un-hide them on keyboard focus, using e.g. a CSS class visually-hidden with selector .visually-hidden:not(:focus):not(:active).

Accompanying Files
Observation Details

Images that are not purely decorative, must have a purpose equivalent text alternative set, to be accessible if the image cannot be visually perceived. A prime example is a blind screen reader user. But also if an image cannot be loaded due to network issues, the text alternative ensures perception of the conveyed information.

Images with non-equivalent text alternative and observations:

  • Main stage image

    • missing text alternative

  • iPhone das ein Bild von einer schönen Rosa macht

    • User takes photo

    • There is no Rose on the photo

    • Typo in "Rosa"

  • Grüner Batterie Icon

    • Typo in "Grüner"

    • Arguably decorative image

  • Telekom Logo mit 5G daneben stehen

    • Arguably decorative image

    • If not decorative, wording could be "Telekom 5G Logo"

  • Blaues FaceID Icon

    • Description of color only important if icon is known

    • Arguably decorative, since Face ID is already mentioned twice

  • Ein iPhone das

    • Missing parts of text alternative

  • Das Icon von der Foto App von Apple

    • Text alternative, if used in alt attribute should rather be concise than using complete sentences; "Apple Foto Icon" would be enough

    • Arguably decorative

  • Apple setzt sich ein für recycelte Materialien

    • Image has text content but text content is not part of text alternative

    • Text alternative is full duplicate of already existing, visible text content

  • Mädchen das mit ihrem Gelben iPhone auf der Wiese liegt

    • "Mädchen" arguably wrong

    • "Gelbes iPhone" not visible

    • "liegt auf Wiese" not part of image

  • Green Magenta logo

    • Mentioning the logo isn't adding any information; if image is not decorative, added information would be a description (e.g. likes of "Hashtag Green Magenta mit einer Sammlung an grünen Blättern")

  • iPhone von von der seite

    • Two devices shows, color not mentioned

    • "iPhone 16 Pro" is text content but not mentioned

    • Typo "von von"

    • Typo "seite" → "Seite"

Remediation Notes

Ensure purpose equivalent text alternatives are present for every non-decorative image. Depending on the purpose, the text alternative may be describing the contents of an image or the functionality it serves (e.g. as a link to a specific page).

Accompanying Files
Observation Details

The HTML image element must always use have alt attribute present. Either

  • null alt attribute for purely decorative or

  • non-null alt attribute for informative/functional images.

Image elements missing alt attribute:

  • Main stage image embedded as background image

Remediation Notes

As background images cannot use alt attributes another method to display text alternative must be used. This can be done with properly visually (display: none will still fail this criterion) hidden text at the same position in DOM order.


Ideally, embed image with HTML image element instead of as background image.

Ensure, all HTML image elements properly set the alt attribute. Depending on the purpose of the image, choose whether to declare an image decorative, informative, or functional. For more guidance in choosing, refer to the W3C Alt-decision tree.

If the image is

  • purely decorative, set a null alt attribute as follows: <img alt="" />

  • not purely decorative, the alt attribute must not be null

Accompanying Files
Observation Details

CAPTCHAs will always exclude user groups from accessing functionality of a page. Manually entered CAPTCHAs should always be avoided. If CAPTCHA is used, a text alternative must be presented so users of assistive technology can still access the functionality.

Remediation Notes
  • Evaluate use of non-visual CAPTCHA solutions.

  • Embed audio CAPTCHA as non-visual alternative.

Is image element is used:

Ensure, all HTML image elements properly set the alt attribute. Depending on the purpose of the image, choose whether to declare an image decorative, informative, or functional. For more guidance in choosing, refer to the W3C Alt-decision tree.

If the image is

  • purely decorative, set a null alt attribute as follows: <img alt="" />

  • not purely decorative, the alt attribute must not be null

Accompanying Files
Observation Details

"Handyankauf" form has explanation dialog windows in step 3 (triggered by info icon).

Images all use same alt text "Gerät Schäden".

Images that are not purely decorative, must have a purpose equivalent text alternative set, to be accessible if the image cannot be visually perceived. A prime example is a blind screen reader user. But also if an image cannot be loaded due to network issues, the text alternative ensures perception of the conveyed information.

Remediation Notes

Ensure purpose equivalent text alternatives are present for every non-decorative image. Depending on the purpose, the text alternative may be describing the contents of an image or the functionality it serves (e.g. as a link to a specific page).

This means, each image must have a unique text alternative if it is not marked decorative.

Observation Details

Links solely rely on color to be differentiated from other, surrounding text content and color contrast ratio of link text color to surrounding text color does not meet minimum required 3:1 color contrast ratio. Links, relying on color only and with insufficient color contrast ratio to surrounding text content include:

  • "Telekom Netz" link in "Netz" dialog window

Remediation Notes

Ensure, links can be differentiated from surrounding text content by at least one other visually perceivable factor. Preferably use underline to indicate link text as it is browser default and known pattern to users.

Accompanying Files
Observation Details

Focused interactive elements with focus states solely relying on color difference:

  • "Handyankauf" form

    • All/most steps

      • Buttons

        • Weiter

        • Ohne Aktion fortfahren

        • Verbindliche Anfrage abschicken

    • Step 2

      • Close button in dialog window "Wo finde ich die IMEI-Nummer?"

    • Step 3

      • Close button in dialog windows (triggered by info icon)

    • Step 5

      • Close button in dialog window "Wo finde ich die Angaben?"

      • "Prüfen" button

    • Step 6

      • Select / Dropdown "Anrede"

      • Checkboxes

        • Focus state

        • Error state


Focusing interactive element adds visual focus indicator that does solely rely on color to be differentiated from default, un-focused state and color contrast ratio of default and focused states does not meet minimum required 3:1 color contrast ratio. Interactive elements' focus states, relying on color only and with insufficient color contrast ratio to default, un-focused state include:

  • Links

  • Buttons

  • Input elements (e.g. radio buttons)

  • Accordion items

Remediation Notes

Ensure, focus states of interactive elements can be differentiated from default, un-focused states by at least one other visually perceivable factor. The issue may be remediated by ensuring high enough color contrast ratio of 3:1 for difference between states.

Preferably though, use focus outlines to indicate focus state of interactive elements, as it is browser default and known pattern to users.

Observation Details

Links solely rely on color to be differentiated from other, surrounding text content and color contrast ratio of link text color to surrounding text color does not meet minimum required 3:1 color contrast ratio. Links, relying on color only and with insufficient color contrast ratio to surrounding text content include "Handyankauf" form:

  • General

    • Zurück buttons/links

  • Step 2

    • Wo finde ich die IMEI-Nummer?

  • Step 5

    • Wo finde ich die Angaben?

  • Step 6

    • Checkbox links

      • Ankaufsbedingungen

      • Datenschutzbestimmungen

Remediation Notes

Ensure, links can be differentiated from surrounding text content by at least one other visually perceivable factor. Preferably use underline to indicate link text as it is browser default and known pattern to users.

Observation Details

The visually presented heading structure of the page does not match the use of semantic HTML heading elements. The visually presented structure is as follows:

h1 Wir bringen zusammen, was zusammengehört
  h2 iPhone mit der Telekom: Momente perfekt festhalten. Und superschnell teilen.
    h3 Fortschrittliche Kamera – Das iPhone macht unglaubliche Fotos und Videos.
    h3 Batterie – Eine Batterie, die den ganzen Tag mithält.
    h3 Auflösung – Retina HD Display. Scharf und hell, mit fantastischen Farben.
    h3 Leistung – Die volle Power ultraschneller Chips.
    h3 5G Netz – Mit mehr Speed aufs nächste Level.
  h2 Finden Sie jetzt Ihr neues iPhone bei der Telekom
    h3 iPhone 16 Pro Max. Übernimm die Kamerasteuerung.
    h3 ...
  h2 Ein ganzes Netzwerk eingebauter Sicherheits­features.
    h3 App Tracking Transparenz – Ohne Erlaubnis dürfen Apps keine Aktivitäten tracken.
    h3 Face ID – Face ID funktioniert ohne ein Selfie zu speichern.
    h3 Mehr Sicherheit mit 5G – Bewahren Sie Ihre persönlichen Daten sicher auf, wo immer Sie sind.
    h3 Fotos – Selbst entscheiden, wer was auf der Fotos App sehen kann.
  h2 Einfach das iPhone bei der Telekom finden, das am besten passt
    h3 Apple iPhone 16
    h3 Apple iPhone 16 Pro
    h3 Apple iPhone 16 Plus
    h3 Apple iPhone 16 Pro Max
  h2 Immer in Verbindung. Und besser für die Umwelt.
    h3 Rohstoffe – Apple setzt sich ein für 100% recycelte oder erneuerbare Materialien.
    h3 Erneuerbare Energien – Telekom 5G läuft zu 100 % mit erneuerbaren Energien.
    h3 Green Magenta – Grüne und nachhaltige Produkte und Initiativen.
    h3 Langlebigkeit – Für alle, die ein Smartphone wollen, das lange hält – das iPhone.
    h3 Handyankauf
      h4 Welches Smartphone wollen Sie verkaufen?
      h4 IMEI-Nummer Ihres ...
      h4 In welchem Zustand ist Ihr ...
      h4 Leider können wir Ihr Smartphone nicht ankaufen
      h4 Zusammenfassung
      h4 Jetzt Ankaufsbonus erhalten
      h4 Ankaufsanfrage abschließen
        h5 Ihre Kontaktdaten
        h5 Ihre Kontodaten
        h5 Ankaufsanfrage
    h3 Die iPhone Modelle entdecken – Welches iPhone ist das richtige?
  h2 Häufig gestellte Fragen zum iPhone bei der Telekom
    h3 Was kostet ein iPhone bei Vertragsverlängerung bei der Telekom?
    h3 Wie kann ich auf ein neueres iPhone Modell bei der Telekom wechseln?
    h3 Welcher SIM-Kartentyp der Telekom passt in das neueste iPhone?
    h3 Kann ich mein altes iPhone bei der Telekom in Zahlung geben?

The programmatically determinable heading structure, using HTML heading elements is as follows:

h1 iPhone mit der Telekom: Momente perfekt festhalten. Und superschnell teilen.
  h2 Das iPhone macht unglaubliche Fotos und Videos.
  h2 Eine Batterie, die den ganzen Tag mithält.
  h2 Retina HD Display. Scharf und hell, mit fantastischen Farben.
  h2 Die volle Power ultraschneller Chips.
  h2 Mit mehr Speed aufs nächste Level.
  h2 Finden Sie jetzt Ihr neues iPhone bei der Telekom
    h3 iPhone 16 Pro Max. Übernimm die Kamerasteuerung.
  h2 Ein ganzes Netzwerk eingebauter Sicherheits­features.
    h3 Ohne Erlaubnis dürfen Apps keine Aktivitäten tracken.
    h3 Face ID funktioniert ohne ein Selfie zu speichern.
    h3 Bewahren Sie Ihre persönlichen Daten sicher auf, wo immer Sie sind.
    h3 Selbst entscheiden, wer was auf der Fotos App sehen kann.
  h2 Einfach das iPhone bei der Telekom finden, das am besten passt
  h2 Immer in Verbindung. Und besser für die Umwelt.
    h3 Telekom 5G läuft zu 100 % mit erneuerbaren Energien.
    h3 Grüne und nachhaltige Produkte und Initiativen.
    h3 Für alle, die ein Smartphone wollen, das lange hält – das iPhone.



  <!-- HANDYANKAUF FORM WITH STEPS -->

  h2 Handyankauf

  h2 Welches Smartphonewollen Sie verkaufen?
    h3 Geben Sie den Namen Ihres Smartphones ein und wählen Sie es aus der Liste aus.

  h2 IMEI-Nummer Ihres ... für Ihren Ankauf
      h4 Basierend auf Ihrer Auswahl haben wir einen geschätzten Ankaufswert ermittelt: ... €  Für die genaue Preisermittlung und den Ankauf Ihres Geräts benötigen wir zusätzlich die IMEI-Nummer Ihres Smartphones.
  
  h2 In welchem Zustand ist Ihr ...?
      h4 Bitte beantworten Sie vier kurze Fragen, damit wir ermitteln können, ob wir Ihr Gerät ankaufen und um Ihnen ein vorläufiges Angebot machen zu können.
      h4 Lässt sich das Handy einschalten?
      h4 Ist das Handy frei von erheblichen Schäden und/oder sichtbaren Flüssigkeitsschäden?
      h4 Verfügt das Handy über ein funktionstüchtiges Display, das keine Risse oder andere Schäden aufweist?
      h4 Ist die Rückseite des Handys intakt und frei von Rissen?
  
  (h2 Leider können wir Ihr Smartphone nicht ankaufen)
  h2 Zusammenfassung
      h4 Basierend auf Ihren Angaben erhalten Sie für Ihr... bis zu:

  h2 Jetzt Ankaufsbonus erhalten
      h4 Wenn Sie ein Neugerät gekauft haben, für das die Telekom einen Ankaufsbonus bietet, geben Sie die IMEI des erworbenen Neugerätes ein. Oder tippen Sie hier einen Aktionscode ein.

  h2 Ankaufsanfrage abschließen
      h4 Die Gesamtsumme für Ihr ... (ggf. mit einem Ankaufsbonus) beträgt bis zu:
      h4 Um Ihre Anfrage für den Ankauf Ihres ... abzuschließen, benötigen wir Ihre persönlichen Daten (bitte keine Packstation als Absender verwenden). Bitte nennen Sie uns zudem noch das Bankkonto, auf das wir den Ankaufswert und ggf. Ankaufsbonus nach erfolgreicher Prüfung Ihres Gerätes überweisen können.
    h3 Ihre Kontaktdaten
    h3 Ihre Kontodaten
    h3 Ankaufsanfrage
     h4 Bitte senden Sie uns Ihr ... innerhalb von 21 Tagen zu. Sobald dieses in unserem Logistikzentrum eingetroffen ist und der Zustand des Gerätes den Angaben entspricht, kontaktieren wir Sie mit dem ermittelten Ankaufspreis von bis zu ... € und schließen den Ankauf ab.

  <!-- END OF FORM -->



  h2 Häufig gestellte Fragen zum iPhone bei der Telekom
    h3 Was kostet ein iPhone bei Vertragsverlängerung bei der Telekom?
    h3 Wie kann ich auf ein neueres iPhone Modell bei der Telekom wechseln?
    h3 Welcher SIM-Kartentyp der Telekom passt in das neueste iPhone?
    h3 Kann ich mein altes iPhone bei der Telekom in Zahlung geben?
Remediation Notes
  • No heading levels must be skipped

  • No non-heading content must use heading elements

  • All heading content must use heading elements

  • Proper grouping of content into heading sections is mandatory


Ensure, visually presented heading structure matches programmatically determinable heading structure by only using HTML heading elements for heading content and using HTML heading elements for all heading content.

Side note: This criterion does not specifically look at proper heading content (i.e. wordings, usefulness of headings). See 2.4.6 Headings and Labels for this.

Priority: Best Practice Low Page: iPhone Erleben Observation Permalink
Accompanying Files
Observation Details

While disabled interactive elements do not have to adhere to same contrast requirements as enabled elements, text content still should use proper color contrast ratio.

Given that this usually is not too easy to manage with existing design system guidelines, it should be evaluated to remove disabled form elements completely. Especially if they will not be editable anyways.

Accompanying Files
Observation Details

Multiple (nested) main elements found. Ensure only a single main landmark is used per page.

Accompanying Files
Observation Details

Text content in certain containers may overflow the container's boundaries, when text spacings are changed, making some text harder, other text impossible to perceive. This often includes:

  • Stage areas

  • Badges

  • Manually outlined elements like buttons (e.g. footnote icon buttons)

  • Teasers

  • Card components

Remediation Notes

Container elements must not use fixed dimensions, if they contain text content, to allow proper reflow without obscuring / overlapping content. Changing text spacings to values

  • Line height (line spacing) to at least 1.5 times the font size;

  • Spacing following paragraphs to at least 2 times the font size;

  • Letter spacing (tracking) to at least 0.12 times the font size;

  • Word spacing to at least 0.16 times the font size.

must be possible and must not lead to any loss of content or functionality.

Accompanying Files
Observation Details

"Handyankauf" form step headings use control characters for line breaks.

<h2 class="...">
  "IMEI-Nummer "
  "Ihres"
  "iPhone 11"
  " mit "
  "128"
  "GB "
  " für Ihren Ankauf "
</h2>

Character codes are 000D, Carriage Return, \r & 000A, Line Feed, \n.

A screen reader announces this as follows:

Heading
IMEI-Nummer Ihres iPhone 11 mit 128GB für Ihren Ankauf
8 Items
You are currently on a Heading level 2
IMEI-Nummer, level 1
Ihres, level 1
Leerzeichen, level 1
iPhone 11, level 1
mit, level 1
128, level 1
GB, level 1
für Ihren Ankauf, level 1
End of Heading Level 2

Subsequent heading levels (e.g. right now the whole body copy text below this heading level 2 in step 2 is a heading with 9 items, including announced space characters) will further worsen the announcements as levels are going deeper.

Remediation Notes

Ensure no special control characters are used in text content. Paragraphs must always use <p> elements and manual line breaks must be avoided unless necessary (e.g. in poetry).

Ensure only actual heading content uses heading elements.

Observation Details

When opening a dialog window (e.g. via footnote or info icon), said dialog window does not receive keyboard focus. This leads to multiple issues:

  • The contents of the dialog window are not accessible via keyboard.

  • The dialog window can not be closed by keyboard (easily or at all).

  • While the dialog window is open, keyboard navigation of the underlying page is still possible; the dialog window however blocks the view. (see also 2.4.11 Focus Not Obscured (Minimum))

  • Since keyboard navigation stays possible, opening multiple dialog windows above each other also is possible.

Remediation Notes

Opening a dialog window by keyboard navigation must set the focus to the dialog window's content. Opening a dialog window must trap keyboard focus inside the dialog window, so underlying content cannot be accessed while dialog window is opened. Closing the dialog window, focus must be set to the triggering element again.

Ideally, the first focusable element in a dialog window can be used to close the dialog window, so opening and closing of a dialog window can be done without the need of navigating through other focusable elements. Although simple dialog windows, e.g. asking for confirmation, and providing "Accept" and "Cancel" buttons, might not have an explicit "Close" button and may set focus to the dialog window's "main purpose action" instead.

Observation Details
  • CAPTCHA reload icon button not operable by keyboard

    • Button uses non-semantic <span>

    • Button is hidden by using aria-hidden="true"

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

Ensure no interactive element that must be accessible is hidden from assistive technology by method of aria-hidden="true" or any other method for that matter.

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

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.

Priority: Best Practice Low Page: iPhone Erleben Observation Permalink
Observation Details

"Question tiles" / cards in Handyankauf form step 3 ("Lässt sich das Handy einschalten?", etc.) use radio buttons for "yes" an "no" values. The radio buttons are not grouped by <fieldset>. While this is no strict failure on its own, it only works accurately, when heading structure and structured content of the card is presented and programmatically determinable in a way so that the context always is clear.

The code syntax is as follows:

<div class="...">
  <div class="">
    <div class="...">
      <h4 class="">Lässt sich das Handy einschalten?</h4>
      <span class="..." aria-hidden="true">
        <svg>...</svg>
      </span>
    </div>
    <ul class="...">
      <li class="...">
        <span class="">Das Handy lässt sich einschalten.</span>
      </li>
      <li class="...">
        <span class="">Es bleibt mindestens 45 Sekunden lang eingeschaltet.</span>
      </li>
      <li class="...">
        <span class="">Es lässt sich aufladen.</span>
      </li>
    </ul>
    <div class="...">
      <div>
        <input type="radio" id="POWERON_YES" name="1_POWER_ON_WCTI" value="POWERON_YES">
        <label for="POWERON_YES" class="">Ja, lässt sich einschalten</label>
      </div>
      <div>
        <input type="radio" id="POWERON_NO" name="1_POWER_ON_WCTI" value="POWERON_NO">
        <label for="POWERON_NO" class="">Nein</label>
      </div>
    </div>
  </div>
</div>

Observations:

  • No <fieldset> used to group radio buttons

  • While each radio button has a label, provided by for="..." and id="..." attributes, the radio button group does not have a label programmatically attached (e.g. via <legend>

  • The list contains "features" or "functionality states" of the device in question, but the list is introduced by heading "Lässt sich das Handy einschalten?"; wording can be improved

Remediation Notes

It is recommended to group radio buttons in a <fieldset> element and label the radio button group by use of <legend>. Example setup:

<h2>Handyankauf</h2>
<div>
  <h3>Zustand des Handys</h3>
  <p>Um zu prüfen, ob Ihr Handy für den Ankauf geeignet ist, müssen wir ermitteln, in welchem Zustand sich das Handy befindet.</p>
  
  <form>
    <h3>Funktionsfähigkeit des Handys</h3>
    <p id="required-poweron">Diese Frage muss mit "Ja" beantwortet werden, damit Ihr Handy für den Ankauf in Frage kommt.</p>
    <ul>
      <li id="hint-poweron">Handy lässt sich einschalten</li>
      <li id="hint-poweron-stay">Handy bleibt mindestens 45 Sekunden an</li>
      <li id="hint-poweron-charge">Handy lässt sich aufladen</li>
    </ul>

    <fieldset aria-describedby="hint-poweron hint-poweron-stay hint-poweron-charge required-poweron">
      <legend>
        Lässt sich das Handy einschalten?
      </legend>
      <div>
        <div>
          <input id="..." name="..." type="radio" value="...">
          <label for="...">
            Ja
          </label>
        </div>
        <div>
          <input id="..." name="..." type="radio" value="...">
          <label for="...">
            Nein
          </label>
        </div>
      </div>
    </fieldset>

    <h3>Schäden am Handy</h3>
    <p id="required-damage">Diese Frage muss mit "Ja" beantwortet werden, damit Ihr Handy für den Ankauf in Frage kommt.</p>
    <ul>
      <li id="hint-damage-display">Gehäuse und Bildschirm sind nicht zertrümmert oder verbogen</li>
      <li id="hint-damage-custom">Gehäuse nicht verändert und frei von Gravuren oder anderen Personalisierungen</li>
      <li id="hint-damage-liquid">Keine sichtbaren Schäden durch Flüssigkeit oder Feuchtigkeit</li>
    </ul>

    <fieldset aria-describedby="hint-damage-display hint-damage-custom hint-damage-liquid required-damage">
      <legend>
        Ist das Handy frei von erheblichen Schäden und sichtbaren Flüssigkeitsschäden?
      </legend>
      <div>
        <div>
          <input id="..." name="..." type="radio" value="...">
          <label for="...">
            Ja
          </label>
        </div>
        <div>
          <input id="..." name="..." type="radio" value="...">
          <label for="...">
            Nein
          </label>
        </div>
      </div>
    </fieldset>

    ...

  </form>
</div>

This setup follows the practice to:

  1. Introduce overall form purpose

  2. Introduce each question's purpose

  3. Provide important information like "required to be TRUE"

  4. Group radio buttons in fieldset elements

  5. Properly label radio button groups and each individual radio button

  6. Programmatically connect labels, inputs, fieldsets, input hints

Observation Details

What arguably is list content:

  • Das iPhone macht unglaubliche Fotos und Videos.

  • Eine Batterie, die den ganzen Tag mithält.

  • Retina HD Display. Scharf und hell, mit fantastischen Farben.

  • Die volle Power ultraschneller Chips.

  • Mit mehr Speed aufs nächste Level.

and

  • Ohne Erlaubnis dürfen Apps keine Aktivitäten tracken.

  • Face ID funktioniert ohne ein Selfie zu speichern.

  • Bewahren Sie Ihre persönlichen Daten sicher auf, wo immer Sie sind.

  • Selbst entscheiden, wer was auf der Fotos App sehen kann.

and

  • Telekom 5G läuft zu 100 % mit erneuerbaren Energien.

  • Grüne und nachhaltige Produkte und Initiativen.

  • Für alle, die ein Smartphone wollen, das lange hält – das iPhone.

is using heading elements instead.

Remediation Notes

Use semantic list for all list content. When a heading element provides all information on its own and does not introduce any more content, it is likely to be list content instead. Given the page structure, there are lots of "cards" that only have a heading element.

Ensure readability by grouping these cards under accurate heading elements and remove unused heading elements on the cards themselves.

A structure could look like:

  h2 iPhone mit der Telekom. Die wichtigsten Funktionen im Überblick
    ul
      li Fortschrittliche Kameras – Das iPhone macht unglaubliche Fotos und Videos.
      li Batterie – Eine Batterie, die den ganzen Tag mithält.
      ...
  h2 Ein ganzes Netzwerk eingebauter Sicherheitsfeatures
    ul
      li App Tracking Transparenz – Ohne Erlaubnis dürfen Apps keine Aktivitäten tracken.
      ... 
  h2 Immer in Verbindung und dabei besser für die Umwelt
    ul
      li Rohstoffe – Apple setzt sich ein für 100 % recycelte oder erneuerbare Materialien.
      li Erneuerbare Energien – Telekom 5G läuft zu 100 % mit erneuerbaren Energien.
      li Green Magenta – Grüne und nachhaltige Produkte und Initiativen.
      li Langlebigkeit – Für alle, die ein Smartphone wollen, das lange hält – das iPhone.
Accompanying Files
Observation Details

List in Handyankauf form does not use semantic HTML list element.

Remediation Notes

Do not use semantic lists for non-list content. But do use semantic list for all list content.

Accompanying Files
Observation Details

The icons in "Zusammenfassung" list are hidden from assistive technology by using aria-hidden="true". The icons however are not decorative. The inform the user about the state of their answers from previous steps. As the icons are hidden, assistive technology announces the list items only.

Remediation Notes

Ensure all non-decorative images use proper text alternatives.

Ideally, the user input is not only displayed visually but reflected in the text content of the list like this:

<h3>Zusammenfassung</h3>
<p>
  Basierend auf Ihren Angaben erhalten Sie für Ihr iPhone 11 mit 128 GB bis zu 
  <span>29&nbsp;€</span>
</p>

<p>Sie haben angegeben, dass</p>
<ul>
  <li>sich Ihr Handy einschalten lässt</li>
  <li>Gehäuse und Bildschirm Ihres Handys nicht zertrümmert oder verbogen sind</li>
  <li>das Display keine Risse hat</li>
  <li>die Glasrückseite Risse aufweist</li>
</ul>

<p>
  Sollten wir nach der Prüfung zu einem anderen Ergebnis...
</p>

Another option would be to split the "YES" and "NO" lists.