Warum muss Ihre Anwendung zugänglich sein?

Bequeme Navigation, intuitive Benutzeroberfläche, Bestellung mit wenigen Klicks - jeden Tag vereinfachen wir das Leben der Kunden unserer Anwendungen unter Berücksichtigung ihrer Wünsche und Schmerzen. Aufgrund des Mangels an erforderlichen Analysen in diesem Prozess verpassen wir die Anfragen einer großen Kategorie potenzieller Benutzer mit gesundheitlichen Einschränkungen, die mobile Dienste nicht nutzen können, nur weil Sie nicht dazu bestimmt sind oder sich auf Barrierefreiheitsfragen konzentrieren. Wie Sie Ihre Anwendung für Menschen mit Sehbehinderungen komfortabel gestalten können, sagt das Personal von Dodo Pizza bei der Entschlüsselung der neuen Version von AppsCast .



Alexei Kudryavtsev: Heute sprechen wir über die Verfügbarkeit mobiler Anwendungen mit zwei Gästen von Dodo Pizza gleichzeitig - Mikhail Rubanov ( akaDuality ) und Armen Khatayan. Leute, erzählt uns mehr über euch.

Mikhail Rubanov: Ich bin der iOS-Programmierer unserer Hauptanwendung für die Bestellung von Pizza. Mein Ziel ist es, den Front-End-Teil des Dienstes zu entwickeln und technische Spitzenleistungen zu erzielen, die ohne VoiceOver-Unterstützung und die Implementierung der Anwendungsverfügbarkeit nicht möglich sind.

Armen Khatayan: Für mich ist das Thema Barrierefreiheit besonders eng, da ich während meines Studiums an einer technischen Universität mein Augenlicht verloren habe.
Irgendwann wurde mir klar, dass Sie dieses Problem selbst bekannt machen und bei der Lösung helfen müssen, wenn die Leute nicht versuchen, die Situation mit der Verfügbarkeit von Anwendungen zu verbessern.
Ich begann mich mit verschiedenen Anwendungen vertraut zu machen, sie zu testen und die gefundenen Mängel an das Unternehmen zu senden.

Eine interessante Geschichte kam mit Dodo Pizza heraus. Die Jungs veröffentlichten das CMAN- Spiel, das in einem Telegramm verfügbar war. Als Ergebnis gelang es mir, mit den Entwicklern ins Firmenbüro zu kommen und nachdem ich zu einem Interview eingeladen worden war. Jetzt beschäftige ich mich mit Barrierefreiheitsproblemen, dem Testen des universellen Zugriffs, dem Erstellen von Testplänen, dem Sammeln von Mängeln sowie dem technischen Support für Benutzer.

Barrierefreiheit Einführung


Alexei Kudryavtsev: Lassen Sie uns zunächst feststellen, was Zugänglichkeit ist.

Mikhail Rubanov: Es gibt verschiedene Arten der Zugänglichkeit. Wir müssen viele Spiele mit zwei Händen spielen. Wenn Sie sich die Hand verletzen, ist das Spiel nicht mehr verfügbar. Ein Extremfall ist ein Verlust von Gehör, Sehvermögen und Mobilität. In solchen Situationen ist eine Anpassung der Anwendung möglich.

Alexei Kudryavtsev: Inwieweit unterscheidet sich dies von der Benutzerfreundlichkeit?
Armen Khatayan: Benutzerfreundlichkeit ist die Benutzerfreundlichkeit der Schnittstelle. Barrierefreiheit - Die Möglichkeit, die Schnittstelle zu verwenden, wenn Einschränkungen bestehen. Interne Zugänglichkeit kann Benutzerfreundlichkeit sein.
Mikhail Rubanov: Es gibt mehrere Stufen der Anwendungsanpassung. In der ersten Phase wird davon ausgegangen, dass die Anwendung überall fehlerhaft ist und Sie das Skript nur erneut starten können. Nach einer kleinen Anpassung können Sie durch die Anwendung zur Zielaktion gehen, während die Ausführung der Aktion möglich ist, der Prozess selbst jedoch unpraktisch ist. Die letzte Phase ist die Anpassung der gezieltesten Aktion unter Berücksichtigung von Komfort und Nutzungsgeschwindigkeit.

Alexei Kudryavtsev: Für Menschen mit welchen Einschränkungen müssen Sie Anwendungen anpassen?

