Barrierefreie Appentwicklung: IOS-Apps screenreadertauglich entwickeln

In diesem Artikel erkläre ich, die wichtigsten Kriterien um IOS-Apps screenreadertauglich entwickeln zu können.

Was ist Apple bei barrierefreier Appentwicklung besonders wichtig?

Damit eine App barrierefrei ist, muss diese VoiceOver-Benutzern Informationen zu ihren Benutzeroberflächenelementen bereitstellen. Auf hohem Niveau bedeutet dies, dass Sie Folgendes sicherstellen sollten:

  • Auf jedes Benutzeroberflächenelement, mit dem Benutzer interagieren können, kann zugegriffen werden. Dies umfasst Elemente, die lediglich Informationen liefern, wie z. B. statischen Text, sowie Steuerelemente, die Aktionen ausführen.
  • Alle zugänglichen Elemente liefern genaue und hilfreiche Informationen.

Zusätzlich zu diesen Grundlagen können Sie einige Maßnahmen ergreifen, um die Benutzererfahrung eines VoiceOver-Benutzers mit Tabellenansichten zu verbessern und sicherzustellen, dass auf dynamische Elemente in Ihrer Anwendung immer zugegriffen werden kann.

Anmerkung von Markus

VoiceOver ist der Screenreader des Betriebssystems IOS.
Die Richtlinien die hier wiedergegeben werden sind etwas gekürzt, weil sonst der Blogartikel ein Buch wird.

So sieht die App Marlems Sprechassistent auf dem Ipad aus

Allgemeines zur Appentwicklung für das Apple-Betriebssysstem IOS

IOS-Apps werden mit der Programmiersprache Swift entwickelt.
Als Entwicklungsumgebung wird XCode verwendet.

Benutzeroberfläche Screenreadertauglich machen

Sie müssen sicherstellen, dass Sie sämtlichen Bedienelementen Hilfreiche Attributinformationen zur Verfügung stellen, die von Screenreadern vorgelesen werden.

Benutzerdefinierte Einzelansichten zugänglich machen

Wenn Ihre App eine benutzerdefinierte individuelle Ansicht enthält, mit der Benutzer interagieren müssen, müssen Sie die Ansicht barrierefrei entwickeln.

Machen Sie den Inhalt benutzerdefinierter Containeransichten zugänglich

Wenn Ihre App eine benutzerdefinierte Ansicht anzeigt, die andere Elemente enthält, mit denen Benutzer interagieren, müssen Sie die enthaltenen Elemente separat zugänglich machen. Gleichzeitig müssen Sie sicherstellen, dass auf die Containeransicht selbst nicht zugegriffen werden kann. Der Grund ist, dass Benutzer mit dem Inhalt des Containers interagieren, nicht mit dem Container selbst.

Geben Sie genaue und hilfreiche Attributinformationen an

Der Prozess der Bereitstellung von Attributinformationen für zugängliche Elemente besteht aus zwei Teilen:

  • Erstellen Sie präzise, genaue und hilfreiche Informationen
  • Stellen Sie sicher, dass die zugänglichen Elemente in Ihrer Anwendung diesen Inhalt korrekt melden

Wenn Sie benutzerdefinierte Ansichten verwenden, müssen Sie alle entsprechenden Attributinformationen für diese angeben. Anleitungen finden Sie unter Erstellen nützlicher Beschriftungen und Hinweise , Richtlinien zum Erstellen von Hinweisen und Identifizieren geeigneter Merkmale .
Selbst wenn Sie nur Standard-UIKit-Steuerelemente und -Ansichten verwenden, stellen Sie möglicherweise fest, dass einige der von ihnen bereitgestellten Standardattributinformationen verbessert werden können, um im Kontext Ihrer Anwendung sinnvoller zu sein. Weitere Informationen finden Sie unter Erweitern der Standardattributinformationen .

Hier ein englischsprachiges Video zum Thema barrierefreie Appentwicklung mit der Programmiersprache Swift

Erweitern der Standardattributinformationen

