Page URL
https://www.telekom.de/content/vip-lieferung

Issues List

Info and Relationships 1.3.1 (A)
Visual presentation of heading structure does not match code markup
Identify Input Purpose 1.3.5 (AA)
Form inputs do not use autocomplete attributes
Use of Color 1.4.1 (A)
Links are indicated by color only
Use of Color 1.4.1 (A)
Input (checkbox) error state indicated by color only
Contrast (Minimum) 1.4.3 (AA)
Input label does not have enough color contrast
Text Spacing 1.4.12 (AA)
"VIP Lieferung" is image instead of text and as such cannot be changed via user preferences
Keyboard 2.1.1 (A)
Interactive element, operable by mouse, not accessible by keyboard
Link Purpose (In Context) 2.4.4 (A)
"Datenschutzhinweise" link starts document download
Headings and Labels 2.4.6 (AA)
No main heading present
Label in Name 2.5.3 (A)
Selection input element uses selection as accessible name
Error Identification 3.3.1 (A)
Input errors not shown in text to user
Labels or Instructions 3.3.2 (A)
"Pflichtfeld" instruction given after form
Labels or Instructions 3.3.2 (A)
"Pflichtfeld" not marked "*"
Error Suggestion 3.3.3 (AA)
Error messages duplicate labels
Redundant Entry 3.3.7 (A)
E-Mail-Adresse wiederholen requires redundant entry
Name, Role, Value 4.1.2 (A)
Input errors are announced while focus is set on other input
Priority: Best Practice Low Page: VIP Lieferung Observation Permalink
Accompanying Files
Observation Details

Changing text spaces does not affect images of text. As such, "VIP Lieferung" image text content is not affected by text space changes in user preferences. This does not to be a failure of criterion 1.4.12 Text Spacing per se and as such is marked Priority 5 – Best Practice in this observation. Ideally, the text is displayed as text content instead of in an image. Arguably, the image might even be considered decorative, as the text content already is present in the main heading.

Remediation Notes

Remediation by setting image decorative via null alt attribute alt="" will be sufficient.

Observation Details

Page uses HTML heading element <h2> but not having a main heading <h1> present. When headings are used for structuring the page content, a main heading should be present.

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 AGB link in "VIP Lieferung" footnote 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.

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 iPhone 16 mit VIP Lieferung
  h2 So einfach geht's
    h3 Ihr Gutscheincode
    h3 Persönliche Daten
    h3 Kontakt
    h3 Ihr favorisiertes iPhone (keine verbindliche Buchung)

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

  h2 So einfach geht's

Observations for heading structure:

  • No main heading used

  • Visually presented headings do not use HTML heading elements

Remediation Notes

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.

Accompanying Files
Observation Details

Note: This observation is not considered a failure of the success criterion 1.4.3 Contrast (Minimum). As the observation still may affect usability and accessibility for certain user groups, it is recommended to follow the observation details and remediation notes.


Text content must meet minimum color contrast ratio of 4.5:1 to its background. Large text (>24px) content must meet minimum color contrast ratio of 3:1 to its background. The following text content does not meet the required minimum contrast ratios:

  • Input labels, when input has error and input is focused, will use color #d90000 on #fceded background, which results in a 4.7:1 color contrast ratio. Given the font size, the line strength of the label at that font size, and the resulting font aliasing, no or very few pixel(s) in the font will actually reach the set color and color contrast ratio as a result.

Remediation Notes

Ensure, all text content is clearly visible, using color contrast ratios of 4.5:1 and higher. For large text content a reduced contrast ratio of 3:1 is acceptable, but not recommended.

Especially color variants that barely meet color contrast ratio requirements for default background colors are subsceptible to fail minimum color contrast ratio, when used on non-default background colors. When a certain color barely meets color contrast ratio on default white background, ensure, this color variant is only used on said background color and provide a different foreground color variant for darker background colors.

Ideally, aim for enhanced contrast ratio 7:1 (see 1.4.6 Contrast (Enhanced) (Level AAA)), to often ensure passing minimum contrast ratio, even on non-default background colors.

Side Note: this success criterion is not specifically about identification of links. When a link would have no underline and its color is the only way to differentiate from surrounding text, it is considered a failure under 1.4.1 Use of Color. This criterion is for all text content.

Observation Details

All for inputs, asking for a user's personal data, must use accurate autocomplete attributes to allow for autocompletion of said user data.

Remediation Notes

