VoiceOver: Apples Screenreader unter iOS
VoiceOver ist der in iOS eingebaute Screenreader: Er liest vor, was auf dem Bildschirm steht, und macht das iPhone komplett ohne Hinsehen bedienbar, über Gesten, Braillezeilen oder Tastatur. Für dich als Entwickler:in ist VoiceOver doppelt wichtig: Es ist die Hilfstechnologie, mit der blinde Nutzer:innen deine App erleben, und zugleich dein ehrlichstes Testwerkzeug. Diese Seite erklärt das Bedienkonzept, die wichtigsten Gesten, den Rotor und das, was deine App liefern muss, damit VoiceOver sie sinnvoll vorlesen kann.
Was VoiceOver ist
VoiceOver ist fester Bestandteil von iOS: keine App zum Nachladen, sondern eine Systemfunktion, die auf jedem iPhone und iPad vorhanden ist. Eingeschaltet liest VoiceOver das fokussierte Element mit einer synthetischen Stimme vor, gibt Klang-Feedback bei Aktionen und macht die gesamte Oberfläche über ein eigenes Gesten-Set bedienbar. Zusätzlich kann VoiceOver mit Braillezeilen und externen Tastaturen zusammenarbeiten.
Wichtig für dein mentales Modell: VoiceOver ist keine Sonderansicht deiner App. Es liest genau die Oberfläche vor, die alle sehen. Vorausgesetzt, deine App stellt die nötigen Informationen über die Accessibility-Schnittstelle von iOS bereit.
| Frage | Antwort |
|---|---|
| Was ist es? | Der in iOS/iPadOS eingebaute Screenreader von Apple |
| Wo einschalten? | Einstellungen → Bedienungshilfen → VoiceOver; schneller über den Bedienungshilfen-Kurzbefehl (Dreifachklick auf die Seitentaste) oder per Siri |
| Grundprinzip | Ein Element hat den Fokus und wird vorgelesen; Doppeltippen aktiviert es |
| Navigation | Wischen (linear), Tippen (direkt) oder Rotor (nach Kategorien wie Überschriften) |
| Pendant auf Android | TalkBack : gleiches Grundprinzip, andere Gesten |
Das Bedienkonzept: ein Fokus, der spricht
Mit VoiceOver ändert sich die Bedeutung jeder Berührung. Ein einfaches Tippen aktiviert nichts mehr: Es wählt aus. Das angetippte Element bekommt den VoiceOver-Fokus (sichtbar als schwarzer Rahmen, oft „VoiceOver-Cursor" genannt) und wird vorgelesen. Erst ein Doppeltippen löst die Aktion aus. So können Nutzer:innen den Bildschirm gefahrlos erkunden, ohne versehentlich etwas auszulösen.
Vorgelesen wird dabei mehr als nur der sichtbare Text. VoiceOver setzt die Ansage aus mehreren Bausteinen zusammen: dem Label(Name des Elements), dem Wert(z. B. Schalter-Zustand), der Rolle(Taste, Überschrift, Schieberegler …) und optional einem Hinweis, was beim Aktivieren passiert.
Die wichtigsten Gesten
VoiceOver nutzt Gesten mit einem bis vier Fingern. Du musst nicht alle kennen. Mit diesem Grundvorrat kannst du jede App bedienen und testen:
| Geste | Wirkung |
|---|---|
| Einmal tippen | Element auswählen und vorlesen |
| Nach rechts / links wischen | Zum nächsten / vorherigen Element |
| Doppeltippen | Ausgewähltes Element aktivieren |
| Mit drei Fingern wischen | Scrollen (seiten- bzw. listenweise) |
| Mit zwei Fingern tippen | Vorlesen anhalten / fortsetzen |
| Mit zwei Fingern doppeltippen | „Magic Tap": kontextabhängige Hauptaktion, z. B. Anruf annehmen, Wiedergabe starten/stoppen |
| Zwei-Finger-Schrubben (Z-Bewegung) | Zurück / Abbrechen / Schließen |
| Zwei Finger drehen | Rotor öffnen (siehe nächstes Kapitel) |
Die vollständige, stets aktuelle Gesten-Referenz pflegt Apple in der iPhone-Hilfe. Sie ist als Quelle unten verlinkt. Einzelne Gesten lassen sich in den VoiceOver-Einstellungen auch anpassen.
Der Rotor: das Stellrad für die Navigation
Linear durch hunderte Elemente zu wischen wäre mühsam. Deshalb gibt es den Rotor: Du drehst zwei Finger auf dem Bildschirm, als würdest du an einem unsichtbaren Drehregler drehen, und wählst damit eine Navigations-Kategorie, etwa Überschriften , Links , Wörter oder Zeichen. Anschließend springt ein Wischen nach unten oder oben zum jeweils nächsten oder vorherigen Element dieser Kategorie.
Der Rotor kann je nach Kontext mehr: Lautstärke und Sprechtempo anpassen, Eingabemethoden wie Braille-Bildschirmeingabe oder Handschrift aktivieren und app-spezifische Aktionen anbieten. Welche Optionen erscheinen, lässt sich in den Einstellungen anpassen und hängt davon ab, was deine App bereitstellt.
.isHeader
).Was deine App liefern muss
iOS bringt die Accessibility-Infrastruktur mit. Deine Aufgabe ist,
sie mit Inhalt zu füllen. Standard-Komponenten aus UIKit und SwiftUI
sind dabei bereits weitgehend vorbereitet: Eine UIButton
mit Text-Titel ist automatisch fokussierbar und
bekommt die Rolle „Taste". Kritisch wird es bei Icon-Buttons ohne
Text, eigenen Controls und dynamischen Inhalten. Die vier zentralen
Eigenschaften:
- Label: der Name des Elements. Kurz, präzise, ohne Rollen-Wiederholung (nicht „Senden-Taste", die Rolle ergänzt VoiceOver selbst).
- Value: der aktuelle Wert, etwa „75 %" bei einem Schieberegler.
- Traits: die Rolle und Eigenschaften: Taste, Überschrift, ausgewählt, deaktiviert …
- Hint: optionaler Zusatz, was die Aktivierung bewirkt. Sparsam einsetzen.
SwiftUI: Icon-Button beschriften und Überschrift markieren
// Icon-Button: ohne Label hört man nur „Taste" Button(action: send) { Image(systemName: "paperplane") } .accessibilityLabel("Nachricht senden") // Überschrift für die Rotor-Navigation markieren Text("Posteingang") .font(.title) .accessibilityAddTraits(.isHeader) // Zusammengehörige Werte zu einem Element bündeln HStack { Text("Ungelesen"); Text("12") } .accessibilityElement(children: .combine)
UIKit: die gleichen Eigenschaften, klassisch gesetzt
sendButton.accessibilityLabel = "Nachricht senden"
titleLabel.accessibilityTraits = .header // Dynamische Änderung ansagen, ohne den Fokus zu bewegen
UIAccessibility.post(notification: .announcement,
argument: "Nachricht gesendet")
Der letzte Punkt ist ein typisches App-Thema: Wenn sich Inhalte
ändern, ohne dass Nutzer:innen etwas angetippt haben (Ladevorgang
fertig, neue Nachricht, Fehler), bekommt VoiceOver das nur mit, wenn
du es über eine Accessibility-Notification
mitteilst.
Bei größeren Umbauten des Bildschirms sind .layoutChanged
und .screenChanged
die
passenden Signale.
Testen mit VoiceOver und Accessibility Inspector
Kein Audit-Tool ersetzt die fünf Minuten, in denen du deine App selbst mit VoiceOver bedienst. Dazu kommt der Accessibility Inspector aus Xcode: Er zeigt dir pro Element Label, Value, Traits und Hint an, simuliert VoiceOver-Ausgaben am Mac und führt automatische Audits aus, die typische Fehler wie fehlende Beschreibungen oder zu kleine Kontrastwerte finden.
Häufige Stolperfallen
Die immer gleichen Muster machen Apps für VoiceOver-Nutzer:innen unbrauchbar und sind fast immer schnell behoben:
| Stolperfalle | Folge für Nutzer:innen | Lösung |
|---|---|---|
| Icon-Button ohne Label | Ansage „Taste", Funktion unbekannt | accessibilityLabel
setzen |
| Rolle im Label wiederholt („Senden-Button") | Doppelte Ansage „Senden-Button, Taste" | Label ohne Rolle formulieren, die Traits übernehmen das |
| Dekorative Bilder fokussierbar | Fokus bleibt an bedeutungslosen Elementen hängen | accessibilityHidden(true)
bzw. isAccessibilityElement = false
|
| Eigene Controls ohne Traits | VoiceOver kennt weder Rolle noch Bedienlogik | Traits und ggf. Custom Actions definieren oder Systemkomponente verwenden |
| Inhalts-Update ohne Ansage | Person merkt nicht, dass etwas passiert ist | Accessibility-Notification posten |
Tiefer einsteigen kannst du in Apples Entwickler-Dokumentation und den Human Interface Guidelines (beide unten verlinkt). Und wenn du wissen willst, wie das Gegenstück auf Android funktioniert: weiter zum TalkBack-Artikel.
Funktioniert deine iOS-App mit VoiceOver?
Wir testen deine App mit echten Hilfstechnologien, dokumentieren die Befunde nachvollziehbar und schulen dein Team, damit Barrierefreiheit nicht beim Audit endet, sondern in den Entwicklungsalltag einzieht.
Beratung oder Schulung anfragen