Als Teil der integrierten Zugänglichkeit von Standard-UIKit-Steuerelementen und -Ansichten stellt iOS VoiceOver-Benutzern auch Standardattributinformationen zur Verfügung, die diese Elemente beschreiben. In den meisten Fällen sind diese Informationen für Anwendungen geeignet, die die Standardsteuerelemente und -ansichten verwenden. Es kann jedoch vorkommen, dass die Angabe benutzerdefinierter Attributinformationen die Benutzererfahrung eines VoiceOver-Benutzers mit Ihrer Anwendung verbessert:

  • Wenn Sie ein Standard-UIKit-Steuerelement oder eine Standard-UIKit-Ansicht verwenden, in der ein vom System bereitgestelltes Symbol oder ein Titel angezeigt wird, stellen Sie zunächst sicher, dass Sie es gemäß dem beabsichtigten Zweck verwenden ( weitere Informationen finden Sie in den Richtlinien für die Benutzeroberfläche von iOS ). Entscheiden Sie dann, ob das Standard-Label-Attribut das Ergebnis der Verwendung dieses Steuerelements oder dieser Ansicht in Ihrer Anwendung korrekt wiedergibt. Wenn nicht, geben Sie ein Hinweisattribut an.
    Wenn Sie beispielsweise eine Schaltfläche Hinzufügen in Ihrer Navigationsleiste platzieren, indem Sie das vom System bereitgestellte Symbol Hinzufügen (+) in einem UIBarButtonItemObjekt verwenden, erhalten Sie automatisch das Standard-Beschriftungsattribut Hinzufügen. Wenn immer klar ist, welches Element der Benutzer beim Aktivieren dieser Schaltfläche hinzufügt, muss kein Hinweisattribut angegeben werden. Wenn jedoch Verwirrung herrscht, sollten Sie einen benutzerdefinierten Hinweis bereitstellen, der das Ergebnis der Verwendung dieses Steuerelements in Ihrer Anwendung beschreibt, z. B. „Konto hinzufügen“ oder „Kommentar hinzufügen“.
  • Wenn Sie ein benutzerdefiniertes Symbol oder Bild in einer Standard-UIKit-Ansicht anzeigen, z. B. Einem UIButtonObjekt, müssen Sie ein benutzerdefiniertes Beschriftungsattribut angeben, das es beschreibt.

Nützliche Etiketten und Hinweise erstellen

Wenn VoiceOver-Benutzer Ihre Anwendung ausführen, verlassen sie sich auf die Beschreibungen, die VoiceOver verwendet, um zu verstehen, was Ihre Anwendung tut und wie sie verwendet wird. Da diese Beschreibungen den größten Teil der Erfahrung des VoiceOver-Benutzers mit Ihrer Anwendung ausmachen, ist es wichtig, dass sie so genau und hilfreich wie möglich sind. Mithilfe der Richtlinien in diesem Abschnitt können Sie Beschriftungen und Hinweise erstellen, mit denen Ihre Anwendung für Menschen mit Behinderungen einfach und angenehm zu verwenden ist.

Geeignete Merkmale identifizieren

Das Merkmalattribut enthält ein oder mehrere einzelne Merkmale, die zusammengenommen das Verhalten eines zugänglichen Benutzeroberflächenelements beschreiben. Da einige einzelne Merkmale kombiniert werden können, um ein einzelnes Element zu beschreiben, kann das Verhalten des Elements genau charakterisiert werden.
Sie verwenden die folgenden Merkmale, um Elemente in Ihrer Anwendung zu charakterisieren:

  • Taste
  • Verknüpfung
  • Suchfeld
  • Tastaturtaste
  • Statischer Text
  • Bild
  • Spielt Ton
  • Ausgewählt
  • Zusammenfassungselement
  • Häufige Updates
  • Nicht aktiviert
  • Keiner

Im Allgemeinen können Merkmale, die Kontrollen entsprechen, erfolgreich mit Merkmalen kombiniert werden, die Verhaltensweisen beschreiben. Sie können beispielsweise das Merkmal „Schaltfläche“ mit dem Merkmal „Ton abspielen“ kombinieren, um ein benutzerdefiniertes Steuerelement zu charakterisieren, das sich wie eine Schaltfläche verhält und beim Tippen Ton wiedergibt.

Definieren benutzerdefinierter Attributinformationen im Interface Builder

Wenn Sie iOS SDK 3.0 installieren, erhalten Sie eine Version von Interface Builder, die Funktionen enthält, mit denen Sie Ihre Anwendung zugänglich machen können. Wenn Ihre Anwendung Standard-UIKit-Steuerelemente und -Ansichten enthält, können Sie möglicherweise alle Ihre Eingabehilfen in Interface Builder ausführen.

Mit Interface Builder können Sie den Eingabehilfenstatus eines Elements festlegen und benutzerdefinierten Inhalt für die Attribute „Beschriftung“, „Hinweis“ und „Merkmale“ bereitstellen. Wählen Sie dazu das Benutzeroberflächenelement in Ihrer NIB-Datei aus und öffnen Sie den Identitätsinspektor.

Programmgesteuertes Definieren benutzerdefinierter Attributinformationen

Wenn Sie möchten, können Sie benutzerdefinierte Informationen für Attribute programmgesteuert bereitstellen. Möglicherweise möchten Sie dies tun, wenn Sie Interface Builder überhaupt nicht verwenden oder wenn Sie Ihre Ansichten im Code generieren, anstatt Interface Builder zu verwenden.