Please refer to W3C – Input purposes for a list of all available input purposes. For the given form, the following autocomplete attribute values must be used:

  • Vorname – given-name

  • Nachname – family-name

  • Straße & Hausnummer – address-line1 (if split is necessary, split into address-line1 and address-line2

  • PLZ – postal-code

  • Ort – address-level2

  • E-Mail-Adresse – email

  • E-Mail-Adresse wiederholen – email

Accompanying Files
Observation Details

Selection inputs not operable by keyboard as it does not use semantic HTML selection element:

  • "Modell"

  • "Farbe"

  • "Speicher"

Selection input element can be navigated to and from and opened and closed; a selection however cannot be made by the required input methods ARROW UP / DOWN.


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

Please refer to BFIT-Bund Handreichung "Accessible design of user interface elements" and see Dropdown / Selection list for technical requirements.


Ensure, using native, semantic HTML elements for interactive elements and not re-building existing functionality with generic elements like <div> and <span>.

Ensure, choosing the proper elements, depending on purpose (e.g. links, using <a href=""> to link to resources, and <button> to perform actions).

This way, the need for added JavaScript (e.g. on click events / event handlers) and ARIA methodologies is reduced to a minimum, which will ensure clean and simple code and backwards compatibility, will future-proof functionality, and will avoid issues with keyboard navigation or other assistive technology (see also 4.1.2 Name, Role, Value).

Accompanying Files
Observation Details

Selection inputs' ("Modell", "Farbe", "Speicher") accessible name is equal to the selected item. Selecting "Modell iPhone 16" gives the input element the accessible name "iPhone 16", as it uses aria-labelledby="label-dropdown-1". The accessible name of the selection input must be the visible label ("Modell").

Remediation Notes

Ensure the use of semantic HTML elements, correct input and label, a visible label that is used as the input's accessible name.

Observation Details

Input fields with no visible, in-text error message:

  • "Modell" → No error shown

  • "Farbe" → No error shown

  • "Speicher" → No error shown

  • "Datenschutzhinweise" → No text shown

Observation Details

"E-Mail-Adresse" must be entered twice in the form. Redundant entry must be avoided, as it is not essential to the form.

Remediation Notes

Remove the duplicate input field.

Observation Details

Navigating the form by assistive technology, leaving an input field in error state will announce the error to the assistive technology. In the scenario we are

  • moving to the form by assistive technology,

  • moving to the empty "Vorname" input field,

  • leaving it empty and

  • moving to the "Nachname" input field.

The "Vorname" input will error, announcing the error message "Vorname", "Bitte geben Sie Ihren Vornamen ein." – as the focus right now is already set to input "Nachname", but announcement is "Bitte geben Sie Ihren Vornamen ein.", users of assistive technology will inevitable send wrong data via the form.

Remediation Notes

Shift input validation to form submit instead of validating each input field on moving focus to avoid this issue. As the error messages merely duplicate the labels anyways, no value is added by validating and announcing errors right away. Also, as the "Code" input still is validated on submit, all validation can take place then.

Observation Details

Error messages merely duplicate label content ("Vorname" → "Bitte geben Sie Ihren Vornamen ein."). Error messages must inform the user about the error, not about existing information.

Remediation Notes

Instead of repeating label content, explain the actual errors to the user, so the user is helped with solving the issue at hand. This means, using error messages like:

  • "Dieses Feld darf nicht leer sein."

  • "Die E-Mail-Adresse enthält kein @ Symbol"

  • ...

Repetition of label content is not necessary, as the errored input label will still be announced to assistive technology. Repeating label content will only duplicate announcement. Navigating to an errored input via assistive technology will announce the label and the description (error message).

Accompanying Files
Observation Details

Checkbox input "Datenschutzhinweise" error state is solely conveyed by use of color.

Remediation Notes

Ensure, error state is not solely conveyed by use of color. Adding an error icon, outlining the whole input and label could be options to remediate.

Side note: The error must also be presented as text

Observation Details

"Pflichtfeld*" is an instruction to fill out the form but is given after the input fields. The instruction must be places before the first input field that is marked as "Pflichtfeld".

Remediation Notes

Place the instruction at the beginning of the form. Use more explicit wording to enhance user experience: "Pflichtfelder sind mit einem * markiert".

Ideally, all inputs are mandatory inputs anyways, and as this is the case with the form, the instruction may be removed completely. Doing so, however, is only a viable option when all "*" hints are removed with it.

Observation Details
  • "Datenschutzhinweise" checkbox input is not marked "*" as a "Pflichtfeld" but errors while being unchecked.

  • "Modell", "Farbe", "Speicher" selection inputs not marked "*" as "Pflichtfeld"; error state cannot be checked due to missing credentials (Gutscheincode); as the inputs are not marked required in code markup, these can be considered a side note and do not contribute to the failure of the success criterion, as the other observation does

Remediation Notes

Ensure, all inputs, considered "Pflichtfelder" are also marked as such, given the appropriate instruction.

Priority: Moderate Unknown Page: VIP Lieferung Observation Permalink
Observation Details

Link "Datenschutzhinweise" will download a PDF document. PDF documents must be made accessible as well. As PDF documents are out of scope for this audit, the document's accessibility is not evaluated.

As the user experience for all users is the same with this observation, it is not considered a failure under success criterion 2.4.4 Link Purpose (In Context).

Remediation Notes

It is best practice to inform users of the purpose of a link before the link is clicked. In this case, informing about the download of a PDF document would be best practice.

Ideally, the document is opened in the browser instead of being downloaded right away, so the user can decide if downloading the document is necessary and wanted.

Either way, a hint about the click linking to a PDF document instead of a website may be given to the user, e.g. as "Datenschutzhinweise (PDF)".

Side note: the nesting of interactive elements is noted in another observation as well. The link inside the input label will reduce the target area of the input and may lead to mis-clicking. Ideally, the Instructions, including the link to the document / website, is preceding the actual input element. The structure could be based on:

<p id="hint-datenschutzhinweise">... <a href="...">Datenschutzhinweise (PDF)</a> ...</p>
<input type="checkbox" id="input-datenschutzhinweise" aria-describedby="hint-datenschutzhinweise">
<label for="input-datenschutzhinweise">Ich habe die Datenschutzhinweise ...</label>