Armen Khatayan: Einschränkungen werden in funktionale und mentale unterteilt. Funktionsstörung des Sehvermögens, des Hörvermögens, der Mobilität. Die mentalen implizieren eine Verletzung der Psyche, die Fähigkeit, die Welt angemessen wahrzunehmen. Die Lösungen für diese beiden Kategorien von Einschränkungen sind völlig unterschiedlich.

Mikhail Rubanov: Ich werde einige Beispiele nennen. VoiceOver kann sowohl für Blinde als auch für Menschen mit eingeschränkter Motorik geeignet sein, wie zum Beispiel Stalingulag oder Stephen Hawking. In diesem Fall können Sie sich mit VoiceOver auf bestimmte Elemente konzentrieren, diese aktivieren und mit einem speziellen Gerät mit der gesamten Anwendung interagieren.

Ein weiteres Beispiel. In einer unserer Pizzerien in Tscheljabinsk sind Menschen mit Hörbehinderung beschäftigt. In unserem Workflow spricht der Sprachassistent den Empfang einer neuen Pizza auf dem Tracker an, aber dieses Tonsignal ist für solche Mitarbeiter nicht verfügbar, und um die Bestellung nicht zu verpassen, müssen sie mehr Zeit auf dem Tablet verbringen. Für sie ist eine Glühbirne eine hervorragende Lösung für das Problem, die sich einschaltet, wenn die Bestellung erscheint.

Über kognitive Probleme. Während der Veröffentlichung von iOS 7 begann sich der Hintergrund auf dem Desktop gemäß dem Beschleunigungsmesser zu bewegen, und viele schrieben, dass sie bewegungskrank waren. Dann gab es eine Bewegungseinstellung, mit der Sie die Bewegung des Bildschirms einschließlich der Anzahl der Animationen reduzieren können. Dies ist beispielsweise für Epilepsiekranke nützlich.

Probleme mit der Anwendungsverfügbarkeit


Alexei Kudryavtsev: Welche Probleme haben Menschen mit Anwendungen?

Armen Khatayan: Es gibt viele Probleme. Oft sind die Schaltflächen in der Anwendung nicht signiert und Sie müssen nach dem Zufallsprinzip stöbern, um zu überprüfen, was es ist. Die Situation wird vereinfacht, wenn die Schaltfläche ein Hintergrundbild enthält, VoiceOver seinen Namen erbt und Sie bei Englischkenntnissen den Zweck des Elements erraten können.

Die Schaltfläche ist möglicherweise überhaupt nicht verfügbar. Wenn ein Entwickler auf eine Ansicht, z. B. ein Bild, klickt und den Klick verarbeitet, kann ich mit meinem VoiceOver nicht darauf klicken.

Mikhail Rubanov: Wenn Sie versuchen, einen Messenger zu erstellen und den Beginn des Dialogs am unteren Bildschirmrand zu positionieren, werden Sammlungen und Tabellen häufig auf den Kopf gestellt und dann die Zellen zurückgedreht. Es scheint, dass alles funktioniert, aber bei einer solchen Operation in VoiceOver wird die Bildlaufgeste auf den Kopf gestellt.

Es kommt vor, dass zum Anzeigen eines neuen Bildschirms anstelle der Implementierung eines Übergangs mithilfe von Controllern eine Ansicht hinzugefügt wird, der FirstResponder jedoch nicht daran hängt. Infolgedessen ist View vollständig unzugänglich, und da es unmöglich ist, sich darauf zu konzentrieren, wird das gesamte Skript geschlossen.

Alexei Kudryavtsev: Verbessert sich die Situation mit der Verfügbarkeit von Anwendungen auf dem Markt? Gibt es mehr von ihnen?

Armen Khatayan: Ich denke schon.
Um mehr Anwendungen verfügbar zu machen, benötigen Sie entweder Benutzer, die danach fragen, oder Entwickler, deren Kultur bereits versteht, dass ein Teil der Entwicklungszeit für die Barrierefreiheit aufgewendet werden sollte.
In den USA gibt es beispielsweise den Americans with Disabilities Act (ADA) , nach dem alle Unternehmen, insbesondere Riesenunternehmen wie Google und Facebook, verpflichtet sind, Produkte zu erstellen, die die Zugänglichkeit für alle Kategorien berücksichtigen. Die Nichteinhaltung dieses Gesetzes ermöglicht es den Amerikanern, Unternehmen zu verklagen.