Wie unter Zugreifen auf benutzerdefinierte individuelle Ansichten beschrieben , können Sie Informationen zur Barrierefreiheit in der Implementierung Ihrer Ansichtsunterklasse oder in dem Code festlegen, der die Ansicht instanziiert. Beide Techniken sind gültig, aber es gibt einen Grund, warum Sie möglicherweise Attributmethoden in Ihrer Unterklasse implementieren möchten, anstatt Attribute im Instanziierungscode festzulegen: Wenn in Ihrer Ansicht Daten angezeigt werden, die dynamisch sind oder sich häufig ändern, z. B. die Tageszeit, Sie sollten die Unterklassenmethoden implementieren, um bei Bedarf neue Daten zurückzugeben. Wenn Sie in diesen Situationen nur Attribute festlegen, wenn Sie die Unterklasse instanziieren, sind die zurückgegebenen Daten wahrscheinlich veraltet.

Verbessern Sie die Barrierefreiheit von Tabellenansichten

Wenn Ihre Anwendung eine Tabellenansicht anzeigt, in der jede Zelle andere Elemente als (oder zusätzlich zu) Text enthält, können Sie einige Maßnahmen ergreifen, um den Zugriff zu verbessern. Wenn in Ihrer Tabellenansicht mehr als eine Information pro Zeile angezeigt wird, können Sie die Benutzererfahrung eines VoiceOver-Benutzers verbessern, indem Sie die Informationen in einem einzigen, leicht verständlichen Etikett zusammenfassen.

Dynamische Elemente barrierefrei machen

Wenn sich Elemente der Benutzeroberfläche in Ihrer Anwendung dynamisch ändern können, müssen Sie sicherstellen, dass die von ihnen bereitgestellten Informationen zur Barrierefreiheit korrekt und aktuell sind. Sie müssen auch Benachrichtigungen senden, wenn Änderungen im Layout der Anwendungsbildschirme auftreten, damit VoiceOver Benutzern beim Navigieren im neuen Layout helfen kann. Die Programmierschnittstelle für die Barrierefreiheit der Benutzeroberfläche bietet zwei Benachrichtigungstypen, die Sie verwenden können, wenn diese Art von Änderungen auf dem Bildschirm auftreten. ( Informationen zu diesen Benachrichtigungen finden Sie unter „Benachrichtigungen“ in der UIAccessibility-Protokollreferenz .)

Wenn sich Benutzeroberflächenelemente abhängig von anderen Bedingungen in Ihrer Anwendung in unterschiedlichen Zuständen befinden können, müssen Sie Ihrem Code eine Logik hinzufügen, die die korrekten Informationen zur Barrierefreiheit für jeden Zustand zurückgibt, in dem sich ein Element befinden kann. Da diese Änderungen als Ergebnis des Benutzers auftreten können Bei Aktionen ist es am besten, diese Logik der Implementierung einer Unterklasse hinzuzufügen, nicht dem Code, der die Unterklasse instanziiert.

Nichttextuelle Daten barrierefrei machen

Manchmal zeigt Ihre Anwendung Daten an, die nicht automatisch mit der Funktionsweise der Barrierefreiheit kompatibel sind. Wenn Sie beispielsweise ein Bild anzeigen, sollten Sie eine Beschreibung in der Eingabehilfenbezeichnung angeben, damit VoiceOver-Benutzer die vom Bild übermittelten Informationen verstehen können. Wenn Sie Informationen grafisch bereitstellen, z. B. ein Bewertungssystem, das Sterne anzeigt, sollten Sie sicherstellen, dass das Etikett für die Barrierefreiheit die Bedeutung der grafischen Darstellung wiedergibt.

Barrierefreie Appentwicklung: IOS-Apps screenreadertauglich entwickeln – Warum ist das wichtig?

Dem Weltunternehmen Apple ist es sehr wichtig, dass IOS-App für blinde Menschen gut zu bedienen sind. Deswegen sollten auch Sie darauf achten dass Ihre IOS-Apps für blinde Menschen gut zu bedienen sind.

Wenn Sie fragen zu obige Themen haben Schreiben Sie mir eine Mail an info@marlem-software.de oder rufen Sie mich an unter 07072/1278463 .


Autor: Markus Lemcke

Ich bin Markus Lemcke, Softwareentwickler, Webentwickler, Appentwickler, Berater und Dozent für barrierefreies Webdesign, barrierefreie Softwareentwicklung mit Java, C# und Python, Barrierefreiheit bei den Betriebssystemen Windows, Android, IOS, Ubuntu und MacOS.

Schreibe einen Kommentar