„Gibt es keine Möglichkeit zu wissen, wann – …?“
Hier gibt es immer eine Pause. Der Kunde weiß, was er fragt, und ich weiß, was er fragt, aber es in Worte zu fassen – es laut auszusprechen – gestaltet sich unerwartet schwierig.
In den Momenten vor der Frage war es eine rein technische Frage – nicht anders als „können wir dies tun, wenn ein Benutzer auf seinem Handy ist.“ Aber es gibt immer eine Pause, denn diese Frage fällt nicht leicht; nicht wie all die anderen Fragen zu Browsern und Verbindungsgeschwindigkeiten. Ein Satz wie „in einem unterstützenden Browserkontext“ fällt einem nicht so leicht ein wie „auf einem Handy“, „in Internet Explorer“ oder „bei einer langsamen Verbindung“. Ersteres, nun ja, das wäre etwas, das ich sagen würde – ein Satz, der eindeutig in den Bereich der Barrierefreiheitsberater fällt. Letzteres kann der Kunde nachvollziehen. Er hat ein Handy, er hat andere Browser benutzt, er war mit langsamen Internetverbindungen konfrontiert.
„Gibt es keine Möglichkeit zu wissen, wann – … ein Benutzer … so etwas wie einen Bildschirmleser benutzt …?“
Eine einfache Frage, die eine komplizierte Antwort hervorruft, ist bei fast jedem Austausch mit einem Webentwickler Standard. Diese Antwort ist seit langem eine erfrischende Abweichung von dieser Norm: „Nein, das können wir nicht.“
Die Sache ist, wie ich sagen werde, technisch unmöglich; Computer können, sehen Sie, nicht auf diese Weise miteinander kommunizieren. Oft gibt es hier eine spürbare Erleichterung: „Nein“ zum technischen Teil; „Nein“ zum Teil der Computer. Das ist natürlich alles, was sie fragen wollten. Das glaube ich wirklich.
Selbst wenn wir könnten, so werde ich erklären, würden wir es nicht wirklich wollen. Ein solches Aufspalten unserer Codebasis würde uns Wartenden mehr Belastung aufbürden, nicht weniger. Hier gibt es eine einfache Parallele zur Unterhaltung „wenn sie auf einem Handy sind“; eine, die wir sicherlich schon geführt haben. Wir können den Browsing-Kontext eines Benutzers nie sicher wissen, und Annahmen werden uns und unsere Benutzer nur in Schwierigkeiten bringen. Wann immer eine Funktion, eine Komponente oder eine neue Designbehandlung hinzugefügt oder geändert wurde, müssten wir die gleichen Gespräche darüber führen, wie wir sie in die „barrierefreie“ Erfahrung übersetzen. Wenn diese Funktionen gar nicht erst wesentlich sind, sind sie dann überhaupt die Mühe wert? Wenn diese Funktionen wesentlich sind – nun, dann müssen wir immer noch einen Weg finden, sie in beiden Kontexten zum Laufen zu bringen.
Auf den ersten Blick mag dies für unsere Benutzer eine verlockende Option erscheinen: eine verbesserte, voll ausgestattete Website auf der einen Seite, eine voll barrierefreie alternative Erfahrung auf der anderen. Das löst sich jedoch bei der geringsten Untersuchung auf: Wenn die voll ausgestattete Website nicht barrierefrei ist, wird die barrierefreie Website nicht voll funktionsfähig sein. Indem wir die „barrierefreie Erfahrung“ von der „echten Website“ abweichen lassen, ziehen wir letztendlich eine schärfere Trennlinie zwischen diesen beiden Definitionen und rücken die „barrierefreie Erfahrung“ näher an einen nachträglichen Gedanken heran – begrenzt und frustrierend außer Takt mit der „echten“ Website, wie es so viele dedizierte mobile Seiten schnell geworden sind.
Hier gibt es nie Meinungsverschiedenheiten. Wiederum: Das ist alles nachvollziehbar. Wir alle sind schon einmal unentrinnbar in die Nutzung der „mobilen“ Version einer Website gezwungen worden. Wir haben diese Fehler als Benutzer schon gemacht; wir haben diese Fehler als Entwickler schon gemacht. Wir wissen es jetzt besser.
Aber das ist keine rein technische Frage. Das ist nicht so einfach wie Browserfunktionen und Bildschirmgrößen – eine Frage eines privilegierten Browsing-Kontexts oder eines anderen. Technische Fragen fallen leicht. Auf halbem Weg durch die Frage – im Zögern, in der Pause, in dem gestolperten Wort – wurde aus einer alltäglichen Entwicklungsfrage etwas viel Belastenderes. Denn es gab ein Wort, das passte.
„Gibt es eine Möglichkeit, dass wir wissen können, wann ein Benutzer eine Behinderung hat?“
Das leichte „Nein“ fühlte sich ermächtigend an; ein Ausweichen. „Es spielt keine Rolle; es kann nicht getan werden“ als Antwort auf eine zutiefst belastende Frage war ein unerwarteter Balsam für Gefragten und Befragten gleichermaßen. Da war wieder diese spürbare Erleichterung – „Nein“ zum technischen Teil; „Nein“ zum Teil der Computer. Das war natürlich alles, was sie fragen wollten.
Dieses leichte „Nein“ gibt es nicht mehr. In iOS 12.2 und MacOS 10.14.4 ist in den VoiceOver-Einstellungen von Apple ein Schalter erschienen, harmlos mit „Barrierefreiheitsereignisse“ beschriftet. Er wurde ohne viel Aufhebens eingeführt – abgesehen von einer kurzen Erwähnung im iPhone-Benutzerhandbuch von Apple – und wir sind uns immer noch nicht sicher, wie er verwendet werden soll. Die großzügigste Auslegung der Absicht hinter dieser Funktion ist, dass sie mit der gleichen Absicht entwickelt wurde wie ein Bezeichner im Stil von „UA-String“ für Benutzer, die VoiceOver verwenden.
Wir wissen eines sicher: Wenn diese Einstellung aktiviert ist – und das ist sie standardmäßig –, identifiziert Ihr Browser Sie als VoiceOver-Benutzer, um Ihnen beim Surfen im Web zu helfen. Wenn Sie Apples VoiceOver verwenden, senden sowohl Ihr Telefon als auch Ihr Computer Ihre angenommene Behinderung an das gesamte Internet, es sei denn, Sie weisen sie ausdrücklich an, dies zu unterlassen.
Update Mai 2019: Sie haben es entfernt.
Wenn Sie über diese Änderung nicht wütend sind, sollten Sie es sein – nicht nur wegen dessen, was sie für die Benutzer bedeutet, sondern auch wegen dessen, was sie Ihnen aufbürdet. Apple hat Sie mit dem Wissen belastet, dass Sie jetzt ja wissen können, ob ein Benutzer eine Behinderung hat. Wir können diese Informationen nutzen, um eine eingeschränkte alternative Version einer Website anzubieten, in die wir Menschen einer geschützten Klasse sehr leicht einbeziehen können. Und sobald wir anfangen, auf „Barrierefreiheitsereignisse“ zu achten, können wir diese Informationen erfassen, wie alles andere, was ins Web gesendet wird. Eine Behinderung eines Benutzers kann und wird auf einen einzigen Datenpunkt reduziert – eine kalte, unpersönliche true, die unaufhaltsam an seinen Namen gebunden ist, in einer Datenbank gespeichert, vielleicht bestimmt, verkauft, geleakt, an Versicherer weitergegeben, auf eine gezielte Marketingmöglichkeit reduziert wird. Alles unter dem Deckmantel der Inklusivität.
Ich bin mir sicher, dass die Entwickler, die für die Funktion „Barrierefreiheitsereignisse“ verantwortlich waren, irgendwann gefragt wurden, ob eine solche Funktion möglich sei. Ihre Antwort war „Ja“. Ich zweifle nicht daran, dass sie es gut meinten. Ich bin mir genauso sicher, dass es sich in diesem Moment wie die richtige Antwort anfühlte; eine technische Lösung für ein technisches Problem und eine einfache Frage des Browsing-Kontexts.
Eines Tages – nicht in ferner Zukunft, hoffe ich – werde ich eine ähnliche Frage gestellt bekommen. Sie wird zögerlich, stammelnd gestellt werden. Die Pausen werden nur allzu vertraut sein. Ich werde nicht mehr den einfachen, vertrauten Trost der technischen Unmöglichkeit haben – kein einfaches „Nein“, um mich vor den unbequemen Gesprächen zu schützen, die ich schon längst mit meinen Kunden hätte führen sollen. Jetzt gibt es keinen technischen Grund mehr, warum ich nicht wissen kann, ob ein Benutzer „so etwas wie einen Bildschirmleser“ verwendet. Ich – meine Kunden, ihre Datenbanken, ihre Organisationen, ihre Muttergesellschaften, ihre Partner, ihre Risikokapitalgeber, ihre Werbetreibenden und so weiter bis ins Unendliche – können absolut wissen, wann ein Benutzer eine Behinderung hat.
Aber ich werde mich nicht daran beteiligen, den Fehler zu verbreiten, den Apples Entwickler gemacht haben. Ich werde meine Antwort schwer und unbequem in der Luft hängen lassen: Nein. Nicht, weil wir es nicht können – das können wir. Nicht, weil wir es nicht sollten, obwohl, nein, das sollten wir immer noch nicht. Nein – jetzt werde ich das Wort so grob werden lassen, wie ich es mir immer gewünscht habe, weil ich nicht mehr den kalten Trost des „nun, technisch gesehen“ habe, hinter dem ich mich verstecken kann.
Nein.
Entschuldigung. Warum ist das schlecht? Sicherlich ist es gut, dass Entwickler jetzt auf die Bedürfnisse von Menschen mit Barrierefreiheitsproblemen reagieren können?
Es ist schlecht, weil Entwickler statt einer einzigen Benutzeroberfläche, die für alle gut funktioniert, zwei separate Benutzeroberflächen bauen werden, und meistens wird die barrierefreie Version eine abgespeckte Basisversion sein, die nie gepflegt wird, weil die Entwickler sie wahrscheinlich vergessen werden.
Entwickler werden auch dazu neigen, die barrierefreie Version extrem zu gestalten und im Grunde jede Behinderung in dieser Benutzeroberfläche anzunehmen. „Sie verwenden einen Bildschirmleser? Nun, Sie benötigen wahrscheinlich auch den Hochkontrastmodus.“
Zusätzlich zu dem, was über Werbung gesagt wurde: Auch wenn es oberflächlich betrachtet in Ordnung erscheinen mag, die Daten für Analysezwecke zu sammeln, wird es sehr schnell zu einer systemischen Methode, Benutzer zu trennen und quantifizierbar zu versuchen, die Bereitstellung einer schrecklichen Erfahrung für Benutzer dieser Tools und Einstellungen zu rechtfertigen.
Das liegt daran, dass wir bereits auf die Bedürfnisse der Benutzer reagieren sollten. Wir sollten nicht darauf hingewiesen werden müssen, Dinge barrierefrei zu machen.
Denken Sie an die Parallele eines Gebäudes. Wir sollten nicht einfach eine Rampe vor die Treppe des Gebäudes stellen, nur weil wir jemanden sehen, für den Treppen schwierig sein könnten. Wir haben dort permanent eine Rampe.
Es gibt ein paar Gründe, warum das problematisch ist. Erstens und vor allem ist das Internet einer der wenigen Orte, an denen eine Person mit einer Behinderung für sich allein existieren kann, ohne sich darum kümmern zu müssen, dass die Welt sie anders behandelt. Zweitens ist es unsere Aufgabe als Entwickler, universell zugängliche Erlebnisse für alle zu schaffen, und das ist etwas, bei dem wir uns wirklich Mühe geben müssen, es falsch zu machen.
Semantisches HTML, eine ordnungsgemäße Berücksichtigung von Dingen wie Farbkontrast, Schriftgrößen, Tabulatorreihenfolge und Inhaltsfluss sind alles Dinge, die dazu beitragen, eine Website barrierefrei zu machen. Die Realität ist, dass wir nicht darauf angewiesen sein sollten, zu wissen, ob jemand einen Bildschirmleser verwendet oder nicht, um ihm eine gute Erfahrung zu bieten.
Es scheint eine Funktion zu sein, oder? Wie, jetzt kann ich endlich eine separate, maßgeschneiderte Erfahrung für Menschen mit unterschiedlichen Fähigkeiten schaffen. Ich verstehe, woher Sie kommen.
Jetzt haben wir die Macht, eine Seitentür für einige Leute zu schaffen, wo früher jeder durch die Vordertür kommen musste. Und die Leute, die diese Entscheidungen treffen werden, wie Projektmanager, Stakeholder und Entwickler, werden wahrscheinlich nicht behindert sein. Das bedeutet, dass nicht behinderte Menschen Menschen mit anderen Behinderungen bitten werden, durch diese Seitentür zu gehen. Und das fühlt sich widerlich an.
Das Internet und jede Website darin sollte generell für jeden zugänglich sein. Punkt.
„if (personDisabled) { print crappierSite }“ ist eine rutschige Piste.
Barrierefreiheit muss als Standard integriert werden, nicht als nachträglicher Gedanke.
Außerdem, was ist, wenn die Person Android und nicht Apple benutzt?
Was ist, wenn der Apple-Benutzer die Einstellung deaktiviert?
Und das ist noch nicht einmal das viel fragwürdigere Thema Datenschutz und Überwachung.
Diese Informationen können (und werden wahrscheinlich, weil Menschen Müll sind) in die falschen Hände geraten.
Krankenversicherungen könnten zusätzliche Gebühren erheben, Arbeitgeber könnten diese Informationen nutzen, um zukünftige Mitarbeiter auszuwählen, die sie (igitt) als „fähiger“ wahrnehmen usw. Dies könnte für gezielte Anzeigen und sogar politische Kampagnen verwendet werden.
Das ist Profiling vom Feinsten.
Jetzt können Entwickler nicht mehr leugnen: Es gibt Benutzer mit Behinderungen und sie besuchen unsere Websites. Wenn Ihre Website unterdurchschnittlich viele Besucher mit Behinderungen hat – liegt es nur am Thema oder ist Ihre Website so schlecht? Beginnen Sie endlich, sich selbst die Schuld zu geben, nicht Menschen mit Behinderungen.
Eine schlechte Analogie: Was wäre, wenn Entwickler erfahren würden, wie oft Benutzer den Lesemodus auf ihrer Website aktivieren (wie ich für diesen Artikel)? Oder welches das bevorzugte Zoomlevel ist (ich: 110% auf css-tricks.com)? Sollten sie dann eine separate, vereinfachte Lesbarkeitsversion erstellen? Nein! Denken Sie lieber darüber nach, die Standardwebsite besser lesbar zu machen.
Es ist Ihre Verantwortung, Hürden abzubauen, nicht den Zugang zum „echten Ding“ zu verweigern. Machen Sie sich bewusst, dass jeder zumindest vorübergehend in gewissem Maße behindert ist – es gibt kein Ein oder Aus. Und seien Sie sicher, dass Sie nicht jede Behinderung erkennen werden – online und offline. Seien Sie ein Entwickler, der alle Benutzer unterstützt.
Um die bereits laufende Unterhaltung zu ergänzen – ich habe kürzlich ein Video gesehen, in dem ein Typ Web 3.0 vor einem Raum von Entwicklern erklärte, und seine Hauptpunkte gelten auch hier.
Hören Sie auf, über Ihr aktuelles Problem nachzudenken, und denken Sie darüber nach, welche Auswirkungen Ihre „Lösung“ auf die Zukunft des Webs für alle haben wird. In diesem Vortrag sprach der Typ mehr über Datenschutz und Sicherheit. Das gilt vollständig auch für Barrierefreiheit.
Wir bauen heute die Werkzeuge, die die zukünftigen Werkzeuge in Jahrzehnten gestalten.
Wenn wir das Web so bauen, dass es jemanden benachteiligt.
Das wird sich über Jahrzehnte hinweg fortsetzen und Millionen, wenn nicht Milliarden von Menschen schaden.
Vielen Dank für den Artikel und vielen Dank für die nachdenklichen und intelligenten Antworten. Ich weiß, dass es in der blinden Gemeinschaft viel Hin und Her zu diesem Thema gab. Das Neueste, das ich gehört hatte, war, dass die NFB Apples Erklärung akzeptiert, dass der standardmäßig aktivierte Schalter Benutzer nicht identifiziert, da es eine weitere Einstellung bezüglich Ereignissen gibt, die ebenfalls aktiviert werden muss. Ich bin mir nicht sicher, ob ich dem zustimme. Hat jemand eine Erklärung von Apple gehört, die Sinn ergibt?
Als Ingenieur und als Benutzer eines Bildschirmlesers bin ich sehr vorsichtig mit den Datenschutzimplikationen der Bildschirmleser-Erkennung. Dennoch ist es wichtig, diese neue Funktion in Apple-Geräten richtig und im richtigen Kontext zu verstehen.
Barrierefreiheitsereignisse (wie accessibleClick oder accessibleFocus) werden nur ausgelöst, wenn eine unterstützende Technologie (AT) läuft. Dies ermöglicht es, zu erkennen, dass eine AT aktiviert ist, aber nicht, welche Art von AT.
Das Abhören dieser Ereignisse sagt Ihnen also nicht, dass ein Bildschirmleser (im Gegensatz zu jeder anderen Art von AT) läuft. Dies schränkt die Designentscheidungen ein, die auf dieser Information basieren können.
Es ist auch erwähnenswert, dass, obwohl Barrierefreiheitsereignisse im Betriebssystem standardmäßig aktiviert sind, sie derzeit nicht in Safari aktiviert sind. Benutzer können dies tun, wenn sie möchten, aber es ist nicht standardmäßig aktiviert.
Apple räumt ein, dass diese Ereignisse eine experimentelle Funktion sind. Sie wurden zuerst in einer frühen Version der Accessibility Object Model (AOM) Spezifikation vorgeschlagen, aber später aufgrund von Datenschutzbedenken, die von mir und anderen geäußert wurden, fallen gelassen.
Danke für deinen Beitrag. Ich stimme zu.
Wir sollten auf die angegebenen Präferenzen eines Benutzers reagieren. Nicht darauf, wie er die Technologie zu nutzen scheint!
Wir müssen gute Personalisierungslösungen entwickeln, um Präferenzen zu unterstützen, wie z. B.: Ich bevorzuge Tastaturzugriff gegenüber Zeiger, ich möchte keine selbstsprechenden Apps, ich möchte leicht lesbare Inhalte ohne Animationen.
Es sieht so aus, als würde Apple den Schalter für Barrierefreiheitsereignisse in iOS12.3 entfernen.
Es sieht so aus, als wäre diese Funktion immer noch verfügbar, aber jetzt befindet sie sich unter Safari > Erweitert > Experimentelle Funktionen > AOM.
https://support.apple.com/en-us/HT209655
Das Argument für diese Funktion, soweit ich das beurteilen kann, ist die Parität mit nativen Apps zu erreichen, die bereits Zugriff auf Barrierefreiheitsereignisse haben. D.h. „accessibilityActivate(): Das Barrierefreiheitssystem ruft diese Methode auf, wenn ein VoiceOver-Benutzer auf das ausgewählte Element doppelklickt.“
https://developer.apple.com/documentation/objectivec/nsobject/1615165-accessibilityactivate#discussion
https://developer.android.com/reference/android/view/accessibility/AccessibilityEvent.html#TYPE_VIEW_CLICKED
Apps müssen jedoch einen manuellen Überprüfungsprozess durchlaufen, der diese Richtlinie beinhaltet
(vi) Daten, die von der HomeKit API, HealthKit, Consumer Health Records API, MovementDisorder APIs, ClassKit oder von Tiefen- und/oder Gesichtsmapping-Tools (z. B. ARKit, Kamera-APIs oder Foto-APIs) gesammelt wurden, dürfen nicht für Marketing, Werbung oder nutzungsbasierte Datenmining, einschließlich durch Dritte, verwendet werden. Erfahren Sie mehr über Best Practices für die Implementierung von CallKit, HealthKit, ClassKit und ARKit.
https://developer.apple.com/app-store/review/guidelines/#data-security
Keine dieser APIs ist dem Web zugänglich, außer Kamera/Foto.
+1 für den Beitrag, Mat.
Für UI- und UX-Designer, die es gewohnt sind, Dinge auf ihre (gleiche) Weise zu tun, mag Barrierefreiheit wie eine Last erscheinen, aber wenn man sich mehr damit beschäftigt, stellt man fest, dass sie ein Segen ist.
Barrierefreiheit zwingt uns, empathischer zu sein, Dinge zu (endlich) beschreiben (was als eine der schwierigsten Dinge in der Programmierung gilt) und mit dem Bonus, unsere Seiten suchmaschinenfreundlicher zu machen und ein breiteres Publikum/Marktanteil zu gewinnen, indem wir alle einbeziehen.
Erinnern Sie sich an den Aufschrei (in der Design-Community), als der verstorbene Steve Jobs beschloss, Flash abzuschaffen?
Ich denke, anstelle einer globalen Einstellung könnte dies Teil der Berechtigungs-API sein, sodass Sie eine Einstellung pro Website erhalten.