Alexei Kudryavtsev: Wie ist dieses Problem in anderen Ländern und in Russland geregelt?

Armen Khatayan: Im selben Amerika gibt es Richtlinien für die Barrierefreiheit von Webinhalten , mit deren Hilfe Produkte zugänglich gemacht werden können. In Russland ist dies immer noch beratend, aber es wird angenommen, dass sowohl die Gesellschaft als auch der Staat versuchen, das Leben von Menschen mit Behinderungen zugänglicher zu machen. Zum Beispiel gab es kürzlich Neuigkeiten, dass wir ein Fahrerlager für Rollstuhlfahrer hatten, die mit einem Aufzug ausgestattet waren.

Voraussetzungen für die Anpassung von Anwendungen


Alexei Kudryavtsev: Wie begann die Arbeit an der Barrierefreiheit in Dodo Pizza?

Mikhail Rubanov: Vor einem Jahr hat die Sberbank ihre Anwendung angepasst und begonnen, diese Idee den Massen bekannt zu machen. Sie wurden von Anatoly Popko besucht, einem Blinden, der die Idee verbreitet, dass es keinen besseren Zeitpunkt gibt, um blind zu sein als jetzt, weil ein Smartphone zu einer besseren Quelle der Hilfe geworden ist. Ich habe das Video mit seiner Teilnahme gesehen und festgestellt, dass ich zwar gute Schnittstellen herstellen kann, meine Entscheidungen jedoch für eine bestimmte Anzahl von Personen nicht funktionieren.
Wenn wir eine Absturzrate von 98% sehen, machen uns Leute, die keine Bestellung aufgeben können, große Sorgen. Gleichzeitig gibt es Leute, die unsere Anwendung überhaupt nicht verwenden können, aber niemand gibt Analysen darüber.
Das Selbstwertgefühl war verletzt, und ich ging, um den Rahmen zu verstehen. Es stellte sich heraus, dass es zu diesem Thema nur wenige Materialien gab, die oberflächlich geschrieben wurden. Ich begrub mich, freitags abends für ein paar Stunden ging ich um die Anwendung herum und versuchte etwas zu reparieren. Begonnen mit einfachen Dingen - Untertitel für Schaltflächen mit Bildern erstellt, beendet mit Bildschirmen, die nicht verfügbar waren. Nach einem Monat des Eintauchens bereitete ich eine Präsentation über Barrierefreiheit vor, die unsere Produkte sahen, erkannte das Problem und gab grünes Licht für die freie Entwicklung der Technologie und die Anpassung des Frameworks. Vor drei Monaten erschien Armen in unserem Team und dies trug wesentlich zur Verbesserung der Anwendung bei.

Daniil Popov: Eine coole Analogie zur Crash-Rate. Wenn wir ein halbes Prozent der Benutzer haben, die unter Abstürzen leiden, kümmern wir uns darum. Wenn ein halbes Prozent die Anwendung überhaupt nicht verwenden kann, wissen wir nicht einmal davon.
Die Schlussfolgerung ist logisch: Denken Sie an alle Kategorien von Personen, die Ihre Anwendung möglicherweise verwenden könnten.
Alexei Kudryavtsev: Haben Sie Analysen zur Anzahl solcher Benutzer?

Mikhail Rubanov: Es gibt ein Problem der allgemeinen Analyse, da es keine eindeutigen Statistiken darüber gibt, wie viele Blinde in Russland und der GUS im Allgemeinen leben. Sie können unabhängig die Anzahl der Benutzer berechnen, für die VoiceOver auf Geräten aktiviert ist. In der UIAccessibility-Klasse gibt es eine isVoiceOverRunning-Methode, mit der die Anwendung ausgeführt werden kann.

Alexei Kudryavtsev: Inwieweit haben Sie die Anwendung angepasst, bevor Sie es geschafft haben, die Idee an das Management zu verkaufen?

Mikhail Rubanov: Es hat geholfen, dass das Thema Barrierefreiheit mit den Werten des Unternehmens übereinstimmt: "Pizza ist ein Feiertag", "Pizza für alle". Die Idee beeindruckte die Entwickler, das Produkt und nahm nicht viel Zeit und Geld in Anspruch.

Der Implementierungsplan kann recht einfach sein: Holen Sie sich das Hauptszenario und sehen Sie, wie die Reaktion aussehen wird. Blinde haben eine starke Gemeinschaft, es gibt Gruppen, in denen sie Anwendungen diskutieren und mit ihnen interagieren. Wir haben unsere Anpassung nicht durch Versionshinweise angekündigt, Menschen in sozialen Netzwerken haben selbst angefangen, über die Anwendung zu schreiben, Informationen wurden mündlich verbreitet. Das ist das Geld.

Armen Khatayan: Zugänglichkeit wird zunächst als Wohltätigkeit wahrgenommen. Es ist notwendig, Zeit und Ressourcen zuzuweisen, und es ist nicht klar, welchen Nutzen dies bringen wird. Dann kommt das Verständnis, dass das Geld von blinden Benutzern genau das gleiche ist wie das von sehenden.
Egal, wer die Pizza kauft, es ist wichtig, die Gelegenheit dazu zu geben.

Interaktion mit VoiceOver


Daniil Popov: Lassen Sie uns mit der technischen Komponente befassen. Was ist VoiceOver und wie funktioniert es?

Armen Khatayan: VoiceOver bietet visuelle Informationen im Audioformat. Er spricht die Metainformationen aus, die sich auf den Oberflächenelementen befinden und möglicherweise sogar grafisch nicht zugänglich sind.

Es gibt verschiedene Möglichkeiten, VoiceOver zu aktivieren. Am einfachsten ist es, Siri mit dem Satz "Siri, schalte VoiceOver ein" danach zu fragen. Sie können es über die Einstellung im Element Eingabehilfen aktivieren. Durch dreifaches Klicken auf die Home-Taste oder die Sperrtaste (bei älteren Geräten, bei denen die Home-Taste nicht aktiviert ist) wird VoiceOver ein- oder ausgeschaltet. Nach dem Einschalten ändert sich die Art und Weise der Steuerung des Geräts: Mit einer einzigen Berührung des Bildschirms wird angekündigt, was sich auf diesem Teil des Bildschirms befindet. durch Doppelklicken wird ein Element aktiviert (Klicken auf eine Schaltfläche oder eine andere Zielaktion); Zum Scrollen müssen Sie drei Finger verwenden.

Daniil Popov: Verwenden Sie die Barrierefreiheit in der Android-Version der Anwendung? Und wie viele Funktionen stimmen zwischen Plattformen überein?

Armen Khatayan: Android verfügt über eigene Eingabehilfen . TalkBack ist für das Sehen verantwortlich. Die Funktionalität ist identisch mit VoiceOver, obwohl es vorkommt, dass einige Funktionen in Android besser funktionieren als in iOS. Bisher ist nicht genug Zeit für unsere Android-Anwendung, aber bald werden wir beginnen, uns anzupassen.

Daniil Popov: In einer Anwendung kommt es häufig vor, dass einige Schnittstellenelemente blockiert werden, weil keine Werte in die Eingabefelder eingegeben werden. Wie teilt VoiceOver dem sehbehinderten Benutzer mit, dass die Schaltfläche gesperrt ist und eine weitere Aktion ausgeführt werden muss, um sie zu entsperren?

Mikhail Rubanov: In iOS gibt es eine Sammlung von Eingabehilfen - verschiedene Einstellungen, mit denen Sie die Art und Weise ändern können, wie Sie mit einem Element interagieren. Sie können jedes Element mit seinem Namen, Wert und einer der Eigenschaften signieren. Es ist ein Wert ausgewählt, der für die Verarbeitung von Listen ausgewählt oder deaktiviert ist , um ein unzugängliches Element anzuzeigen. Es gibt eine interessante einstellbare Eigenschaft, die für verschiedene Schieberegler, Stepper, gilt, wenn Sie den Wert eines Elements mit Wischen nach oben / unten ändern können und es wieder spricht.

Es besteht die Möglichkeit, die Interaktion direkt zu aktivieren, z. B. ein Panel, auf das Sie zeichnen können, um eine Unterschrift auf einem Scheck in einem Restaurant zu hinterlassen. Es gibt verschiedene Einstellungen für Multimedia: Nach dem Drücken der Taste wird der Ton oder Film sofort abgespielt, und VoiceOver sollte ausgeschaltet werden, bis die Interaktion mit dem Bildschirm wieder aufgenommen wird.
Krücken müssen nicht eingezäunt werden: Stellen Sie die Einstellung ein und das System selbst sagt alles mit der richtigen Intonation.

Funktionen für die Arbeit mit VoiceOver


Alexei Kudryavtsev: Sie sagten, dass das Arbeiten mit Barrierefreiheit das Bewusstsein verändert und nicht so einfach ist, wie Sie auf den ersten Blick scheinen. Was sollte der Entwickler tun, wenn er in den Prozess eintaucht?

Mikhail Rubanov: Wenn wir über die Schwierigkeiten bei der Arbeit mit VoiceOver sprechen, haben wir festgestellt, dass wir einige Elemente aussprechen müssen. Zum Beispiel muss das Erscheinen einer Popup-Nachricht in der Anwendung (kein Standard-Push, sondern eine Panel-Nachricht zum Bestellen einer Bestellung) durch eine Benachrichtigung nach der Barrierefreiheit besprochen werden. Wir sind mit der Tatsache konfrontiert, dass VoiceOver beim Drücken der Taste unseren Text unterbricht und den Namen der Taste ausspricht. Wir haben das Problem gelöst: Wir haben alles in den Versand eingewickelt, es für 100 Millisekunden verschoben und VoiceOver unabhängig getötet.

Die Hauptschwierigkeit besteht darin, dass Sie beim Versuch, eine Lösung zu finden, versuchen, sie im Internet zu finden, aber die Methoden, die andere anbieten, funktionieren fast immer nicht.

Wir haben die Anwendung selbst von Krücken gereinigt. Wenn Sie mit Barrierefreiheit arbeiten, ist es wichtig, die Controller korrekt anzuzeigen. Wie bereits erwähnt, haben sie in einigen Projekten beim Erstellen eines neuen Bildschirms einfach eine neue Ansicht zur Hierarchie hinzugefügt, ohne sicherzustellen, dass der erste Antwortende ordnungsgemäß funktioniert. Infolgedessen hat VoiceOver sie nicht gesehen. Wir haben es auf einen normalen Controller umgestellt und alles wurde sofort repariert.

Unser Design-System verfügt über Steuerelemente zum Ändern der Größe, Menge und bevor sie in mehrere Schaltflächen unterteilt wurden. Beispielsweise wurde der Mengenstepper mit den Schaltflächen „Minus“, „Plus“, der Menge und dem Gesamtpreis für die Ware ausgegeben. Wir haben alles zu einer Kontrolle zusammengefasst. Jetzt können Sie die Menge mit einem vertikalen Wisch erhöhen, und sofort wird ein neuer Preis angezeigt. Dieses Steuerelement wird an mehreren Stellen der Anwendung verwendet, sodass mit einer Lösung mehrere Bildschirme gleichzeitig verbessert werden konnten.

Daniil Popov: Auf Instagram ist der größte Teil der Anwendung an Bilder gebunden. Wie funktioniert VoiceOver mit diesen Inhalten?

Mikhail Rubanov: Instagram schlägt vor, ein Foto hochzuladen, um eine Signatur für Blinde zu erstellen. Darüber hinaus hat sich der Service bereits aus der einfachen Anzeige von Fotos in der Geschichte zusammen mit Bildern entwickelt. Außerdem können Sie dort jetzt Videos mit Ton verwenden. Das iPhone versucht auch, Fotos und Gesichter zu erkennen, meldet, was auf dem Bild zu sehen ist und wie klar es ist.

Die Technologie entwickelt sich weiter. Auf Netflix können Sie beispielsweise Filme mit speziellen Untertiteln ansehen, die zusätzlich angeben, was auf dem Bildschirm geschieht.

Daniil Popov: Wie kann man das Gleichgewicht halten? Für normale Benutzer möchte ich ein Maximum an schönen Animationen mit sanften Übergängen und 3D-Effekten zeigen, aber ich möchte auch, dass Menschen mit Sehbehinderungen die Anwendung vollständig nutzen können.

Mikhail Rubanov: Wenn wir über Ressourcenoptimierung sprechen, übergeben viele Methoden in iOS den animierten Parameter . Sie können sich darauf verlassen oder es selbst einstellen, z. B. die Animation über isVoiceOverRunning deaktivieren. In diesem Fall können Sie die Funktion sprengen, testen und eine Problemumgehung finden. VoiceOver verfügt über viele verschiedene Technologien, mit denen Sie Inhalte anpassen können. Es besteht sogar die Möglichkeit, die Intonation der Sprachstimme zu steuern. Sie müssen nur das Framework lernen.

Daniil Popov: Ich mag es nicht wirklich, auf jede Schaltfläche auf dem Bildschirm zu stoßen. Facebook hat Dutzende dieser Schaltflächen, und der Prozess wird zum Spott. Gibt es bequemere Mechanismen?

Armen Khatayan: Die Benutzeroberfläche für blinde Benutzer unterscheidet sich grundlegend von der grafischen. VoiceOver kann die Benutzeroberfläche auf zwei Arten lernen: nacheinander und nach dem Zufallsprinzip. Bei einer sequentiellen Untersuchung bewegt sich der Cursor durch jedes Element, wie es in der Hierarchie angegeben ist. Nach rechts wischen bewegt sich zum nächsten Element, nach links wischen - zum vorherigen. Wenn Sie nach rechts wischen, können Sie die gesamte Benutzeroberfläche vollständig betreten und verstehen, wo etwas nicht verfügbar ist.

Alternativ können Sie einfach über den Bildschirm fahren und sehen, wo sich das befindet. Nach meiner Erfahrung verwenden die meisten Blinden die sequentielle Navigation, da dies bequemer ist.

Auf Facebook gibt es beispielsweise einen Newsfeed mit Veröffentlichungen, die jeweils Schaltflächen wie "Teilen", "Fotos" und "Links" enthalten. Facebook hat jeden Beitrag zu einem eigenen Artikel gemacht. Alles, was mit den Aktionen in dieser Publikation zusammenhängt, wird in der benutzerdefinierten Aktion ausgeführt. Durch Wischen nach rechts wird eine Zelle oder Nachricht gelöscht. Durch vertikales Wischen kann diese Aktion ausgewählt werden. In Veröffentlichungen helfen Ihnen vertikale Wischbewegungen beim Navigieren durch alle Aktionen: Reagieren Sie, teilen Sie, sehen Sie detaillierte Informationen.

Mikhail Rubanov: Auf der technischen Seite geht VoiceOver nicht auf Geschäftsfunktionen ein, sondern hilft sogar zu verstehen, wie diese erstellt werden. Beispielsweise wechseln viele zu einem Entwurfssystem, bei dem alle Steuerelemente minimiert und nur sie verwendet werden. . transitions VoiceOver .

. . . , . , , .

, , , .

: , , , .
VoiceOver , . . .
. , , . , . , « » « ». , , .

: , .

, Apple WWDC MacOS, : , , . VoiceOver, . , .

: VoiceOver ?

: DymanicType, . iOS- , , , 3-4 , .

reduse transparency reduce motion — , , . .

: API Accessibility Apple? ?

: transitions. , , , . , , , .

: . ?

: . , , , , Facebook .

action, , , actions VoiceOver.

, , , «» — , . , accessibility value — . . , , .

. accessibility elements . , . — , isAccessibilityElement == false ., isAccessibilityElement == true, VoiceOver . .

Accessibility?


: , , ?

: , , , . , . .

, , , .

. . : Android , , , .

, , . «button», «button», «button». , - , , . «button» .

: , flow accessibility. , flow ? ?

: , , VoiceOver .

: VoiceOver ?

: , UI-, . VoiceOver, UI-. , accessibility value, accessibility label unit-. . , UI- #if UITEST .

: ?

: , , . , VoiceOver , . , «, , …» . .

: . , VoiceOver, . «» , . , .

Best practices


: accessibility?

: UIAccessibility.h . , . Apple : , , . , .

: WWDC ?

: , accessibility. , .

: , ?

: Applevis : , .

- , , . , , « » — .
. , : Accessibility Inspector Xcode, , .

-, .

-, accessibility, .
: Accessibility — - , . , iOS . , .

. . , . , . , , .

, , 21-22 - AppsConf. iOS- accessibility Juno.

AppsCast , , SoundCloud , .

Source: https://habr.com/ru/post/de466629/


All Articles